{"id":95,"date":"2025-11-26T01:17:29","date_gmt":"2025-11-26T01:17:29","guid":{"rendered":"https:\/\/grossenoix.com\/?p=95"},"modified":"2025-11-26T01:17:29","modified_gmt":"2025-11-26T01:17:29","slug":"intro-games","status":"publish","type":"post","link":"https:\/\/grossenoix.com\/index.php\/2025\/11\/26\/intro-games\/","title":{"rendered":"Intro Games"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <title>Grosse Noix \u2014 Hero<\/title>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n\n  <!-- Pixel-style font -->\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Press+Start+2P&#038;display=swap\" rel=\"stylesheet\">\n\n  <style>\n    * {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0;\n    }\n\n    body {\n      margin: 0;\n      background: #05000a;\n      font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;\n      color: #f9fafb;\n      overflow-x: hidden;\n      transition: background 0.3s ease;\n    }\n\n    \/* HERO BASE *\/\n\n    .gn-hero {\n      position: relative;\n      min-height: 100vh;\n      padding: 2.5rem 1.5rem 3rem;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      text-align: center;\n      overflow: hidden;\n      background:\n        radial-gradient(circle at top, #ff9aff 0, #1a0228 32%, #05000a 70%),\n        repeating-linear-gradient(\n          to bottom,\n          rgba(255, 255, 255, 0.08) 0,\n          rgba(255, 255, 255, 0.08) 1px,\n          transparent 1px,\n          transparent 3px\n        );\n      border-bottom: 4px solid #ff5ddd;\n      transform-origin: center center;\n      transition: opacity 0.4s ease;\n    }\n\n    .gn-hero::before {\n      content: \"\";\n      pointer-events: none;\n      position: absolute;\n      inset: 0;\n      background: repeating-linear-gradient(\n        to bottom,\n        rgba(0, 0, 0, 0.35) 0,\n        rgba(0, 0, 0, 0.35) 1px,\n        transparent 1px,\n        transparent 3px\n      );\n      mix-blend-mode: multiply;\n      opacity: 0.9;\n      z-index: 0;\n    }\n\n    .gn-hero-inner {\n      position: relative;\n      z-index: 1;\n      max-width: 900px;\n    }\n\n    .gn-pixel-frame {\n      border: 4px solid #ffb8ff;\n      box-shadow:\n        0 0 0 4px #2d022f,\n        0 0 18px rgba(255, 137, 255, 0.7);\n      padding: 1.75rem 1.25rem 2rem;\n      position: relative;\n      background: rgba(5, 0, 10, 0.9);\n      backdrop-filter: blur(6px);\n      transition: box-shadow 0.25s ease;\n    }\n\n    .gn-pixel-frame::before,\n    .gn-pixel-frame::after {\n      content: \"\";\n      position: absolute;\n      width: 12px;\n      height: 12px;\n      border: 3px solid #ff5ddd;\n      border-radius: 0;\n    }\n\n    .gn-pixel-frame::before {\n      left: -6px;\n      top: -6px;\n      border-right: none;\n      border-bottom: none;\n    }\n\n    .gn-pixel-frame::after {\n      right: -6px;\n      bottom: -6px;\n      border-left: none;\n      border-top: none;\n    }\n\n    .gn-logo {\n      font-family: \"Press Start 2P\", system-ui, sans-serif;\n      font-size: clamp(1.7rem, 3vw, 2.4rem);\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      margin-bottom: 1.4rem;\n      text-shadow:\n        3px 3px 0 #000000,\n        -2px 0 0 #ff5ddd,\n        0 2px 0 #00ffd5;\n    }\n\n    .gn-subtitle {\n      font-family: \"Press Start 2P\", system-ui, sans-serif;\n      font-size: clamp(0.6rem, 1.4vw, 0.75rem);\n      line-height: 1.7;\n      text-transform: uppercase;\n      color: #faccff;\n      margin-bottom: 1.8rem;\n    }\n\n    .gn-description {\n      font-size: 0.95rem;\n      line-height: 1.7;\n      color: #e5e7eb;\n      max-width: 48rem;\n      margin: 0 auto 2.1rem;\n    }\n\n    .gn-tag-row {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: center;\n      gap: 0.5rem;\n      margin-bottom: 2rem;\n      font-family: \"Press Start 2P\", system-ui, sans-serif;\n      font-size: 0.55rem;\n      text-transform: uppercase;\n    }\n\n    .gn-tag {\n      border: 2px solid #ffb8ff;\n      padding: 0.45rem 0.7rem;\n      background: #140016;\n      box-shadow: 2px 2px 0 #000000;\n    }\n\n    .gn-cta-row {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: center;\n      gap: 1rem;\n    }\n\n    .gn-btn {\n      position: relative;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      padding: 0.9rem 1.7rem;\n      border: 3px solid #ffb8ff;\n      background: #ff5ddd;\n      color: #05000a;\n      font-family: \"Press Start 2P\", system-ui, sans-serif;\n      font-size: 0.7rem;\n      text-transform: uppercase;\n      text-decoration: none;\n      letter-spacing: 0.08em;\n      cursor: pointer;\n      box-shadow:\n        0 0 0 3px #2d022f,\n        4px 4px 0 #000000;\n      transition:\n        transform 0.12s ease-out,\n        box-shadow 0.12s ease-out,\n        background 0.12s ease-out;\n    }\n\n    .gn-btn span {\n      position: relative;\n      z-index: 1;\n    }\n\n    .gn-btn::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      background: repeating-linear-gradient(\n        45deg,\n        rgba(250, 250, 250, 0.35) 0,\n        rgba(250, 250, 250, 0.35) 3px,\n        transparent 3px,\n        transparent 6px\n      );\n      mix-blend-mode: screen;\n      opacity: 0;\n      transition: opacity 0.2s linear;\n      pointer-events: none;\n    }\n\n    .gn-btn:hover,\n    .gn-btn:focus-visible {\n      transform: translate(-2px, -2px);\n      box-shadow:\n        0 0 0 3px #2d022f,\n        6px 6px 0 #000000;\n      background: #ff9af2;\n    }\n\n    .gn-btn:hover::before,\n    .gn-btn:focus-visible::before {\n      opacity: 0.6;\n    }\n\n    .gn-btn-secondary {\n      background: #05000a;\n      color: #f9fafb;\n      border-color: #00ffd5;\n      box-shadow:\n        0 0 0 3px #022828,\n        4px 4px 0 #000000;\n    }\n\n    .gn-btn-secondary:hover,\n    .gn-btn-secondary:focus-visible {\n      background: #0b1720;\n      box-shadow:\n        0 0 0 3px #022828,\n        6px 6px 0 #000000;\n    }\n\n    \/* PIXEL TRAIL \u2014 on top of everything *\/\n\n    .gn-pixel {\n      position: absolute;\n      width: 10px;\n      height: 10px;\n      background: #ff9aff;\n      box-shadow:\n        -2px 0 0 #00ffd5,\n        2px 0 0 #05000a;\n      opacity: 0.85;\n      pointer-events: none;\n      transform-origin: center;\n      animation: gnPixelFade 0.5s ease-out forwards;\n      z-index: 3;\n    }\n\n    @keyframes gnPixelFade {\n      0% {\n        transform: translate(0, 0) scale(1);\n        opacity: 0.9;\n      }\n      60% {\n        transform: translate(-4px, 4px) scale(1.1) rotate(3deg);\n        opacity: 0.7;\n      }\n      100% {\n        transform: translate(-8px, 8px) scale(0.1);\n        opacity: 0;\n      }\n    }\n\n    @media (hover: hover) and (pointer: fine) {\n      .gn-hero:hover .gn-pixel-frame {\n        box-shadow:\n          0 0 0 4px #2d022f,\n          0 0 24px rgba(255, 137, 255, 0.9);\n      }\n    }\n\n    @media (max-width: 768px) {\n      .gn-hero {\n        padding: 1.75rem 1.25rem 2.5rem;\n      }\n      .gn-pixel-frame {\n        padding: 1.4rem 1rem 1.7rem;\n      }\n      .gn-description {\n        font-size: 0.9rem;\n      }\n      .gn-tag-row {\n        font-size: 0.5rem;\n      }\n      .gn-btn {\n        width: 100%;\n        justify-content: center;\n      }\n    }\n\n    \/* CRASH \/ GLITCH + SQUISH TRANSITION *\/\n\n    body.gn-crash {\n      background: #05000a;\n    }\n\n    body.gn-crash .gn-hero {\n      animation: gnCrash 0.55s steps(4, end);\n    }\n\n    @keyframes gnCrash {\n      0% {\n        transform: translate(0, 0) skewX(0);\n        filter: none;\n      }\n      25% {\n        transform: translate(-10px, 4px) skewX(4deg);\n        filter: hue-rotate(20deg) contrast(1.4);\n      }\n      50% {\n        transform: translate(6px, -4px) skewX(-3deg);\n        filter: hue-rotate(-20deg) contrast(1.6);\n      }\n      75% {\n        transform: translate(-4px, 2px) scale(1.02);\n        filter: hue-rotate(40deg) contrast(1.5);\n      }\n      100% {\n        transform: translate(0, 0) skewX(0);\n        filter: none;\n      }\n    }\n\n    .gn-squish {\n      animation: gnSquish 0.8s cubic-bezier(0.45, 0, 0.55, 1) forwards;\n    }\n\n    @keyframes gnSquish {\n      0% {\n        transform: scale(1);\n        opacity: 1;\n      }\n      40% {\n        transform: scaleX(1.06) scaleY(0.8);\n      }\n      100% {\n        transform: scaleX(1.12) scaleY(0.05);\n        opacity: 0;\n      }\n    }\n\n    .gn-crash-overlay {\n      position: fixed;\n      inset: 0;\n      pointer-events: none;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      text-align: center;\n      font-family: \"Press Start 2P\", system-ui, sans-serif;\n      font-size: 0.75rem;\n      text-transform: uppercase;\n      color: #fffbeb;\n      background: repeating-linear-gradient(\n        to bottom,\n        #05000a 0,\n        #05000a 3px,\n        #0f172a 3px,\n        #0f172a 5px\n      );\n      opacity: 0;\n      z-index: 4;\n      transition: opacity 0.2s ease;\n    }\n\n    .gn-crash-overlay span {\n      display: block;\n      margin-top: 0.75rem;\n      font-size: 0.6rem;\n      opacity: 0.8;\n    }\n\n    body.gn-crash .gn-crash-overlay {\n      opacity: 1;\n    }\n\n    \/* MATRIX SECTION *\/\n\n    .gn-matrix {\n      position: fixed;\n      inset: 0;\n      background:\n        radial-gradient(circle at top, #04111d 0, #020617 40%, #000000 100%);\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      justify-content: center;\n      padding: 2rem 1.5rem;\n      opacity: 0;\n      pointer-events: none;\n      transform: scale(1.04) translateY(10px);\n      transition:\n        opacity 0.85s ease,\n        transform 0.85s ease;\n      z-index: 2;\n      overflow: hidden;\n    }\n\n    body.gn-show-matrix .gn-matrix {\n      opacity: 1;\n      pointer-events: auto;\n      transform: scale(1) translateY(0);\n    }\n\n    body.gn-show-matrix .gn-hero {\n      pointer-events: none;\n    }\n\n    .gn-matrix-bg {\n      position: absolute;\n      inset: -50px;\n      background-image:\n        linear-gradient(\n          to bottom,\n          rgba(22, 163, 74, 0.03) 0,\n          rgba(22, 163, 74, 0.4) 50%,\n          rgba(22, 163, 74, 0.05) 100%\n        ),\n        repeating-linear-gradient(\n          to bottom,\n          rgba(15, 23, 42, 0.6) 0,\n          rgba(15, 23, 42, 0.6) 2px,\n          transparent 2px,\n          transparent 4px\n        );\n      mix-blend-mode: screen;\n      opacity: 0.4;\n      animation: gnMatrixBg 8s linear infinite;\n      z-index: 0;\n    }\n\n    @keyframes gnMatrixBg {\n      0% {\n        transform: translateY(0);\n      }\n      100% {\n        transform: translateY(40px);\n      }\n    }\n\n    .gn-matrix-inner {\n      position: relative;\n      z-index: 1;\n      max-width: 920px;\n      width: 100%;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      gap: 2rem;\n    }\n\n    .gn-matrix-scene {\n      position: relative;\n      width: 100%;\n      height: 260px;\n      perspective: 900px;\n    }\n\n    .gn-matrix-track {\n      position: relative;\n      width: 100%;\n      height: 100%;\n      transform-style: preserve-3d;\n      animation: gnTrackDrift 9s ease-in-out infinite alternate;\n    }\n\n    @keyframes gnTrackDrift {\n      0% {\n        transform: rotateY(-8deg) translateY(8px);\n      }\n      100% {\n        transform: rotateY(10deg) translateY(-8px);\n      }\n    }\n\n    .gn-letter {\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform-style: preserve-3d;\n      font-family: \"Press Start 2P\", system-ui, sans-serif;\n      font-size: clamp(2.2rem, 4vw, 3rem);\n      color: #22c55e;\n      text-shadow:\n        0 0 16px rgba(34, 197, 94, 0.9),\n        0 0 30px rgba(34, 197, 94, 0.9);\n      animation: gnLetterTravel 4.2s linear infinite;\n    }\n\n    .gn-letter::after {\n      content: attr(data-letter);\n      position: absolute;\n      inset: 0;\n      color: rgba(15, 23, 42, 0.9);\n      transform: translate3d(1px, 3px, -30px);\n      filter: blur(1px);\n      opacity: 0.8;\n    }\n\n    @keyframes gnLetterTravel {\n      0% {\n        transform: translate3d(var(--x), -50%, -900px) rotateY(-16deg);\n        opacity: 0;\n      }\n      25% {\n        opacity: 1;\n      }\n      70% {\n        opacity: 1;\n      }\n      100% {\n        transform: translate3d(var(--x), -50%, 300px) rotateY(16deg);\n        opacity: 0;\n      }\n    }\n\n    \/* EVEN HORIZONTAL SPACING OF LETTERS (DESKTOP) *\/\n\n    .gn-letter:nth-child(1)  { --x: -225px; animation-delay: 0s; }\n    .gn-letter:nth-child(2)  { --x: -175px; animation-delay: 0.15s; }\n    .gn-letter:nth-child(3)  { --x: -125px; animation-delay: 0.3s; }\n    .gn-letter:nth-child(4)  { --x: -75px;  animation-delay: 0.45s; }\n    .gn-letter:nth-child(5)  { --x: -25px;  animation-delay: 0.6s; }\n    .gn-letter:nth-child(6)  { --x: 25px;   animation-delay: 0.75s; }\n    .gn-letter:nth-child(7)  { --x: 75px;   animation-delay: 0.9s; }\n    .gn-letter:nth-child(8)  { --x: 125px;  animation-delay: 1.05s; }\n    .gn-letter:nth-child(9)  { --x: 175px;  animation-delay: 1.2s; }\n    .gn-letter:nth-child(10) { --x: 225px;  animation-delay: 1.35s; }\n\n    .gn-matrix-label {\n      font-family: \"Press Start 2P\", system-ui, sans-serif;\n      font-size: 0.75rem;\n      text-transform: uppercase;\n      color: #a5f3fc;\n      text-align: center;\n    }\n\n    .gn-matrix-label span {\n      display: block;\n      margin-top: 0.4rem;\n      font-size: 0.6rem;\n      opacity: 0.8;\n    }\n\n    .gn-matrix-cta {\n      margin-top: 0.75rem;\n      opacity: 0;\n      transform: translateY(24px);\n      transition: opacity 0.6s ease, transform 0.6s ease;\n      display: flex;\n      justify-content: center;\n    }\n\n    .gn-matrix-cta.gn-show {\n      opacity: 1;\n      transform: translateY(0);\n    }\n\n    .gn-btn-enter {\n      background: #22c55e;\n      border-color: #bbf7d0;\n      box-shadow:\n        0 0 0 3px #052e16,\n        4px 4px 0 #000000;\n      color: #020617;\n    }\n\n    .gn-btn-enter:hover,\n    .gn-btn-enter:focus-visible {\n      background: #4ade80;\n      box-shadow:\n        0 0 0 3px #052e16,\n        6px 6px 0 #000000;\n    }\n\n    @media (max-width: 768px) {\n      .gn-matrix-scene {\n        height: 220px;\n      }\n      .gn-letter {\n        font-size: clamp(1.6rem, 7vw, 2.4rem);\n      }\n\n      \/* EVEN SPACING ON MOBILE TOO *\/\n\n      .gn-letter:nth-child(1)  { --x: -135px; }\n      .gn-letter:nth-child(2)  { --x: -105px; }\n      .gn-letter:nth-child(3)  { --x: -75px; }\n      .gn-letter:nth-child(4)  { --x: -45px; }\n      .gn-letter:nth-child(5)  { --x: -15px; }\n      .gn-letter:nth-child(6)  { --x: 15px; }\n      .gn-letter:nth-child(7)  { --x: 45px; }\n      .gn-letter:nth-child(8)  { --x: 75px; }\n      .gn-letter:nth-child(9)  { --x: 105px; }\n      .gn-letter:nth-child(10) { --x: 135px; }\n    }\n  <\/style>\n<\/head>\n\n<body>\n  <!-- HERO -->\n  <section class=\"gn-hero\" id=\"gn-hero\">\n    <div class=\"gn-hero-inner\">\n      <div class=\"gn-pixel-frame\">\n        <div class=\"gn-logo\">GROSSE NOIX<\/div>\n\n        <div class=\"gn-subtitle\">\n          Nothing exists here until you touch it.\n        <\/div>\n\n        <p class=\"gn-description\">\n          Grosse Noix is not an agency, not a classic studio, not a polite incubator.\n          It\u2019s a creative chaos engine where strange ideas, half-built brands and\n          impossible concepts come to be broken, rebuilt and pushed on the market.\n          <br><br>\n          We design structures for misfit projects: brand architecture, products,\n          digital worlds and business systems that don\u2019t fit in the usual boxes.\n          If you\u2019re not sure what it is yet, you\u2019re probably in the right place.\n        <\/p>\n\n        <div class=\"gn-tag-row\">\n          <div class=\"gn-tag\">Creative Business Architecture<\/div>\n          <div class=\"gn-tag\">Concept &amp; Prototype Lab<\/div>\n          <div class=\"gn-tag\">Digital &amp; 3D Worlds<\/div>\n          <div class=\"gn-tag\">Non-Traditional Structures<\/div>\n        <\/div>\n\n        <div class=\"gn-cta-row\">\n          <button class=\"gn-btn\" type=\"button\" id=\"gn-enter-btn\">\n            <span>Boot the Core<\/span>\n          <\/button>\n          <button class=\"gn-btn gn-btn-secondary\" type=\"button\">\n            <span>Browse Experiments<\/span>\n          <\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- CRASH OVERLAY -->\n  <div class=\"gn-crash-overlay\" id=\"gn-crash-overlay\">\n    SYSTEM OVERRUN\n    <span>&gt; booting GROSSE NOIX kernel&#8230;<\/span>\n  <\/div>\n\n  <!-- MATRIX SECTION -->\n  <section class=\"gn-matrix\" id=\"gn-matrix\">\n    <div class=\"gn-matrix-bg\"><\/div>\n\n    <div class=\"gn-matrix-inner\">\n      <div class=\"gn-matrix-scene\">\n        <div class=\"gn-matrix-track\">\n          <!-- G R O S S E   N O I X -->\n          <div class=\"gn-letter\" data-letter=\"G\">G<\/div>\n          <div class=\"gn-letter\" data-letter=\"R\">R<\/div>\n          <div class=\"gn-letter\" data-letter=\"O\">O<\/div>\n          <div class=\"gn-letter\" data-letter=\"S\">S<\/div>\n          <div class=\"gn-letter\" data-letter=\"S\">S<\/div>\n          <div class=\"gn-letter\" data-letter=\"E\">E<\/div>\n          <div class=\"gn-letter\" data-letter=\"N\">N<\/div>\n          <div class=\"gn-letter\" data-letter=\"O\">O<\/div>\n          <div class=\"gn-letter\" data-letter=\"I\">I<\/div>\n          <div class=\"gn-letter\" data-letter=\"X\">X<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"gn-matrix-label\">\n        GROSSE NOIX \/ CORE SPACE\n        <span>Letters drifting in 3D like a private matrix, waiting for you to decide what to build.<\/span>\n      <\/div>\n\n      <div class=\"gn-matrix-cta\" id=\"gn-enter-now-wrapper\">\n        <button class=\"gn-btn gn-btn-enter\" type=\"button\" id=\"gn-enter-now\">\n          <span>Enter Now<\/span>\n        <\/button>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <script>\n    (function () {\n      const hero = document.getElementById(\"gn-hero\");\n      const enterBtn = document.getElementById(\"gn-enter-btn\");\n      const enterNowWrapper = document.getElementById(\"gn-enter-now-wrapper\");\n      const body = document.body;\n\n      if (!hero) return;\n\n      \/* PIXEL TRAIL *\/\n\n      let lastSpawn = 0;\n      const spawnInterval = 18;\n      const maxPixels = 140;\n      let pixelCount = 0;\n\n      function spawnPixel(x, y) {\n        const rect = hero.getBoundingClientRect();\n        const px = document.createElement(\"div\");\n        px.className = \"gn-pixel\";\n\n        const size = 6 + Math.floor(Math.random() * 10);\n        px.style.width = size + \"px\";\n        px.style.height = size + \"px\";\n\n        px.style.left = x - rect.left - size \/ 2 + \"px\";\n        px.style.top = y - rect.top - size \/ 2 + \"px\";\n\n        const hueShift = Math.random();\n        if (hueShift < 0.33) {\n          px.style.background = \"#ff9aff\";\n        } else if (hueShift < 0.66) {\n          px.style.background = \"#00ffd5\";\n        } else {\n          px.style.background = \"#ffe66d\";\n        }\n\n        hero.appendChild(px);\n        pixelCount++;\n\n        px.addEventListener(\"animationend\", () => {\n          px.remove();\n          pixelCount = Math.max(0, pixelCount - 1);\n        });\n\n        if (pixelCount > maxPixels) {\n          const oldPixels = hero.querySelectorAll(\".gn-pixel\");\n          const removeCount = pixelCount - maxPixels;\n          for (let i = 0; i < removeCount &#038;&#038; i < oldPixels.length; i++) {\n            oldPixels[i].remove();\n            pixelCount--;\n          }\n        }\n      }\n\n      function handlePointerMove(e) {\n        const now = performance.now();\n        if (now - lastSpawn < spawnInterval) return;\n        lastSpawn = now;\n\n        if (e.touches &#038;&#038; e.touches.length > 0) {\n          const t = e.touches[0];\n          spawnPixel(t.clientX, t.clientY);\n        } else {\n          spawnPixel(e.clientX, e.clientY);\n        }\n      }\n\n      hero.addEventListener(\"mousemove\", handlePointerMove);\n      hero.addEventListener(\"touchstart\", handlePointerMove, { passive: true });\n      hero.addEventListener(\"touchmove\", handlePointerMove, { passive: true });\n\n      \/* TRANSITION TO MATRIX *\/\n\n      let hasTransitioned = false;\n\n      function startTransition() {\n        if (hasTransitioned) return;\n        hasTransitioned = true;\n\n        body.classList.add(\"gn-crash\");\n\n        \/\/ start squish shortly after crash begins\n        setTimeout(() => {\n          hero.classList.add(\"gn-squish\");\n        }, 120);\n\n        \/\/ smoother cross-fade timing\n        const squishDuration = 800;\n        const matrixFadeOverlap = 260; \/\/ start matrix fade before squish fully ends\n\n        \/\/ fade in matrix while hero finishes squishing\n        setTimeout(() => {\n          body.classList.remove(\"gn-crash\");\n          body.classList.add(\"gn-show-matrix\");\n        }, squishDuration - matrixFadeOverlap);\n\n        \/\/ reveal \"Enter Now\" after 5 seconds of travelling\n        const revealDelay = squishDuration + 5000;\n        setTimeout(() => {\n          if (enterNowWrapper) {\n            enterNowWrapper.classList.add(\"gn-show\");\n          }\n        }, revealDelay);\n      }\n\n      if (enterBtn) {\n        enterBtn.addEventListener(\"click\", () => {\n          startTransition();\n        });\n      }\n    })();\n  <\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>Grosse Noix \u2014 Hero GROSSE NOIX Nothing exists here until you touch it. Grosse Noix is not an agency, not a classic studio, not a polite incubator. It\u2019s a creative chaos engine where strange ideas, half-built brands and impossible concepts come to be broken, rebuilt and pushed on the market. We design structures for misfit [&#8230;]\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-95","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/posts\/95","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/comments?post=95"}],"version-history":[{"count":1,"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/posts\/95\/revisions"}],"predecessor-version":[{"id":96,"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/posts\/95\/revisions\/96"}],"wp:attachment":[{"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/media?parent=95"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/categories?post=95"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grossenoix.com\/index.php\/wp-json\/wp\/v2\/tags?post=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}