*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --bg: #070a0f;
      --grid: #ffffff06;
      --accent: #00ffe0;
      --accent2: #7b61ff;
      --text: #e8eaf0;
      --muted: #3d4556;
      --mono: 'JetBrains Mono', monospace;
      --bebas: 'Bebas Neue', sans-serif;
    }

    html, body {
      height: 100%; background: var(--bg); color: var(--text);
      font-family: var(--mono); overflow: hidden; cursor: none;
    }

    #cursor {
      position: fixed; top: 0; left: 0; width: 5px; height: 5px;
      background: var(--accent); border-radius: 50%; pointer-events: none;
      z-index: 10000; transform: translate(-50%,-50%);
      transition: width .15s, height .15s;
      box-shadow: 0 0 4px var(--accent);
    }
    #cursor-ring {
      position: fixed; top: 0; left: 0; width: 40px; height: 40px;
      pointer-events: none; z-index: 9999;
      transform: translate(-50%,-50%);
      transition: width .25s, height .25s, opacity .3s; opacity: .55;
    }

    .grid-bg {
      position: fixed; inset: 0; z-index: 0;
      background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);
      background-size: 60px 60px;
    }
    .glow {
      position: fixed; inset: 0; z-index: 1; pointer-events: none;
      background: radial-gradient(ellipse 70% 55% at 50% 50%, #00ffe01a 0%, transparent 70%);
      animation: glowPulse 6s ease-in-out infinite;
    }
    @keyframes glowPulse { 0%,100%{opacity:.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.04)} }

    .scanline {
      position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 2;
      background: linear-gradient(90deg, transparent, var(--accent), transparent);
      opacity: .12; animation: scan 6s linear infinite;
    }
    @keyframes scan { 0%{top:-2px} 100%{top:100vh} }

    .noise {
      position: fixed; inset: 0; z-index: 2; opacity: .025; pointer-events: none;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
      background-size: 180px 180px;
    }

    html, body { overflow: hidden; }

    main {
      position: relative; z-index: 10; height: 100vh;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 0;
    }

    /* ── Game ── */
    #game-wrap {
      margin-top: 18px;
      opacity: 0; animation: fadeUp .8s ease 1.6s forwards;
      display: flex; flex-direction: column; align-items: center; gap: 8px;
    }
    #game-canvas {
      border: 1px solid #00ffe033;
      border-radius: 4px;
      display: block;
      image-rendering: pixelated;
      cursor: none;
      background: rgba(0,0,0,0.72);
      box-shadow: 0 0 0 1px #00ffe011, inset 0 0 40px #00000088;
    }
    #game-hud {
      display: flex; gap: 28px; font-size: 10px; letter-spacing: .18em; color: var(--accent);
      width: 100%; justify-content: space-between;
    }
    #game-hud em { color: var(--text); font-style: normal; }
    #game-hud .hud-r { color: var(--accent); }
    #game-overlay {
      position: absolute; inset: 0;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 10px; background: #070a0fcc; border-radius: 4px;
      font-family: var(--mono); pointer-events: none;
    }
    #game-overlay .ov-title {
      font-family: var(--bebas); font-size: 28px; letter-spacing: .1em; color: var(--accent);
    }
    #game-overlay .ov-sub {
      font-size: 10px; letter-spacing: .2em; color: var(--muted);
    }
    #game-overlay .ov-score {
      font-size: 13px; letter-spacing: .15em; color: var(--text);
    }

    .corner { position: fixed; width: 28px; height: 28px; z-index: 10; opacity: .3; }
    .corner.tl { top: 24px; left: 24px; border-top: 1px solid var(--accent); border-left: 1px solid var(--accent); }
    .corner.tr { top: 24px; right: 24px; border-top: 1px solid var(--accent); border-right: 1px solid var(--accent); }
    .corner.bl { bottom: 24px; left: 24px; border-bottom: 1px solid var(--accent); border-left: 1px solid var(--accent); }
    .corner.br { bottom: 24px; right: 24px; border-bottom: 1px solid var(--accent); border-right: 1px solid var(--accent); }

    .statusbar-top {
      position: fixed; top: 24px; left: 50%; transform: translateX(-50%);
      font-size: 10px; letter-spacing: .18em; color: var(--text); z-index: 20;
      opacity: 0; animation: fadeUpC 1s 2.2s forwards;
    }
    .statusbar-top span { color: var(--accent); }

    @keyframes fadeUpC {
      from { opacity: 0; transform: translateY(8px) translateX(-50%); }
      to   { opacity: 1; transform: translateY(0)  translateX(-50%); }
    }
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(10px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes wordmarkReveal {
      0%   { opacity: 0; transform: translateY(28px); filter: blur(8px); }
      100% { opacity: 1; transform: translateY(0);    filter: blur(0); }
    }
    @keyframes barReveal { from { transform: scaleX(0); } to { transform: scaleX(1); } }

    /* ── Logo + wordmark row ── */
    .hero {
      display: flex; align-items: center; gap: 32px;
      opacity: 0; animation: fadeUp 1s cubic-bezier(.16,1,.3,1) .1s forwards;
    }

    /* SVG logo mark */
    .logo-mark svg { display: block; }

    /* Wordmark */
    .wordmark-block { display: flex; flex-direction: column; }

    .wordmark {
      font-family: var(--bebas); font-weight: 400; letter-spacing: .07em;
      font-size: clamp(72px, 13vw, 160px); line-height: .88;
      color: var(--text); display: block; text-transform: uppercase;
      opacity: 0; animation: wordmarkReveal 1s cubic-bezier(.16,1,.3,1) .3s forwards;
    }

    .tld-row {
      display: flex; align-items: center; gap: 10px; margin-top: 6px;
      opacity: 0; animation: fadeUp .7s ease .95s forwards;
    }
    .tld-text { font-family: var(--mono); font-size: 13px; letter-spacing: .22em; color: var(--accent); }
    .tld-bar {
      flex: 1; height: 1px; min-width: 60px;
      background: linear-gradient(90deg, var(--accent), #c8cad4, transparent);
      transform: scaleX(0); transform-origin: left;
      animation: barReveal .8s cubic-bezier(.16,1,.3,1) 1.1s forwards;
    }

    .meta {
      margin-top: 32px; font-size: 10px; letter-spacing: .22em; color: var(--text);
      display: flex; gap: 28px; justify-content: center;
      opacity: 0; animation: fadeUp .8s ease 1.3s forwards;
    }
    .meta em { color: var(--accent); font-style: normal; }

    .statusbar-bottom {
      position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%);
      display: flex; align-items: center; gap: 20px;
      font-size: 10px; letter-spacing: .18em; color: var(--text);
      z-index: 50; opacity: 0; animation: fadeUpC 1s 2.4s forwards;
      white-space: nowrap; flex-wrap: wrap; justify-content: center;
      max-width: calc(100vw - 32px);
    }
    .statusbar-bottom a {
      color: var(--text); text-decoration: none; transition: color .2s; position: relative;
    }
    .statusbar-bottom a::after {
      content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 1px;
      background: var(--accent); transform: scaleX(0); transform-origin: left;
      transition: transform .25s ease;
    }
    .statusbar-bottom a:hover { color: var(--accent); }
    .statusbar-bottom a:hover::after { transform: scaleX(1); }

    .dot { width: 4px; height: 4px; background: var(--muted); border-radius: 50%; opacity: .4; }

    #particles { position: fixed; inset: 0; z-index: 3; pointer-events: none; }

    .token-stream {
      position: fixed; right: 40px; top: 50%; transform: translateY(-50%);
      display: flex; flex-direction: column; gap: 4px; z-index: 5;
      opacity: 0; animation: fadeUp 1s 2s forwards;
    }
    .token {
      width: 2px; background: var(--accent); border-radius: 2px;
      opacity: 0; animation: tokenFill var(--d) var(--delay) ease forwards;
    }
    @keyframes tokenFill {
      0%  { opacity: 0; height: 0; }
      50% { opacity: .6; }
      100%{ opacity: .15; height: var(--h); }
    }

    .sideline {
      position: fixed; left: 40px; top: 50%; transform: translateY(-50%);
      z-index: 5; opacity: 0; animation: fadeUp 1s 2s forwards;
    }

    /* ── Contact Modal ── */


    #privacy-backdrop {
      position: fixed; inset: 0; background: rgba(7,10,15,.82);
      display: flex; align-items: center; justify-content: center;
      z-index: 5000; opacity: 0; pointer-events: none;
      transition: opacity .25s;
    }
    #privacy-backdrop.open { opacity: 1; pointer-events: all; }
    #privacy-modal {
      background: #0c1018; border: 1px solid rgba(0,255,224,.18);
      border-radius: 4px; padding: 32px 28px 28px;
      max-width: 460px; width: 90%; position: relative;
      transform: translateY(24px); transition: transform .25s;
      font-family: var(--mono); max-height: 80vh; overflow-y: auto;
    }
    #privacy-backdrop.open #privacy-modal { transform: translateY(0); }
    #privacy-modal p { margin: 0 0 14px; }
    #copyright-backdrop {
      position: fixed; inset: 0; background: rgba(7,10,15,.82);
      display: flex; align-items: center; justify-content: center;
      z-index: 5000; opacity: 0; pointer-events: none;
      transition: opacity .25s;
    }
    #copyright-backdrop.open { opacity: 1; pointer-events: all; }
    #copyright-modal {
      background: #0c1018; border: 1px solid rgba(0,255,224,.18);
      border-radius: 4px; padding: 32px 28px 28px;
      max-width: 420px; width: 90%; position: relative;
      transform: translateY(24px); transition: transform .25s;
      font-family: var(--mono);
    }
    #copyright-backdrop.open #copyright-modal { transform: translateY(0); }
    #copyright-modal p { margin: 0 0 10px; }
    #contact-backdrop {
      position: fixed; inset: 0; z-index: 100;
      background: #070a0fee; backdrop-filter: blur(4px);
      display: flex; align-items: center; justify-content: center;
      opacity: 0; pointer-events: none;
      transition: opacity .3s ease;
    }
    #contact-backdrop.open { opacity: 1; pointer-events: all; }

    #contact-modal {
      width: min(440px, calc(100vw - 48px));
      border: 1px solid #1a2a22;
      border-radius: 6px;
      padding: 32px 28px;
      background: #0a0f14;
      position: relative;
      transform: translateY(16px);
      transition: transform .3s cubic-bezier(.16,1,.3,1);
    }
    #contact-backdrop.open #contact-modal { transform: translateY(0); }

    .cm-title {
      font-family: var(--bebas); font-size: 22px; letter-spacing: .12em;
      color: var(--accent); margin-bottom: 4px;
    }
    .cm-sub {
      font-size: 10px; letter-spacing: .18em; color: var(--text); margin-bottom: 24px;
    }
    .cm-field { margin-bottom: 16px; }
    .cm-field label {
      display: block; font-size: 9px; letter-spacing: .2em;
      color: var(--text); margin-bottom: 6px; text-transform: uppercase;
    }
    .cm-field input,
    .cm-field textarea {
      width: 100%; background: #070a0f; border: 1px solid #1a2a22;
      color: var(--text); font-family: var(--mono); font-size: 12px;
      padding: 10px 12px; border-radius: 3px; outline: none;
      transition: border-color .2s;
      resize: none;
    }
    .cm-field input,
    .cm-field textarea { transition: border-color .15s, box-shadow .15s; }
    .cm-field input:focus,
    .cm-field textarea:focus { border-color: var(--accent); }
    .cm-slider-wrap { margin-bottom: 20px; }
    .cm-slider-wrap label { font-size: 11px; color: var(--text); letter-spacing: .12em; display:block; margin-bottom:8px; }
    .cm-slider-track {
      position: relative; height: 38px; background: #0d1117;
      border: 1px solid #1a2a22; border-radius: 4px; overflow: hidden;
      transition: border-color .2s;
    }
    .cm-slider-track.cap-done  { border-color: var(--accent); }
    .cm-slider-track.cap-error { border-color: #ff4466; }
    .cm-slider-fill {
      position: absolute; left: 0; top: 0; bottom: 0; width: 0;
      background: linear-gradient(90deg, #00ffe018, #00ffe008);
    }
    .cm-slider-thumb {
      position: absolute; top: 0; bottom: 0; left: 0; width: 38px;
      background: #1a2a22; border-right: 1px solid #00ffe044;
      display: flex; align-items: center; justify-content: center;
      font-size: 16px; cursor: grab; user-select: none; color: var(--text);
      transition: background .15s, color .15s;
    }
    .cm-slider-thumb:active { cursor: grabbing; }
    .cm-slider-thumb.cap-done { background: #00ffe033; color: var(--accent); }
    .cm-slider-hint {
      position: absolute; left: 48px; top: 0; bottom: 0;
      display: flex; align-items: center;
      font-size: 10px; letter-spacing: .14em; color: #2a3544;
      pointer-events: none; transition: color .2s;
    }
    .cm-slider-hint.cap-done { color: var(--accent); }
    .cm-send {
      width: 100%; padding: 12px; background: transparent;
      border: 1px solid var(--accent); border-radius: 3px;
      color: var(--accent); font-family: var(--mono); font-size: 11px;
      letter-spacing: .2em; cursor: pointer; transition: background .2s, color .2s;
      text-transform: uppercase;
    }
    .cm-send:hover { background: var(--accent); color: #070a0f; }
    .cm-send:disabled { opacity: .4; cursor: default; }
    .cm-close {
      position: absolute; top: 14px; right: 16px;
      background: none; border: none; color: var(--muted);
      font-size: 27px; cursor: pointer; line-height: 1;
      transition: color .2s; font-family: var(--mono);
    }
    .cm-close:hover { color: var(--accent); }
    .cm-status {
      font-size: 10px; letter-spacing: .15em; margin-top: 12px;
      text-align: center; min-height: 16px;
    }
    .cm-status.ok  { color: var(--accent); }
    .cm-status.err { color: #ff4466; }
    /* Honeypot – visually hidden */
    .hp-field { position: absolute; left: -9999px; opacity: 0; pointer-events: none; }