{"id":312,"date":"2025-10-13T05:36:47","date_gmt":"2025-10-13T05:36:47","guid":{"rendered":"https:\/\/frustrationcourt.com\/?page_id=312"},"modified":"2025-10-13T07:17:34","modified_gmt":"2025-10-13T07:17:34","slug":"timeline","status":"publish","type":"page","link":"https:\/\/frustrationcourt.com\/?page_id=312","title":{"rendered":"Timeline"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>The Courtroom Docket<\/title>\n\n  <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Cinzel:wght@700&family=Roboto+Mono&display=swap');\n\n    body {\n      margin: 0;\n      padding: 0;\n      font-family: 'Roboto Mono', monospace;\n      background: url('https:\/\/frustrationcourt.com\/wp-content\/uploads\/2025\/10\/download.jpg') no-repeat center center fixed;\n      background-size: cover;\n      color: #e4e4e4;\n      overflow-x: hidden;\n    }\n\n    \/* Fog Layers *\/\n    .fog, .fog2 {\n      position: fixed;\n      top: 0; left: 0;\n      width: 200%;\n      height: 100%;\n      background: url('download.jpg') repeat-x;\n      opacity: 0.5;\n      z-index: 1;\n      animation: fogmove 60s linear infinite;\n      pointer-events: none;\n    }\n    .fog2 {\n      opacity: 0.25;\n      animation: fogmove2 90s linear infinite;\n      top: 0;\n    }\n\n    @keyframes fogmove {\n      0% { transform: translateX(0); }\n      100% { transform: translateX(-50%); }\n    }\n\n    @keyframes fogmove2 {\n      0% { transform: translateX(-50%); }\n      100% { transform: translateX(0); }\n    }\n\n    .overlay {\n      position: fixed;\n      top: 0; left: 0;\n      width: 100%;\n      height: 100%;\n      background: rgba(10, 10, 20, 0.5);\n      backdrop-filter: blur(4px);\n      z-index: 0;\n    }\n\n    header {\n      text-align: center;\n      margin-top: 180px;\n      position: relative;\n      z-index: 2;\n    }\n\n    header h1 {\n      font-family: 'Cinzel', serif;\n      font-size: 3.5rem;\n      color: #ffcc66;\n      text-shadow: 0 0 20px #ffcc66;\n      margin-bottom: 10px;\n    }\n\n    header p {\n      font-style: italic;\n      color: #bbb;\n      font-size: 1.1rem;\n    }\n\n    \/* Logo *\/\n    .logo {\n      position: fixed;\n      top: 25px;\n      left: 25px;\n      z-index: 10;\n      opacity: 0.9;\n      animation: glow 4s ease-in-out infinite alternate;\n      transition: opacity 0.5s ease, transform 0.5s ease;\n    }\n\n    .logo.hidden {\n      opacity: 0;\n      transform: translateY(-20px);\n      pointer-events: none;\n    }\n\n    .logo img {\n      width: 150px;\n      height: auto;\n      border-radius: 9%;\n      filter: drop-shadow(0 0 8px rgba(255,255,255,0.3));\n    }\n @media (max-width: 768px) {\n      .cases {\n        width: 90%;\n      }\n      header h1 {\n        font-size: 2.5rem;\n      }\n    }\n\n    @keyframes glow {\n      from { opacity: 0.7; filter: drop-shadow(0 0 5px #fff); }\n      to { opacity: 1; filter: drop-shadow(0 0 15px #ffea80); }\n    }\n\n    \/* Judge Chatbot (hidden initially) *\/\n    .judge-chat {\n      position: fixed;\n      bottom: 30px;\n      right: 30px;\n      display: flex;\n      align-items: center;\n      gap: 15px;\n      opacity: 0;\n      transform: scale(0);\n      transition: all 0.6s ease-in-out;\n      z-index: 100;\n    }\n\n    .judge-chat.show {\n      opacity: 1;\n      transform: scale(1);\n    }\n\n    .judge-chat img {\n      width: 120px;\n      height: auto;\n      border-radius: 50%;\n      box-shadow: 0 0 20px rgba(255, 255, 255, 0.3);\n      animation: bloom 1s ease-out;\n      cursor: pointer;\n    }\n\n    @keyframes bloom {\n      from { transform: scale(0); opacity: 0; }\n      to { transform: scale(1); opacity: 1; }\n    }\n\n    .chat-btn {\n      background: #fce38a;\n      border: none;\n      color: #000;\n      padding: 12px 20px;\n      border-radius: 25px;\n      font-weight: bold;\n      cursor: pointer;\n      transition: 0.3s ease;\n    }\n\n    .chat-btn:hover {\n      background: #fff2b2;\n      transform: scale(1.05);\n    }\n\n    \/* Cases Section *\/\n    .cases {\n      width: 80%;\n      margin: 100px auto;\n      display: flex;\n      flex-direction: column;\n      gap: 60px;\n      position: relative;\n      z-index: 2;\n    }\n\n    .case {\n      background: rgba(25, 25, 35, 0.85);\n      border-radius: 12px;\n      padding: 30px;\n      box-shadow: 0 0 25px rgba(255, 204, 102, 0.15);\n      transition: all 0.8s ease;\n      transform: translateY(80px);\n      opacity: 0;\n    }\n\n    .case.visible {\n      transform: translateY(0);\n      opacity: 1;\n    }\n\n    .case h2 {\n      font-family: 'Cinzel', serif;\n      color: #ffcc66;\n      margin-bottom: 10px;\n    }\n\n    .case .meta {\n      display: flex;\n      justify-content: space-between;\n      font-size: 0.9rem;\n      color: #999;\n      margin-bottom: 8px;\n    }\n\n    .verdict {\n      color: #ff6666;\n      font-style: italic;\n      margin-bottom: 10px;\n    }\n\n    \/* CTA Button *\/\n    .cta {\n      text-align: center;\n      margin: 80px 0;\n      z-index: 2;\n      position: relative;\n    }\n\n    .cta a {\n      background: linear-gradient(90deg, #ffcc66, #ff9966);\n      color: #111;\n      padding: 16px 40px;\n      border-radius: 50px;\n      text-decoration: none;\n      font-weight: bold;\n      font-size: 1.2rem;\n      transition: all 0.3s ease;\n      box-shadow: 0 0 25px rgba(255, 204, 102, 0.3);\n    }\n\n    .cta a:hover {\n      background: linear-gradient(90deg, #ff9966, #ffcc66);\n      transform: scale(1.05);\n      box-shadow: 0 0 40px rgba(255, 204, 102, 0.6);\n    }\n\n    footer {\n      text-align: center;\n      padding: 100px 20px;\n      color: #aaa;\n      position: relative;\n      z-index: 2;\n    }\n\n    .final-note {\n      background: rgba(25, 25, 35, 0.85);\n      display: inline-block;\n      padding: 30px;\n      border-radius: 12px;\n      box-shadow: 0 0 20px rgba(255, 204, 102, 0.2);\n      max-width: 600px;\n    }\n\n    .final-note h3 {\n      color: #ffcc66;\n      font-family: 'Cinzel', serif;\n    }\n\n    .case-closed {\n      color: #ff6666;\n      font-style: italic;\n    }\n\n    @media (max-width: 768px) {\n      .cases {\n        width: 90%;\n      }\n      header h1 {\n        font-size: 2.5rem;\n      }\n    }\n\t\n\t\/* Top Header *\/\n.top-header {\n  width: 100%;\n  background: #fff;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 12px 40px;\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 20;\n  box-shadow: 0 2px 6px rgba(0,0,0,0.08);\n  transition: top 0.4s ease-in-out;\n}\n\n.top-header.hide {\n  top: -100px; \/* slide up and hide *\/\n}\n\n\n.header-left img {\n  height: 80px;\n  width: auto;\n}\n\n.header-right {\n  display: flex;\n  align-items: center;\n  gap: 20px;\n}\n\n.nav-btn {\n  text-decoration: none;\n  color: #333;\n  font-weight: 600;\n  padding: 8px 14px;\n  border-radius: 6px;\n  transition: background 0.3s;\n}\n\n.nav-btn:hover {\n  background: #f4f4f4;\n}\n\n.messenger-btn {\n  background: #b3743b;\n  color: #fff;\n  padding: 10px 18px;\n  border-radius: 6px;\n  text-decoration: none;\n  font-weight: bold;\n  transition: background 0.3s;\n}\n\n.messenger-btn:hover {\n  background: #8d592d;\n}\n\n\/* Mobile adjustments *\/\n@media (max-width: 768px) {\n  \/* shrink header padding *\/\n  .top-header {\n    padding: 8px 16px;\n  }\n\n  \/* make logo smaller *\/\n  .header-left img {\n    height: 50px; \/* was 80px *\/\n    width: auto;\n  }\n\n  \/* stack nav buttons vertically if cramped *\/\n  .header-right {\n    gap: 10px;\n  }\n  .nav-btn {\n    font-size: 0.9rem;\n    padding: 6px 10px;\n  }\n  .messenger-btn {\n    padding: 8px 14px;\n    font-size: 0.9rem;\n  }\n\n  \/* remove duplicate floating glowing logo *\/\n  .logo {\n    display: none; \n  }\n\n  \/* make judge chat smaller *\/\n  .judge-chat img {\n    width: 80px;  \/* was 120px *\/\n  }\n  .chat-btn {\n    padding: 8px 14px;\n    font-size: 0.9rem;\n  }\n}\n\n\n  <\/style>\n<\/head>\n\n<body>\n\n<!-- New Full-width Header -->\n<div class=\"top-header\">\n  <div class=\"header-left\">\n    <img decoding=\"async\" src=\"https:\/\/frustrationcourt.com\/wp-content\/uploads\/2025\/09\/frustration-court-logo-landscape-1024x284.png\" alt=\"Frustration Court Logo\">\n  <\/div>\n  <div class=\"header-right\">\n    <a href=\"https:\/\/frustrationcourt.com\/\" class=\"nav-btn\">Home<\/a>\n    <a href=\"https:\/\/frustrationcourt.com\/?page_id=312\" class=\"nav-btn\">Timeline<\/a>\n    <a href=\"https:\/\/m.me\/587020831166247?source=qr_link_share\" target=\"_blank\" class=\"messenger-btn\">\n      Start your case\n    <\/a>\n  <\/div>\n<\/div>\n\n  <div class=\"overlay\"><\/div>\n  <div class=\"fog\"><\/div>\n  <div class=\"fog2\"><\/div>\n\n  \n\n  <header>\n    <h1>The Courtroom Docket<\/h1>\n    <p>A record of every digital case that built this strange tribunal of emotions.<\/p>\n  <\/header>\n\n  <div class=\"cta\">\n    <a href=\"#\" id=\"startCase\">\u2696\ufe0f Start your case<\/a>\n  <\/div>\n\n  <section class=\"cases\">\n    <div class=\"case\"><h2>Case #001 \u2013 Humanity vs. Life Itself<\/h2><div class=\"meta\"><span>Q1 2025<\/span><span class=\"verdict\">\u201cGuilty of chronic disappointment.\u201d<\/span><\/div><p>This is where it all began. Frustration Court was founded to judge what no human court could: the chaos of emotions, the daily absurdities, and the cosmic injustice of existing. The first lines of code became the first laws of irony \u2014 and the AI Judge took its digital oath to serve sarcasm, not justice.<\/p><\/div>\n    <div class=\"case\"><h2>Case #002 \u2013 The People vs. Sanity<\/h2><div class=\"meta\"><span>Q2 2025<\/span><span class=\"verdict\">\u201cFound unstable but highly creative.\u201d<\/span><\/div><p>The Court found its identity. A new logo, a dystopian aesthetic, and a dark sense of humor turned frustration into art. The first version of frustrationcourt.com opened its digital doors. Alongside it came the official e-book, teaching humanity to face anger with philosophy and irony \u2014 not mindfulness.<\/p><\/div>\n    <div class=\"case\"><h2>Case #003 \u2013 User #47 vs. Everything<\/h2><div class=\"meta\"><span>Q3 2025<\/span><span class=\"verdict\">\u201cToo honest to be innocent.\u201d<\/span><\/div><p>The AI Judge learned to ask questions. Before issuing a verdict, it began to interrogate: \u201cWho or what do you want to sue today?\u201d \u201cAre you innocent or just tired?\u201d From these interrogations, new verdicts were born \u2014 sharper, funnier, and painfully true. The Court also learned to share its judgments \u2014 users could now post their sentences across social media, spreading chaos one verdict at a time.<\/p><\/div>\n    <div class=\"case\"><h2>Case #004 \u2013 Emotion vs. Logic<\/h2><div class=\"meta\"><span>Q4 2025<\/span><span class=\"verdict\">\u201cBoth guilty. Sentenced to coexist.\u201d<\/span><\/div><p>The bot evolved. AI began analyzing tone and emotion \u2014 adapting verdicts based on the user\u2019s mood. Angry users got sarcasm, sad users got empathy, philosophers got existential nonsense. A Meme Generator entered the courtroom, turning verdicts into shareable digital exhibits. And in the shadows, the plans for AR Mode and the Virtual Rage Room took form.<\/p><\/div>\n    <div class=\"case\"><h2>Case #005 \u2013 Humanity vs. Reality (Part II)<\/h2><div class=\"meta\"><span>Q1 2026<\/span><span class=\"verdict\">\u201cThe appeal is denied.\u201d<\/span><\/div><p>The Court grew louder \u2014 literally. A new Voice-Activated Rage Mode allowed users to scream their frustrations and get judged by tone. Friends could join in for Group Trials, accusing life itself together. Special Seasonal Verdicts appeared: Halloween, Valentine\u2019s, Christmas \u2014 all equally doomed. And the e-book became interactive \u2014 now, frustration could be both read and lived.<\/p><\/div>\n    <div class=\"case\"><h2>Case #006 \u2013 Anger vs. Technology<\/h2><div class=\"meta\"><span>Q2\u2013Q3 2026<\/span><span class=\"verdict\">\u201cGuilty of poetic destruction.\u201d<\/span><\/div><p>The Virtual Rage Room opened its doors. Inside, users could destroy symbolic objects \u2014 broken clocks, exes, Mondays \u2014 in 3D, then watch their acts judged by AI. The AR Judge stepped out of the code and into reality, appearing in users\u2019 living rooms to deliver cinematic verdicts. The Frustration Court transformed from an app into an experience \u2014 a strange mix of therapy, humor, and digital chaos.<\/p><\/div>\n    <div class=\"case\"><h2>Case #007 \u2013 The World vs. Its Own Nerves<\/h2><div class=\"meta\"><span>Q4 2026<\/span><span class=\"verdict\">\u201cThe Court declares everyone equally frustrated.\u201d<\/span><\/div><p>Frustration Court entered its global phase. Multilingual versions, influencer collaborations, viral challenges, and co-branded verdicts spread across the internet. Now the world laughs at its chaos \u2014 together. Justice has never been so emotional.<\/p><\/div>\n  <\/section>\n\n  <!-- Judge Chat Section (hidden initially) -->\n  <div class=\"judge-chat\" id=\"judgeChat\">\n    <img decoding=\"async\" src=\"https:\/\/frustrationcourt.com\/wp-content\/uploads\/2025\/10\/judge1.png\" alt=\"Judge Chat Avatar\" id=\"judgeImage\">\n    <button class=\"chat-btn\" id=\"chatButton\">Click here to start your case now<\/button>\n  <\/div>\n\n  <footer>\n    <div class=\"final-note\">\n      <h3>Final Note from the AI Judge:<\/h3>\n      <p>&#8220;You cannot appeal this timeline. Every step, every bug, every laugh \u2014 part of the same judgment.&#8221;<\/p>\n      <p class=\"case-closed\">Case closed.<\/p>\n    <\/div>\n    <p class=\"credits\">\u00a9 2025 Frustration Court. All verdicts are final.<\/p>\n  <\/footer>\n\n  <script>\n    \/\/ Logo hide on scroll\n    const logo = document.querySelector('.logo');\n    window.addEventListener('scroll', () => {\n      if (window.scrollY > 50) logo.classList.add('hidden');\n      else logo.classList.remove('hidden');\n    });\n\n    \/\/ Scroll reveal for cases\n    const cases = document.querySelectorAll('.case');\n    function revealOnScroll() {\n      const triggerBottom = window.innerHeight * 0.85;\n      cases.forEach(c => {\n        const boxTop = c.getBoundingClientRect().top;\n        if (boxTop < triggerBottom) c.classList.add('visible');\n      });\n    }\n    window.addEventListener('scroll', revealOnScroll);\n    revealOnScroll();\n\n    \/\/ Fog parallax\n    window.addEventListener('scroll', () => {\n      const scrollY = window.scrollY;\n      document.querySelector('.fog').style.transform = `translateX(${-scrollY * 0.2}px)`;\n      document.querySelector('.fog2').style.transform = `translateX(${scrollY * 0.15}px)`;\n    });\n\n    \/\/ Judge chatbot animation\n    const startBtn = document.getElementById('startCase');\n    const judgeChat = document.getElementById('judgeChat');\n    const judgeImage = document.getElementById('judgeImage');\n    const chatButton = document.getElementById('chatButton');\n\n    startBtn.addEventListener('click', (e) => {\n      e.preventDefault();\n      judgeChat.classList.add('show');\n    });\n\n    \/\/ Click judge or button to open Messenger\n    const chatLink = 'https:\/\/m.me\/587020831166247?source=qr_link_share';\n    judgeImage.addEventListener('click', () => window.open(chatLink, '_blank'));\n    chatButton.addEventListener('click', () => window.open(chatLink, '_blank'));\n\t\n\t\n\t\/\/ Hide\/show header on scroll\nlet lastScrollY = window.scrollY;\nconst topHeader = document.querySelector('.top-header');\n\nwindow.addEventListener('scroll', () => {\n  if (window.scrollY > lastScrollY) {\n    \/\/ scrolling down -> hide header\n    topHeader.classList.add('hide');\n  } else {\n    \/\/ scrolling up -> show header\n    topHeader.classList.remove('hide');\n  }\n  lastScrollY = window.scrollY;\n});\n\n  <\/script>\n  \n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>The Courtroom Docket Home Timeline Start your case The Courtroom Docket A record of every digital case that built this strange tribunal of emotions. \u2696\ufe0f Start your case Case #001 \u2013 Humanity vs. Life Itself Q1 2025\u201cGuilty of chronic disappointment.\u201d This is where it all began. Frustration Court was founded to judge what no human [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-312","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/frustrationcourt.com\/index.php?rest_route=\/wp\/v2\/pages\/312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frustrationcourt.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/frustrationcourt.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/frustrationcourt.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/frustrationcourt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=312"}],"version-history":[{"count":16,"href":"https:\/\/frustrationcourt.com\/index.php?rest_route=\/wp\/v2\/pages\/312\/revisions"}],"predecessor-version":[{"id":366,"href":"https:\/\/frustrationcourt.com\/index.php?rest_route=\/wp\/v2\/pages\/312\/revisions\/366"}],"wp:attachment":[{"href":"https:\/\/frustrationcourt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}