/* ── Style Block 1 ── */
*,
    *::before,
    *::after {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }

    #oneko {
      background-image: url("https://cdn.jsdelivr.net/gh/adryd325/oneko.js@main/oneko.gif") !important;
    }

    *:focus {
      outline: none !important;
    }

    :root[data-theme="dark"] {
      --bg: #000000;
      --surface: #000000;
      --glass: rgba(255, 255, 255, 0.03);
      --border: rgba(255, 255, 255, 0.06);
      --border-hi: rgba(255, 255, 255, 0.12);
      --grid-line: rgba(255, 255, 255, 0.12);
      --t1: #ffffff;
      --t2: rgba(255, 255, 255, 0.85);
      --t3: rgba(255, 255, 255, 0.65);
      --accent: #b8ff00;
      --accent2: #00d4ff;
      --accent3: #ff3a5c;
      --island-bg: #000000;
      --island-sh: rgba(255, 255, 255, 0.04);
      --btn-bg: rgba(255, 255, 255, 0.08);
      --glow-a: rgba(184, 255, 0, 0.12);
    }

    :root[data-theme="light"] {
      --bg: #f2f2f0;
      --surface: #ffffff;
      --glass: rgba(0, 0, 0, 0.03);
      --border: rgba(0, 0, 0, 0.08);
      --border-hi: rgba(0, 0, 0, 0.15);
      --grid-line: rgba(0, 0, 0, 0.06);
      --t1: #2a2a32;
      --t2: rgba(42, 42, 50, 0.65);
      --t3: rgba(42, 42, 50, 0.45);
      --accent: #5c8a00;
      --accent2: #0066cc;
      --accent3: #cc1a33;
      --island-bg: #ffffff;
      --island-sh: rgba(0, 0, 0, 0.02);
      --btn-bg: rgba(0, 0, 0, 0.06);
      --glow-a: rgba(92, 138, 0, 0.08);
    }

    [data-theme="light"] #ai-assistant-btn {
    }

    /* ── Global heading polish (DM Sans) ── */
    h1, h2, h3, h4, h5, h6 {
      font-family: 'DM Sans', sans-serif;
      font-weight: 700;
      letter-spacing: -0.025em;
      line-height: 1.15;
      -webkit-font-smoothing: antialiased;
    }
    p, span, li, label, input, textarea, button {
      font-family: inherit;
      -webkit-font-smoothing: antialiased;
    }

    [data-theme="light"] #ai-assistant-btn:hover {
    }

    [data-theme="light"] #ai-chat-bubble {
      background: rgba(255, 255, 255, 0.92);
      border: 1px solid rgba(0, 0, 0, 0.10);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 8px 40px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(204, 26, 51, 0.15);
    }

    [data-theme="light"] .ai-bubble-msg {
      color: rgba(13, 13, 16, 0.85);
    }

    [data-theme="light"] .ai-bubble-msg strong {
      color: #0d0d10;
    }

    [data-theme="light"] .ai-bubble-time {
      color: rgba(13, 13, 16, 0.5);
    }

    [data-theme="light"] .ai-action-btn {
      background: rgba(0, 0, 0, 0.04);
      border-color: rgba(0, 0, 0, 0.1);
      color: rgba(13, 13, 16, 0.7);
    }

    [data-theme="light"] .ai-action-btn.yes {
      background: rgba(92, 138, 0, 0.1);
      border-color: rgba(92, 138, 0, 0.3);
      color: var(--accent);
    }

    [data-theme="light"] .ai-confirmed {
      color: var(--t1);
    }

    html {
      background: #000000;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      transition: background-color 0.5s ease;
      scroll-behavior: smooth;
      cursor: none;
      overflow-x: hidden;
      width: 100%;
    }

    .skip-link {
      position: absolute;
      top: -48px;
      left: 12px;
      z-index: 1000000;
      background: var(--accent);
      color: #000;
      font-family: 'DM Sans', sans-serif;
      font-weight: 700;
      font-size: 13px;
      letter-spacing: 0.04em;
      padding: 10px 18px;
      border-radius: 8px;
      text-decoration: none;
      transition: top 0.2s ease;
      cursor: pointer;
    }

    .skip-link:focus {
      top: 12px;
    }

    body {
      min-height: 100dvh;
      background: var(--bg);
      color: var(--t1);
      font-family: 'Inter', sans-serif;
      font-size: 15px;
      line-height: 1.65;
      letter-spacing: -0.01em;
      font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-rendering: optimizeLegibility;
      display: flex;
      flex-direction: column;
      align-items: center;
      overflow-x: hidden;
      width: 100%;
      position: relative;
      transition: background-color 0.5s ease, color 0.5s ease;
      cursor: none
    }

    #skeleton-overlay {
      position: fixed;
      inset: 0;
      z-index: 999999;
      background: var(--bg);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 30px;
      transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.8s ease;
    }

    .shimmer-block {
      background: linear-gradient(90deg, var(--glass) 25%, var(--border-hi) 50%, var(--glass) 75%);
      background-size: 200% 100%;
      animation: shimmer 1.5s infinite linear;
      border-radius: 12px;
    }

    .title-shim {
      width: clamp(200px, 40vw, 350px);
      height: 80px;
      border-radius: 20px;
    }

    .text-shim {
      width: clamp(250px, 50vw, 450px);
      height: 16px;
      border-radius: 8px;
    }

    .text-shim-short {
      width: clamp(150px, 30vw, 250px);
      height: 16px;
      border-radius: 8px;
    }

    .islands-shim {
      display: flex;
      gap: 10px;
      margin-top: 20px;
    }

    .island-shim {
      width: 46px;
      height: 46px;
      border-radius: 50%;
    }

    @keyframes shimmer {
      to {
        background-position: -200% 0;
      }
    }

    body.loaded #skeleton-overlay {
      opacity: 0;
      visibility: hidden;
    }

    /* ── TargetCursor ── */
    #target-cursor-wrapper {
      position: fixed;
      top: 0;
      left: 0;
      width: 0;
      height: 0;
      pointer-events: none;
      z-index: 999999;
      mix-blend-mode: difference;
      transform: translate(-50%, -50%);
    }

    #target-cursor-dot {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 4px;
      height: 4px;
      background: #fff;
      border-radius: 50%;
      transform: translate(-50%, -50%);
      will-change: transform;
    }

    .target-cursor-corner {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 12px;
      height: 12px;
      border: 3px solid #fff;
      will-change: transform;
    }

    .corner-tl {
      transform: translate(-150%, -150%);
      border-right: none;
      border-bottom: none;
    }

    .corner-tr {
      transform: translate(50%, -150%);
      border-left: none;
      border-bottom: none;
    }

    .corner-br {
      transform: translate(50%, 50%);
      border-left: none;
      border-top: none;
    }

    .corner-bl {
      transform: translate(-150%, 50%);
      border-right: none;
      border-top: none;
    }

    /* ── Mouse-following ambient spotlight — DISABLED (pitch black bg) ── */
    #mouse-spotlight {
      display: none !important;
    }

    #rainbowBg {
      display: none;
    }

    /* full-bleed, even intensity edge-to-edge — no center mask, no blink, just drift */
    /* Grid fully removed — WebGL fluid animation is the background */
    .bg-grid {
      display: none !important;
    }

    /* ── SHAPE GRID BACKGROUND ── */
    #shapegrid-canvas {
      position: fixed;
      inset: 0;
      width: 100%;
      height: 100%;
      z-index: 0;
      pointer-events: none;
      display: block;
      opacity: 0.18;
    }
    [data-theme="light"] #shapegrid-canvas {
      opacity: 0.7;
    }

    /* ── Remove heading shadows in light mode ── */
    [data-theme="light"] .auth-modal-title,
    [data-theme="light"] .auth-modal-sub,
    [data-theme="light"] .exp-title,
    [data-theme="light"] .rainbow-underline,
    [data-theme="light"] .fp-title,
    [data-theme="light"] .fp-desc {
      text-shadow: none;
    }

    /* GPU-accelerated — kept for any legacy references */
    @keyframes grid-drift {
      from { transform: translate(0, 0); }
      to   { transform: translate(48px, 48px); }
    }

    @keyframes dot-drift {
      from {
        transform: translate(0, 0);
      }

      to {
        transform: translate(0, 192px);
      }
    }

    @keyframes grid-breathe {
      0% {
        opacity: 0.55;
      }

      100% {
        opacity: 1;
      }
    }

    /* ─────────────────────────────────────────
       LIVING BREATHING BACKGROUND
    ───────────────────────────────────────── */
    #bg-breath {
      position: fixed;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      overflow: hidden;
      display: none; /* Orbs fully killed — no glow/bloom bleed */
    }

    .breath-orb {
      display: none;
      position: absolute;
      border-radius: 50%;
      filter: blur(80px);
      will-change: transform, opacity;
      mix-blend-mode: screen;
      --mx: 0px;
      --my: 0px;
    }

    /* Orb 1 — acid green, top-left, primary pulse */
    .orb-1 {
      width: 55vw;
      height: 55vw;
      max-width: 700px;
      max-height: 700px;
      top: -18%;
      left: -12%;
      background: radial-gradient(circle at 40% 40%, rgba(184, 255, 0, 0.13) 0%, rgba(184, 255, 0, 0.04) 50%, transparent 75%);
      animation: orb-breathe-1 9s ease-in-out infinite;
    }

    /* Orb 2 — cyan, right side */
    .orb-2 {
      width: 50vw;
      height: 50vw;
      max-width: 620px;
      max-height: 620px;
      top: 5%;
      right: -15%;
      background: radial-gradient(circle at 60% 35%, rgba(0, 212, 255, 0.11) 0%, rgba(0, 212, 255, 0.03) 55%, transparent 78%);
      animation: orb-breathe-2 11s ease-in-out infinite;
    }

    /* Orb 3 — crimson, bottom-right, heartbeat feel */
    .orb-3 {
      width: 48vw;
      height: 48vw;
      max-width: 580px;
      max-height: 580px;
      bottom: -10%;
      right: -8%;
      background: radial-gradient(circle at 55% 55%, rgba(255, 58, 92, 0.09) 0%, rgba(255, 58, 92, 0.025) 55%, transparent 78%);
      animation: orb-breathe-3 13s ease-in-out infinite;
    }

    /* Orb 4 — violet, bottom-left */
    .orb-4 {
      width: 45vw;
      height: 45vw;
      max-width: 550px;
      max-height: 550px;
      bottom: -5%;
      left: -10%;
      background: radial-gradient(circle at 45% 55%, rgba(123, 94, 167, 0.10) 0%, rgba(123, 94, 167, 0.03) 55%, transparent 78%);
      animation: orb-breathe-4 15s ease-in-out infinite;
    }

    /* Orb 5 — amber, center-top — slow drifter */
    .orb-5 {
      width: 40vw;
      height: 40vw;
      max-width: 480px;
      max-height: 480px;
      top: 20%;
      left: 28%;
      background: radial-gradient(circle at 50% 50%, rgba(255, 140, 0, 0.065) 0%, rgba(255, 140, 0, 0.015) 55%, transparent 78%);
      animation: orb-breathe-5 18s ease-in-out infinite;
    }

    /* Orb 6 — pure white sparkle, small & fast */
    .orb-6 {
      width: 28vw;
      height: 28vw;
      max-width: 320px;
      max-height: 320px;
      top: 55%;
      left: 50%;
      transform: translate(-50%, -50%);
      background: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.04) 0%, transparent 70%);
      animation: orb-breathe-6 7s ease-in-out infinite;
    }

    /* Film grain overlay for texture */
    .breath-noise {
  display: none; /* Ithu add cheythal aa grains-um moving gray filter-um poikolum */
  position: absolute;
  inset: -50%;
  background-image: url("data:image/svg+xml,...");
  background-size: 220px 220px;
  mix-blend-mode: overlay;
  opacity: 0.09;
  animation: noise-drift 20s linear infinite alternate;
}
    

    /* ── BREATHING KEYFRAMES ── */

    /* Slow inhale-exhale + gentle drift */
    @keyframes orb-breathe-1 {
      0% {
        transform: translate(var(--mx), var(--my)) scale(1) translate(0px, 0px) rotate(0deg);
        opacity: 0.7;
      }

      20% {
        transform: translate(var(--mx), var(--my)) scale(1.08) translate(18px, -12px) rotate(4deg);
        opacity: 1.0;
      }

      45% {
        transform: translate(var(--mx), var(--my)) scale(1.18) translate(30px, 8px) rotate(8deg);
        opacity: 0.85;
      }

      70% {
        transform: translate(var(--mx), var(--my)) scale(1.10) translate(10px, 22px) rotate(3deg);
        opacity: 1.0;
      }

      100% {
        transform: translate(var(--mx), var(--my)) scale(1) translate(0px, 0px) rotate(0deg);
        opacity: 0.7;
      }
    }

    @keyframes orb-breathe-2 {
      0% {
        transform: translate(var(--mx), var(--my)) scale(0.92) translate(0px, 0px) rotate(0deg);
        opacity: 0.6;
      }

      30% {
        transform: translate(var(--mx), var(--my)) scale(1.12) translate(-20px, 15px) rotate(-5deg);
        opacity: 0.95;
      }

      55% {
        transform: translate(var(--mx), var(--my)) scale(1.06) translate(-8px, 28px) rotate(-2deg);
        opacity: 0.8;
      }

      80% {
        transform: translate(var(--mx), var(--my)) scale(1.15) translate(-28px, 5px) rotate(-7deg);
        opacity: 1.0;
      }

      100% {
        transform: translate(var(--mx), var(--my)) scale(0.92) translate(0px, 0px) rotate(0deg);
        opacity: 0.6;
      }
    }

    @keyframes orb-breathe-3 {
      0% {
        transform: translate(var(--mx), var(--my)) scale(1) translate(0px, 0px) rotate(0deg);
        opacity: 0.55;
      }

      25% {
        transform: translate(var(--mx), var(--my)) scale(1.14) translate(-15px, -20px) rotate(6deg);
        opacity: 0.90;
      }

      50% {
        transform: translate(var(--mx), var(--my)) scale(0.95) translate(-25px, 8px) rotate(2deg);
        opacity: 0.70;
      }

      75% {
        transform: translate(var(--mx), var(--my)) scale(1.20) translate(-5px, -12px) rotate(9deg);
        opacity: 1.00;
      }

      100% {
        transform: translate(var(--mx), var(--my)) scale(1) translate(0px, 0px) rotate(0deg);
        opacity: 0.55;
      }
    }

    @keyframes orb-breathe-4 {
      0% {
        transform: translate(var(--mx), var(--my)) scale(1.05) translate(0px, 0px) rotate(0deg);
        opacity: 0.65;
      }

      35% {
        transform: translate(var(--mx), var(--my)) scale(0.90) translate(22px, -18px) rotate(-6deg);
        opacity: 0.80;
      }

      65% {
        transform: translate(var(--mx), var(--my)) scale(1.18) translate(8px, 15px) rotate(-10deg);
        opacity: 1.00;
      }

      100% {
        transform: translate(var(--mx), var(--my)) scale(1.05) translate(0px, 0px) rotate(0deg);
        opacity: 0.65;
      }
    }

    @keyframes orb-breathe-5 {
      0% {
        transform: scale(1) translate(0px, 0px) opacity: 0.5;
      }

      30% {
        transform: scale(1.25) translate(15px, -25px) opacity: 0.85;
      }

      60% {
        transform: scale(0.85) translate(-10px, 15px) opacity: 0.60;
      }

      100% {
        transform: scale(1) translate(0px, 0px) opacity: 0.5;
      }
    }

    /* Quick flicker heartbeat */
    @keyframes orb-breathe-6 {
      0% {
        transform: translate(-50%, -50%) scale(0.8);
        opacity: 0.3;
      }

      15% {
        transform: translate(-50%, -50%) scale(1.15);
        opacity: 0.9;
      }

      30% {
        transform: translate(-50%, -50%) scale(0.95);
        opacity: 0.5;
      }

      50% {
        transform: translate(-50%, -50%) scale(1.20);
        opacity: 1.0;
      }

      70% {
        transform: translate(-50%, -50%) scale(0.90);
        opacity: 0.4;
      }

      85% {
        transform: translate(-50%, -50%) scale(1.10);
        opacity: 0.75;
      }

      100% {
        transform: translate(-50%, -50%) scale(0.8);
        opacity: 0.3;
      }
    }

    @keyframes noise-drift {
      0% {
        transform: translate(0, 0) rotate(0deg);
      }

      100% {
        transform: translate(-60px, 40px) rotate(2deg);
      }
    }

    /* grid animations are defined above — no override needed */

    /* Light mode: desaturate orbs */
    [data-theme="light"] .breath-orb {
      mix-blend-mode: multiply;
      opacity: 0.35;
    }

    [data-theme="light"] .breath-noise {
      opacity: 0.018;
    }

    /* Performance opt: freeze orbs + grid drift on low-perf */
    body.low-perf #bg-breath .breath-orb,
    body.low-perf #bg-breath .breath-noise,
    body.low-perf .bg-grid,
    body.low-perf .bg-grid::before,
    body.low-perf .bg-grid::after {
      animation: none !important;
    }

    .fixed-btn {
      position: fixed;
      top: 24px;
      z-index: 100;
      background: var(--glass);
      border: 1px solid var(--border);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      width: 42px;
      height: 42px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: none;
      color: var(--t2);
      transition: transform 0.2s ease, background 0.3s ease, border-color 0.3s ease, color 0.3s ease
    }

    .fixed-btn:hover {
      transform: scale(1.06);
      background: var(--btn-bg);
      border-color: var(--border-hi);
      color: var(--t1)
    }

    .fixed-btn svg {
      width: 18px;
      height: 18px
    }

    #qrBtn {
      left: 78px
    }

    #musicBtn {
      left: 24px
    }

    /* Music button colour states */
    #musicBtn {
      color: #ffffff;
      border-color: rgba(255,255,255,0.25);
      transition: transform 0.2s ease, background 0.3s ease, border-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
    }

    #musicBtn.state-red {
      color: #ff3b30;
      border-color: rgba(255,59,48,0.5);
      box-shadow: 0 0 10px rgba(255,59,48,0.35);
    }

    #musicBtn.state-green {
      color: #30d158;
      border-color: rgba(48,209,88,0.5);
      box-shadow: 0 0 10px rgba(48,209,88,0.35);
    }

    /* Always hide the old muted icon */
    #musicBtn svg.icon-muted {
      display: none;
    }

    #themeBtn {
      position: relative !important;
      top: auto !important;
      right: auto !important;
    }

    [data-theme="dark"] .icon-moon {
      display: none
    }

    [data-theme="light"] .icon-sun {
      display: none
    }

    .qr-overlay {
      position: fixed;
      inset: 0;
      z-index: 1000;
      background: rgba(0, 0, 0, 0.85);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease
    }

    .qr-overlay.visible {
      opacity: 1;
      pointer-events: all
    }

    .qr-modal {
      background: var(--surface);
      border: 1px solid var(--border-hi);
      border-radius: 16px;
      padding: 32px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
      transform: scale(0.9) translateY(10px);
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
      max-width: 320px;
      width: 90%
    }

    .qr-overlay.visible .qr-modal {
      transform: scale(1) translateY(0);
    }

    .qr-modal-title {
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.35em;
      color: var(--t3);
      text-transform: uppercase;
      text-align: center
    }

    .qr-canvas-wrap {
      background: var(--bg);
      border: 1px solid var(--border-hi);
      border-radius: 12px;
      padding: 12px;
      display: flex;
      align-items: center;
      justify-content: center
    }

    #qrCanvas {
      display: block;
      border-radius: 6px;
    }

    .qr-url {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.15em;
      color: var(--t3);
      text-transform: uppercase;
      text-align: center;
      word-break: break-all
    }

    .qr-close {
      background: var(--btn-bg);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 8px 24px;
      color: var(--t2);
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      cursor: none;
      transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.2s
    }

    .qr-close:hover {
      background: var(--glass);
      border-color: var(--border-hi);
      color: var(--t1);
      transform: scale(1.04);
    }

    /* ══════════════════ AUTH — pill button / dropdown ══════════════════ */
    .auth-pill {
      position: fixed;
      top: 24px;
      right: 78px;
      z-index: 100;
      height: 42px;
      width: auto;
      padding: 0 16px 0 12px;
      border-radius: 100px;
      background: var(--glass);
      border: 1px solid var(--border);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      display: flex;
      align-items: center;
      gap: 8px;
      cursor: none;
      color: var(--t2);
      transition: transform 0.2s ease, background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
    }

    .auth-pill:hover {
      transform: scale(1.04);
      background: var(--btn-bg);
      border-color: var(--border-hi);
      color: var(--t1);
    }

    .auth-pill-icon {
      width: 18px;
      height: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .auth-pill-icon svg {
      width: 18px;
      height: 18px;
    }

    .auth-pill.logged-in .auth-pill-icon {
      color: var(--t1);
    }

    .auth-pill-label {
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      white-space: nowrap;
      max-width: 92px;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .auth-snake-wrap {
      position: absolute;
      inset: 0;
      border-radius: inherit;
      padding: 1.5px;
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
      z-index: 1;
      overflow: hidden;
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    .auth-pill:not(.logged-in) .auth-snake-wrap {
      opacity: 1;
    }

    .auth-snake-wrap::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 250%;
      height: 250%;
      background: conic-gradient(from 0deg, transparent 70%, var(--accent3) 100%);
      transform: translate(-50%, -50%) rotate(0deg);
      animation: auth-snake-spin 5s linear infinite;
    }

    @keyframes auth-snake-spin {
      to {
        transform: translate(-50%, -50%) rotate(360deg);
      }
    }

    body.low-perf .auth-snake-wrap {
      display: none;
    }

    .auth-dropdown {
      position: fixed;
      top: 74px;
      right: 24px;
      z-index: 101;
      background: var(--surface);
      border: 1px solid var(--border-hi);
      border-radius: 14px;
      padding: 14px;
      min-width: 210px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      opacity: 0;
      transform: translateY(-8px) scale(0.96);
      pointer-events: none;
      transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    }

    .auth-dropdown.visible {
      opacity: 1;
      transform: translateY(0) scale(1);
      pointer-events: all;
    }

    .auth-dropdown-user {
      padding-bottom: 10px;
      margin-bottom: 2px;
      border-bottom: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      gap: 3px;
    }

    .auth-dropdown-name {
      font-family: 'DM Sans', sans-serif;
      font-size: 13px;
      font-weight: 700;
      color: var(--t1);
    }

    .auth-dropdown-email {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.06em;
      color: var(--t3);
      word-break: break-all;
    }

    .auth-dropdown-item {
      background: var(--btn-bg);
      border: 1px solid var(--border);
      border-radius: 9px;
      padding: 9px 12px;
      font-family: 'Syne Mono', monospace;
      font-size: 8.5px;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--t2);
      cursor: none;
      text-align: left;
      transition: background 0.2s, border-color 0.2s, color 0.2s;
    }

    .auth-dropdown-item:hover {
      background: var(--glass);
      border-color: var(--border-hi);
      color: var(--t1);
    }

    .auth-dropdown-item.danger {
      color: var(--accent3);
      border-color: rgba(255, 58, 92, 0.25);
      background: rgba(255, 58, 92, 0.08);
    }

    .auth-dropdown-item.danger:hover {
      background: rgba(255, 58, 92, 0.16);
    }

    /* ══════════════════ AUTH — login / signup modal ══════════════════ */
    .auth-overlay {
      position: fixed;
      inset: 0;
      z-index: 1000;
      background: rgba(0, 0, 0, 0.85);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }

    .auth-overlay.visible {
      opacity: 1;
      pointer-events: all;
    }

    .auth-modal {
      position: relative;
      background: var(--surface);
      border: 1px solid var(--border-hi);
      border-radius: 18px;
      padding: 32px 28px 26px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 14px;
      max-width: 380px;
      width: 90%;
      transform: scale(0.9) translateY(10px);
      transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }

    .auth-overlay.visible .auth-modal {
      transform: scale(1) translateY(0);
    }

    .auth-modal-close {
      position: absolute;
      top: 14px;
      right: 14px;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      background: var(--glass);
      border: 1px solid var(--border);
      color: var(--t2);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      cursor: none;
      transition: background 0.2s, color 0.2s;
    }

    .auth-modal-close:hover {
      background: var(--btn-bg);
      color: var(--t1);
    }

    .auth-modal-icon {
      width: 48px;
      height: 48px;
      border-radius: 12px;
      background: var(--glass);
      border: 1px solid var(--border-hi);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--accent3);
      transition: color 0.25s ease;
    }

    .auth-overlay.signup-mode .auth-modal-icon {
      color: var(--accent2);
    }

    .auth-modal-icon svg {
      width: 22px;
      height: 22px;
    }

    /* ── Lock icon: shackle pivots open and shut every ~2s ─────────────────
       transform-origin 5% 100% ≈ the left shackle foot where it meets the
       lock body — rotating around that point lifts the right side of the
       shackle to mimic an unlocked padlock.                                 */
    .auth-modal-icon svg path {
      transform-box: fill-box;
      transform-origin: 5% 100%;
    }
    .auth-overlay.visible .auth-modal-icon svg path {
      animation: lock-shackle-toggle 5s cubic-bezier(0.34, 1.56, 0.64, 1) infinite;
    }
    @keyframes lock-shackle-toggle {
      /* hold locked */
      0%,  2%  { transform: rotate(0deg); }
      /* snap open */
      8%       { transform: rotate(-30deg); }
      /* hold open ~2 s */
      46%      { transform: rotate(-30deg); }
      /* snap shut */
      52%      { transform: rotate(0deg); }
      /* hold shut ~2 s */
      100%     { transform: rotate(0deg); }
    }

    /* Icon border stays neutral — only the shackle moves */
    @keyframes lock-icon-glow {
      0%, 100% { border-color: var(--border-hi); box-shadow: none; }
    }

    .auth-modal-title {
      font-family: 'DM Sans', sans-serif;
      font-size: 18px;
      font-weight: 800;
      color: var(--t1);
      text-align: center;
      text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6), 0 0 20px rgba(0, 0, 0, 0.4);
    }

    .auth-modal-sub {
      font-family: 'Inter', sans-serif;
      font-size: 11.5px;
      color: var(--t2);
      text-align: center;
      margin-top: -8px;
    }

    .auth-tabs {
      display: flex;
      gap: 6px;
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 100px;
      padding: 4px;
      width: 100%;
    }

    .auth-tab {
      flex: 1;
      padding: 8px 0;
      border-radius: 100px;
      background: transparent;
      border: none;
      font-family: 'Syne Mono', monospace;
      font-size: 8.5px;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--t3);
      cursor: none;
      transition: background 0.2s, color 0.2s;
    }

    .auth-tab.active {
      background: var(--btn-bg);
      color: var(--t1);
    }

    .auth-form {
      width: 100%;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .auth-label {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: -4px;
    }

    .auth-input {
      width: 100%;
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 11px 14px;
      font-family: 'Inter', sans-serif;
      /* 16px is the iOS threshold — below it Safari auto-zooms on focus,
         which triggers a full viewport resize + GPU re-composite and causes
         the page to visibly jank when the keyboard opens on phone. */
      font-size: 16px;
      color: var(--t1);
      outline: none;
      transition: border-color 0.2s ease;
      touch-action: manipulation; /* blocks double-tap zoom on Android too */
    }

    .auth-input::placeholder {
      color: var(--t3);
    }

    .auth-input:focus {
      border-color: var(--border-hi);
    }

    .auth-error {
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.04em;
      color: var(--accent3);
      min-height: 12px;
      text-align: center;
    }

    .auth-username-preview {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.05em;
      color: var(--t3);
      margin-top: -4px;
    }

    .auth-username-preview b {
      color: var(--accent);
      font-weight: 600;
    }

    .auth-submit {
      width: 100%;
      padding: 12px 0;
      border-radius: 10px;
      background: var(--accent3);
      border: none;
      color: #0a0a0a;
      font-family: 'DM Sans', sans-serif;
      font-weight: 800;
      font-size: 12.5px;
      letter-spacing: 0.03em;
      cursor: none;
      transition: transform 0.15s ease, opacity 0.2s ease, background 0.25s ease;
    }

    .auth-overlay.signup-mode .auth-submit {
      background: var(--accent2);
    }

    .auth-submit:hover {
      transform: scale(1.02);
    }

    .auth-submit:disabled {
      opacity: 0.5;
    }

    /* ── Google sign-in button + "or" divider ── */
    .auth-google-btn {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 11px 0;
      border-radius: 10px;
      background: var(--glass);
      border: 1px solid var(--border-hi);
      color: var(--t1);
      font-family: 'Inter', sans-serif;
      font-weight: 600;
      font-size: 13px;
      cursor: none;
      transition: background 0.2s ease, transform 0.15s ease;
    }

    .auth-google-btn:hover {
      background: var(--btn-bg);
      transform: scale(1.01);
    }

    .auth-google-btn svg {
      width: 17px;
      height: 17px;
      flex-shrink: 0;
    }

    .auth-google-btn:disabled {
      opacity: 0.5;
    }

    .auth-divider {
      width: 100%;
      display: flex;
      align-items: center;
      gap: 10px;
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--t3);
    }

    .auth-divider::before,
    .auth-divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: var(--border);
    }

    .auth-modal-foot {
      width: 100%;
      text-align: center;
    }

    .auth-later {
      background: none;
      border: none;
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--t3);
      cursor: none;
      padding: 4px 0;
    }

    .auth-later:hover {
      color: var(--t2);
    }

    .auth-toast {
      position: fixed;
      bottom: 28px;
      left: 50%;
      transform: translateX(-50%) translateY(20px);
      background: var(--surface);
      border: 1px solid var(--border-hi);
      border-radius: 100px;
      padding: 10px 22px;
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--t1);
      z-index: 1100;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease, transform 0.3s ease;
      max-width: 86vw;
      text-align: center;
    }

    .auth-toast.visible {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

    .rc-warning-toast {
      position: fixed;
      top: 22px;
      right: 22px;
      display: flex;
      align-items: flex-start;
      gap: 12px;
      max-width: 340px;
      background: #3a1414;
      border: 1px solid rgba(255, 90, 90, 0.4);
      border-radius: 14px;
      padding: 14px 16px;
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.06),
        0 16px 40px rgba(0, 0, 0, 0.45);
      z-index: 1200;
      opacity: 0;
      pointer-events: none;
      transform: translateX(24px) translateY(-8px);
      transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    .rc-warning-toast.visible {
      opacity: 1;
      pointer-events: auto;
      transform: translateX(0) translateY(0);
    }

    .rc-warning-icon {
      color: rgb(255, 130, 110);
      flex-shrink: 0;
      margin-top: 1px;
    }

    .rc-warning-content {
      flex: 1;
      min-width: 0;
    }

    .rc-warning-title {
      font-family: 'DM Sans', sans-serif;
      font-weight: 800;
      font-size: 12px;
      letter-spacing: 0.04em;
      color: rgba(255, 235, 235, 0.95);
      margin-bottom: 4px;
    }

    .rc-warning-msg {
      font-family: 'Inter', sans-serif;
      font-size: 11.5px;
      line-height: 1.5;
      color: rgba(255, 220, 220, 0.7);
    }

    .rc-warning-close {
      background: none;
      border: none;
      color: rgba(255, 220, 220, 0.55);
      font-size: 18px;
      line-height: 1;
      cursor: pointer;
      padding: 0 0 0 4px;
      flex-shrink: 0;
      transition: color 0.2s ease;
    }

    .rc-warning-close:hover {
      color: rgba(255, 235, 235, 0.95);
    }

    @media (max-width: 480px) {
      .rc-warning-toast {
        left: 14px;
        right: 14px;
        top: 14px;
        max-width: none;
      }

      .dt-warning-toast {
        top: 96px;
      }
    }

    .dt-warning-toast {
      top: 104px;
    }

    @media (max-width: 480px) {
      .auth-pill-label {
        max-width: 60px;
      }

      .auth-dropdown {
        right: 14px;
        left: 14px;
        min-width: 0;
      }
    }

    .card-overlay {
      position: fixed;
      inset: 0;
      z-index: 1000;
      background: rgba(0, 0, 0, 0);
      backdrop-filter: blur(0px);
      -webkit-backdrop-filter: blur(0px);
      display: flex;
      align-items: center;
      justify-content: center;
      pointer-events: none;
      transition: background 0.38s ease, backdrop-filter 0.38s ease
    }

    .card-overlay.visible {
      background: rgba(0, 0, 0, 0.82);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      pointer-events: all
    }

    .card-modal {
      background: var(--surface);
      border: 1px solid var(--border-hi);
      border-radius: 16px;
      padding: 28px 28px 24px;
      display: flex;
      flex-direction: column;
      gap: 18px;
      max-width: 420px;
      width: 92%;
      opacity: 0;
      transform-origin: var(--genie-ox, 50%) var(--genie-oy, 100%);
      transform: scale(0.08, 0.04) translateY(var(--genie-ty, 40px));
      filter: blur(8px);
      transition:
        opacity 0.42s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.48s cubic-bezier(0.16, 1, 0.3, 1),
        filter 0.38s ease,
        border-radius 0.4s ease
    }

    .card-overlay.visible .card-modal {
      opacity: 1;
      transform: scale(1) translateY(0);
      filter: blur(0px)
    }

    .card-modal.closing {
      opacity: 0;
      transform: scale(0.06, 0.03) translateY(var(--genie-ty, 40px));
      filter: blur(6px);
      transition:
        opacity 0.3s ease,
        transform 0.34s cubic-bezier(0.4, 0, 1, 1),
        filter 0.28s ease
    }

    .card-modal-header {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      gap: 12px
    }

    .card-modal-title-wrap {
      display: flex;
      align-items: center;
      gap: 10px
    }

    .card-modal-icon {
      width: 36px;
      height: 36px;
      border-radius: 8px;
      background: var(--glass);
      border: 1px solid var(--border-hi);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0
    }

    .card-modal-icon svg {
      width: 18px;
      height: 18px;
      color: var(--card-modal-accent, var(--accent))
    }

    .card-modal-num {
      font-family: 'Syne Mono', monospace;
      font-size: 7px;
      letter-spacing: 0.35em;
      color: var(--t3);
      text-transform: uppercase;
      display: block;
      margin-bottom: 2px
    }

    .card-modal-name {
      font-family: 'DM Sans', sans-serif;
      font-size: 15px;
      font-weight: 800;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--t1)
    }

    .card-modal-close {
      background: var(--btn-bg);
      border: 1px solid var(--border);
      border-radius: 8px;
      width: 30px;
      height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--t3);
      cursor: none;
      flex-shrink: 0;
      transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.2s
    }

    .card-modal-close:hover {
      background: var(--glass);
      border-color: var(--border-hi);
      color: var(--t1);
      transform: scale(1.08);
    }

    .card-modal-close svg {
      width: 14px;
      height: 14px
    }

    .card-modal-desc {
      font-family: 'Inter', sans-serif;
      font-size: 13px;
      line-height: 1.8;
      color: var(--t2);
      border-top: 1px solid var(--border);
      padding-top: 16px
    }

    .card-modal-workflow {
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 18px 16px 16px;
      display: flex;
      flex-direction: column;
      gap: 12px
    }

    .card-modal-workflow-label {
      font-family: 'Syne Mono', monospace;
      font-size: 7px;
      letter-spacing: 0.4em;
      color: var(--t3);
      text-transform: uppercase;
    }

    .workflow-steps {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px 4px
    }

    .wf-step {
      display: flex;
      align-items: center;
      gap: 8px
    }

    .wf-node {
      background: var(--btn-bg);
      border: 1px solid var(--border-hi);
      border-radius: 6px;
      padding: 4px 9px;
      font-family: 'Syne Mono', monospace;
      font-size: 7.5px;
      letter-spacing: 0.12em;
      color: var(--t2);
      white-space: nowrap
    }

    .wf-arrow {
      font-size: 9px;
      color: var(--t3);
      line-height: 1;
      flex-shrink: 0
    }

    .card-modal-footer {
      display: flex;
      justify-content: flex-end
    }

    .card-modal-btn {
      background: var(--btn-bg);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 8px 22px;
      color: var(--t2);
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      cursor: none;
      transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.2s
    }

    .card-modal-btn:hover {
      background: var(--glass);
      border-color: var(--border-hi);
      color: var(--t1);
      transform: scale(1.04);
    }

    .page {
      position: relative;
      z-index: 1;
      width: 100%;
      max-width: 760px;
      padding: 104px 28px 32px;
      display: flex;
      flex-direction: column;
      align-items: center
    }

    .brand-link {
      display: block;
      text-decoration: none;
      margin-bottom: 12px;
      cursor: none
    }

    .brand {
      display: block;
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(100px, 22vw, 160px);
      font-weight: 900;
      letter-spacing: 0.12em;
      line-height: 0.85;
      background: linear-gradient(135deg, #ff3a5c 0%, #ff8c00 18%, #b8ff00 38%, #00d4ff 58%, #7b5ea7 78%, #ff3a5c 100%);
      background-size: 300% auto;
      background-clip: text;
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      transition: letter-spacing 0.4s ease, filter 0.4s ease;
      animation: fadeUp 0.8s 0.1s cubic-bezier(0.16, 1, 0.3, 1) both, gradient-shift 12s linear infinite
    }

    .brand-link:hover .brand {
      letter-spacing: 0.18em;
      filter: brightness(1.15) drop-shadow(0 0 32px rgba(184, 255, 0, 0.25))
    }

    @keyframes gradient-shift {
      0% {
        background-position: 0% center
      }

      100% {
        background-position: 300% center
      }
    }

    .fullform {
      font-family: 'Syne Mono', monospace;
      font-size: clamp(7px, 1.6vw, 9px);
      letter-spacing: 0.22em;
      color: var(--t3);
      text-transform: uppercase;
      margin-bottom: 28px;
      cursor: none;
      transition: color 0.3s ease, letter-spacing 0.3s ease;
      animation: fadeUp 0.8s 0.2s cubic-bezier(0.16, 1, 0.3, 1) both
    }

    .fullform:hover {
      color: var(--t2);
      letter-spacing: 0.3em
    }

    .founder {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      cursor: none;
      transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
      animation: fadeUp 0.8s 0.32s cubic-bezier(0.16, 1, 0.3, 1) both;
      margin-bottom: 32px
    }

    .founder:hover {
      transform: translateY(-2px);
    }

    .founder:hover .founder-name {
      color: var(--t1)
    }

    .founder-label {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.3em;
      color: var(--t3);
      text-transform: uppercase;
    }

    .founder-name {
      font-family: 'DM Sans', sans-serif;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 0.08em;
      color: var(--t2);
      text-transform: uppercase;
      transition: color 0.3s ease
    }

    .identity {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      margin-bottom: 20px
    }

    .site-tagline {
      font-family: 'DM Sans', sans-serif;
      font-weight: 700;
      font-size: 14px;
      color: var(--t2);
      letter-spacing: 0.05em;
      text-transform: uppercase;
      text-align: center;
      max-width: 480px;
      line-height: 1.7;
      margin-bottom: 44px;
      cursor: none;
      transition: color 0.3s ease;
      animation: fadeUp 0.8s 0.36s cubic-bezier(0.16, 1, 0.3, 1) both
    }

    .site-tagline:hover {
      color: var(--t1)
    }

    /* ── Tagline "stars in the sky" twinkle ──────────────────────────────
       Each letter is its own span with a randomized animation-delay and
       animation-duration (assigned in JS), so the whole line never pulses
       in unison — letters drift in and out of focus independently, like
       stars twinkling at night. ── */
    .tagline-word {
      display: inline-block;
      white-space: nowrap;
    }

    .tagline-letter {
      display: inline-block;
      opacity: 1;
      animation-name: taglineTwinkle;
      animation-timing-function: ease-in-out;
      animation-iteration-count: infinite;
    }

    @keyframes taglineTwinkle {

      0%,
      100% {
        opacity: 1;
      }

      50% {
        opacity: var(--twinkle-min, 0.25);
      }
    }

    /* prefers-reduced-motion is a hard accessibility override — always wins,
       regardless of perf mode, regardless of inline styles JS sets below. */
    @media (prefers-reduced-motion: reduce) {
      .tagline-letter {
        animation: none !important;
        opacity: 1 !important;
      }
    }

    .site-intro {
      font-family: 'Inter', sans-serif;
      font-size: 13px;
      font-weight: 400;
      color: var(--t2);
      max-width: 480px;
      text-align: center;
      line-height: 1.8;
      margin-bottom: 44px;
      cursor: none;
      transition: color 0.3s ease;
      animation: fadeUp 0.8s 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
      letter-spacing: 0.01em
    }

    .site-intro:hover {
      color: var(--t1)
    }

    .site-intro .greeting-wrap {
      display: inline-block
    }

    .site-intro .greeting {
      font-family: 'DM Sans', sans-serif;
      font-weight: 700;
      font-size: 14px;
      color: var(--t1);
      letter-spacing: 0.05em;
      text-transform: uppercase;
      display: inline-block;
      transition: transform 0.3s ease
    }

    .site-intro .hub-text {
      display: inline-block;
      transition: transform 0.3s ease
    }

    .site-intro .mword {
      display: inline-block;
      transform-origin: center bottom;
      transition: transform 0.18s cubic-bezier(0.34, 1.56, 0.64, 1), color 0.18s ease;
      will-change: transform
    }

    .site-intro b {
      font-weight: 600;
      color: var(--t1)
    }

    .nav-label {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.4em;
      color: var(--t3);
      text-transform: uppercase;
      margin-bottom: 20px;
      animation: fadeUp 0.8s 0.46s cubic-bezier(0.16, 1, 0.3, 1) both
    }

    .islands {
      display: flex;
      flex-wrap: nowrap;
      gap: 10px;
      justify-content: center;
      align-items: center;
      width: 100%;
      padding: 16px 0;
      animation: fadeUp 0.8s 0.52s cubic-bezier(0.16, 1, 0.3, 1) both
    }

    .island {
      position: relative;
      flex-shrink: 0;
      border-radius: 100px;
      text-decoration: none;
      color: var(--t1);
      overflow: visible;
      width: 46px;
      height: 46px;
      cursor: none;
      background: var(--border);
      --icon-color: var(--t2);
      --glow-color: transparent;
      --shadow-color: transparent;
      transition: width 0.52s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
      animation: float 6s ease-in-out infinite
    }

    .island-clip {
      position: absolute;
      inset: 0;
      border-radius: 100px;
      overflow: hidden
    }

    .island:nth-child(1) {
      animation-delay: 0.0s
    }

    .island:nth-child(2) {
      animation-delay: 0.6s
    }

    .island:nth-child(3) {
      animation-delay: 1.2s
    }

    .island:nth-child(4) {
      animation-delay: 1.8s
    }

    .island:nth-child(5) {
      animation-delay: 2.4s
    }

    .island:nth-child(6) {
      animation-delay: 3.0s
    }

    @keyframes float {

      0%,
      100% {
        transform: translateY(0);
      }

      50% {
        transform: translateY(-5px);
      }
    }

    .island-light {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 320px;
      height: 320px;
      background: conic-gradient(from 0deg, transparent 55%, var(--glow-color) 100%);
      animation: spin 2.8s linear infinite;
      opacity: 0;
      transition: opacity 0.35s ease;
      pointer-events: none;
      z-index: 0;
      transform: translate(-50%, -50%) rotate(0deg);
    }

    @keyframes spin {
      to {
        transform: translate(-50%, -50%) rotate(360deg);
      }
    }

    .island-inner {
      position: absolute;
      inset: 1px;
      background: var(--island-bg);
      border-radius: 100px;
      display: flex;
      align-items: center;
      padding: 0 12px;
      z-index: 1
    }

    .island-inner::before {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: inherit;
      background: linear-gradient(135deg, var(--island-sh) 0%, transparent 60%);
      pointer-events: none
    }

    .island:hover,
    .island.expanded,
    .island.auto-expand {
      width: 148px;
      animation: none !important;
      box-shadow: 0 16px 48px var(--shadow-color), 0 0 0 1px var(--glow-color-border, transparent);
      z-index: 10;
      opacity: 1 !important
    }

    .island:hover .island-light,
    .island.expanded .island-light,
    .island.auto-expand .island-light {
      opacity: 1
    }

    .islands:has(.island:hover, .island.expanded, .island.auto-expand) .island:not(:hover):not(.expanded):not(.auto-expand) {
      animation: none !important;
      opacity: 0.42;
      box-shadow: none
    }

    .c-lime:hover,
    .c-lime.expanded,
    .c-lime.auto-expand {
      --icon-color: #b8ff00;
      --glow-color: #b8ff00;
      --shadow-color: rgba(184, 255, 0, 0.22);
      --glow-color-border: rgba(184, 255, 0, 0.2)
    }

    .c-cyan:hover,
    .c-cyan.expanded,
    .c-cyan.auto-expand {
      --icon-color: #00d4ff;
      --glow-color: #00d4ff;
      --shadow-color: rgba(0, 212, 255, 0.22);
      --glow-color-border: rgba(0, 212, 255, 0.18)
    }

    .c-slate:hover,
    .c-slate.expanded,
    .c-slate.auto-expand {
      --icon-color: #b0b0b8;
      --glow-color: #b0b0b8;
      --shadow-color: rgba(176, 176, 184, 0.18);
      --glow-color-border: rgba(176, 176, 184, 0.14)
    }

    .c-indigo:hover,
    .c-indigo.expanded,
    .c-indigo.auto-expand {
      --icon-color: #5865F2;
      --glow-color: #5865F2;
      --shadow-color: rgba(88, 101, 242, 0.22);
      --glow-color-border: rgba(88, 101, 242, 0.18)
    }

    .c-github:hover,
    .c-github.expanded,
    .c-github.auto-expand {
      --icon-color: #f0f0f5;
      --glow-color: #f0f0f5;
      --shadow-color: rgba(240, 240, 245, 0.22);
      --glow-color-border: rgba(240, 240, 245, 0.18)
    }

    .c-yt:hover,
    .c-yt.expanded,
    .c-yt.auto-expand {
      --icon-color: #FF0000;
      --glow-color: #FF0000;
      --shadow-color: rgba(255, 0, 0, 0.22);
      --glow-color-border: rgba(255, 0, 0, 0.18)
    }

    .island-icon {
      flex-shrink: 0;
      width: 22px;
      height: 22px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      z-index: 2;
      color: var(--icon-color);
      transition: transform 0.3s ease, color 0.4s ease
    }

    .island-icon svg {
      width: 17px;
      height: 17px;
      display: block;
      transition: fill 0.4s ease, stroke 0.4s ease
    }

    .island:hover .island-icon,
    .island.expanded .island-icon,
    .island.auto-expand .island-icon {
      transform: scale(1.1);
    }

    .island-text {
      padding-left: 10px;
      overflow: hidden;
      white-space: nowrap;
      opacity: 0;
      transform: translateX(-8px);
      transition: opacity 0.18s ease, transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
      position: relative;
      z-index: 2
    }

    .island:hover .island-text,
    .island.expanded .island-text,
    .island.auto-expand .island-text {
      opacity: 1;
      transform: translateX(0);
      transition: opacity 0.28s 0.16s ease, transform 0.34s 0.16s cubic-bezier(0.16, 1, 0.3, 1)
    }

    .island-title {
      display: block;
      font-family: 'DM Sans', sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.04em;
      color: var(--t1);
      line-height: 1.2;
      text-transform: uppercase;
    }

    .island-hint {
      display: block;
      font-family: 'Syne Mono', monospace;
      font-size: 7px;
      letter-spacing: 0.1em;
      color: var(--t3);
      margin-top: 2px;
      text-transform: uppercase;
    }

    .site-link-card {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      display: flex;
      align-items: center;
      gap: 14px;
      width: min(420px, 80vw);
      margin: 4px auto 0;
      padding: 14px 16px;
      border-radius: 16px;
      background: linear-gradient(135deg, rgba(155, 93, 229, 0.05) 0%, var(--glass) 65%);
      border: 1px solid var(--border);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.06);
      text-decoration: none;
      cursor: none;
      transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
      animation: fadeUp 0.8s 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    .site-link-card:hover {
      transform: translateY(-3px);
      border-color: rgba(155, 93, 229, 0.4);
      background: linear-gradient(135deg, rgba(155, 93, 229, 0.12) 0%, var(--border) 70%);
      box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.1), 0 18px 44px rgba(155, 93, 229, 0.2);
    }

    /* rotating dual-tone glow ring — masked to a hairline border, hidden until hover */
    .site-link-card-snake {
      position: absolute;
      inset: 0;
      z-index: 0;
      border-radius: inherit;
      padding: 1.5px;
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
      overflow: hidden;
      opacity: 0;
      transition: opacity 0.4s ease;
    }

    .site-link-card-snake::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 250%;
      height: 250%;
      background: conic-gradient(from 0deg, transparent 58%, #00d4ff 76%, #9b5de5 92%, transparent 100%);
      transform: translate(-50%, -50%) rotate(0deg);
      animation: slc-spin 3s linear infinite;
    }

    @keyframes slc-spin {
      to {
        transform: translate(-50%, -50%) rotate(360deg);
      }
    }

    .site-link-card:hover .site-link-card-snake {
      opacity: 1;
    }

    /* one-shot light sheen that sweeps across on hover */
    .site-link-card::after {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 0;
      background: linear-gradient(115deg, transparent 32%, rgba(255, 255, 255, 0.1) 49%, rgba(255, 255, 255, 0.02) 53%, transparent 70%);
      transform: translateX(-130%);
      pointer-events: none;
    }

    .site-link-card:hover::after {
      transform: translateX(130%);
      transition: transform 0.85s cubic-bezier(0.22, 0.61, 0.36, 1);
    }

    .site-link-card-icon {
      position: relative;
      z-index: 1;
      flex-shrink: 0;
      width: 40px;
      height: 40px;
      border-radius: 11px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(155, 93, 229, 0.12);
      color: #9b5de5;
      transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.3s ease, box-shadow 0.3s ease;
    }

    .site-link-card:hover .site-link-card-icon {
      transform: scale(1.1);
      background: rgba(155, 93, 229, 0.2);
      box-shadow: 0 0 16px rgba(155, 93, 229, 0.32);
      animation: slc-icon-spin 0.65s cubic-bezier(0.4, 0.1, 0.25, 1) 1;
    }

    @keyframes slc-icon-spin {
      from {
        transform: scale(1.1) rotate(0deg);
      }

      to {
        transform: scale(1.1) rotate(360deg);
      }
    }

    .site-link-card-icon svg {
      width: 19px;
      height: 19px;
      display: block;
    }

    .site-link-card-text {
      position: relative;
      z-index: 1;
      flex: 1;
      min-width: 0;
      text-align: center;
    }

    .site-link-card-title {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      font-family: 'DM Sans', sans-serif;
      font-size: 12.5px;
      font-weight: 700;
      letter-spacing: 0.02em;
      color: var(--t3);
      text-transform: uppercase;
      transition: color 0.35s ease, letter-spacing 0.35s ease;
    }

    .site-link-card:hover .site-link-card-title {
      color: var(--t1);
      letter-spacing: 0.045em;
    }

    .site-link-card-badge {
      font-family: 'Syne Mono', monospace;
      font-size: 7.5px;
      letter-spacing: 0.09em;
      text-transform: uppercase;
      color: rgba(155, 93, 229, 0.55);
      border: 1px solid rgba(155, 93, 229, 0.18);
      border-radius: 100px;
      padding: 2px 7px;
      white-space: nowrap;
      transition: color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
    }

    .site-link-card:hover .site-link-card-badge {
      color: #9b5de5;
      border-color: rgba(155, 93, 229, 0.5);
      box-shadow: 0 0 12px rgba(155, 93, 229, 0.3);
    }

    .site-link-card-sub {
      display: block;
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.03em;
      color: var(--t3);
      margin-top: 4px;
      text-align: center;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      transition: color 0.35s ease;
    }

    .site-link-card:hover .site-link-card-sub {
      color: var(--t2);
    }

    .site-link-card-arrow {
      position: relative;
      z-index: 1;
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--border);
      color: var(--t2);
      transition: transform 0.3s ease, border-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
    }

    .site-link-card:hover .site-link-card-arrow {
      transform: translate(2px, -2px);
      border-color: rgba(155, 93, 229, 0.45);
      color: #9b5de5;
      box-shadow: 0 0 12px rgba(155, 93, 229, 0.25);
    }

    @media (max-width: 520px) {
      .site-link-card-sub {
        white-space: normal;
      }
    }

    body.low-perf .site-link-card-snake,
    body.low-perf .site-link-card::after {
      display: none !important;
    }

    @media (prefers-reduced-motion: reduce) {
      .site-link-card-snake::before {
        animation: none !important;
      }

      .site-link-card:hover::after {
        transition: none !important;
      }
    }

    .ai-section {
      width: 100%;
      max-width: 560px;
      margin: 8px 0 32px;
      animation: fadeUp 0.8s 0.58s cubic-bezier(0.16, 1, 0.3, 1) both
    }

    .ai-trigger-btn {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 13px 20px;
      cursor: none;
      color: var(--t2);
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
      backdrop-filter: blur(12px)
    }

    .ai-trigger-btn:hover {
      background: var(--btn-bg);
      border-color: var(--border-hi);
      color: var(--t1);
      transform: translateY(-2px);
    }

    .ai-trigger-btn:active {
      transform: scale(0.98);
    }

    .ai-spark {
      width: 16px;
      height: 16px;
      flex-shrink: 0;
      color: var(--t1);
      transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)
    }

    .ai-trigger-btn:hover .ai-spark {
      transform: rotate(20deg) scale(1.2);
    }

    .ai-box {
      margin-top: 10px;
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 14px;
      overflow: hidden;
      backdrop-filter: blur(12px);
      display: none;
      animation: expandDown 0.4s cubic-bezier(0.16, 1, 0.3, 1) both
    }

    .ai-box.visible {
      display: block
    }

    @keyframes expandDown {
      from {
        opacity: 0;
        transform: translateY(-8px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .ai-box-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 16px;
      border-bottom: 1px solid var(--border)
    }

    .ai-box-title {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.3em;
      color: var(--t3);
      text-transform: uppercase;
    }

    .ai-model-tag {
      font-family: 'Syne Mono', monospace;
      font-size: 7px;
      letter-spacing: 0.2em;
      color: var(--accent);
      text-transform: uppercase;
      opacity: 0.8
    }

    .ai-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      padding: 14px 16px;
      border-bottom: 1px solid var(--border);
      justify-content: center;
    }

    .ai-chip {
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 100px;
      padding: 5px 12px;
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.15em;
      color: var(--t2);
      cursor: none;
      text-transform: uppercase;
      transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1)
    }

    .ai-chip:hover {
      background: var(--btn-bg);
      border-color: var(--border-hi);
      color: var(--t1);
      transform: translateY(-2px);
    }

    .ai-chip.active {
      background: rgba(184, 255, 0, 0.08);
      border-color: rgba(184, 255, 0, 0.3);
      color: var(--accent)
    }

    .ai-output {
      padding: 20px 20px 24px;
      min-height: 100px;
      display: flex;
      align-items: flex-start
    }

    .ai-output-text {
      font-family: 'Inter', sans-serif;
      font-size: 14.5px;
      line-height: 1.85;
      color: var(--t2);
      flex: 1;
      letter-spacing: 0.01em
    }

    .ai-output-text.loading {
      display: flex;
      align-items: center;
      gap: 8px;
      color: var(--t3);
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
    }

    .ai-dots span {
      display: inline-block;
      width: 4px;
      height: 4px;
      background: var(--accent);
      border-radius: 50%;
      animation: dot-bounce 1.2s ease infinite
    }

    .ai-dots span:nth-child(2) {
      animation-delay: 0.2s
    }

    .ai-dots span:nth-child(3) {
      animation-delay: 0.4s
    }

    @keyframes dot-bounce {

      0%,
      100% {
        transform: translateY(0);
        opacity: 0.4
      }

      50% {
        transform: translateY(-5px);
        opacity: 1
      }
    }

    .expertise-section,
    .expertise-section-2 {
      width: 100%;
      margin-top: 52px;
      padding: 0 28px;
      box-sizing: border-box;
      position: relative;
    }

    @media (min-width: 820px) {

      .expertise-section,
      .expertise-section-2 {
        padding: 0 48px;
      }
    }

    @media (min-width: 1200px) {

      .expertise-section,
      .expertise-section-2 {
        padding: 0 80px;
      }
    }

    @media (min-width: 1600px) {

      .expertise-section,
      .expertise-section-2 {
        padding: 0 120px;
      }
    }

    .exp-header {
      text-align: center;
      margin-bottom: 28px;
      width: 100%;
      position: relative;
      z-index: 1;
    }

    .expertise-section::before,
    .expertise-section-2::before {
      content: '';
      position: absolute;
      inset: -8% -4%;
      pointer-events: none;
      z-index: 0;
      background: none;
      animation: blob-drift-1 22s ease-in-out infinite alternate;
    }

    @keyframes blob-drift-1 {
      0% {
        opacity: 0.70;
        transform: scale(1.00);
      }

      30% {
        opacity: 0.90;
        transform: scale(1.02);
      }

      65% {
        opacity: 0.80;
        transform: scale(0.99);
      }

      100% {
        opacity: 1.00;
        transform: scale(1.01);
      }
    }

    .exp-eyebrow {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.45em;
      color: var(--t3);
      text-transform: uppercase;
      margin-bottom: 12px;
      text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
    }

    .exp-title-wrap {
      display: inline-block;
      position: relative;
      padding-bottom: 14px;
      margin-bottom: 9px;
    }

    .exp-title {
      font-family: 'DM Sans', sans-serif;
      font-size: clamp(17px, 3.2vw, 22px);
      font-weight: 800;
      letter-spacing: 0.07em;
      text-transform: uppercase;
      color: var(--t1);
      line-height: 1.15;
      display: block;
      text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6), 0 0 20px rgba(0, 0, 0, 0.4);
    }

    .rainbow-underline {
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      height: 3px;
      width: 0%;
      border-radius: 2px;
      background: linear-gradient(90deg, #ff3a5c 0%, #ff8c00 16.66%, #ffe600 33.33%, #b8ff00 50%, #00d4ff 66.66%, #7b5ea7 83.33%, #ff3a5c 100%);
      background-size: 200% auto;
      animation: rainbow-bg-shift 3s linear infinite;
    }

    @keyframes rainbow-bg-shift {
      0% {
        background-position: 0% center;
      }

      100% {
        background-position: 200% center;
      }
    }

    .exp-sub {
      font-family: 'Inter', sans-serif;
      font-size: 12px;
      color: var(--t3);
      line-height: 1.65;
      max-width: 380px;
      margin: 0 auto;
    }

    .exp-robot-wrap {
      position: relative;
      width: 110px;
      height: 110px;
      margin: 6px auto 16px;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 1;
    }

    .exp-robot {
      position: relative;
      width: 100%;
      height: 100%;
      object-fit: contain;
      z-index: 1;
      display: block;
      animation: robot-float 5s ease-in-out infinite;
      filter: drop-shadow(0 8px 22px rgba(0, 0, 0, 0.45));
    }

    @keyframes robot-float {

      0%,
      100% {
        transform: translateY(0);
      }

      50% {
        transform: translateY(-6px);
      }
    }

    @media (min-width: 820px) {
      .exp-robot-wrap {
        width: 140px;
        height: 140px;
      }
    }

    @media (min-width: 1200px) {
      .exp-robot-wrap {
        width: 160px;
        height: 160px;
      }
    }

    .scroll-hidden {
      opacity: 0.001;
      transform: translateY(60px);
      will-change: opacity, transform;
      transition: opacity 0.6s ease-out, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    }

    .scroll-shown {
      opacity: 1;
      transform: translateY(0);
    }

    .glass-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      grid-auto-flow: dense;
      gap: 14px;
      position: relative;
      z-index: 1;
      width: 100%;
    }

    .sz-1 {
      grid-column: span 1;
      grid-row: span 1;
    }

    .sz-2 {
      grid-column: span 2;
      grid-row: span 1;
    }

    .sz-3 {
      grid-column: span 1;
      grid-row: span 2;
    }

    .sz-4 {
      grid-column: span 2;
      grid-row: span 2;
    }

    @media (max-width: 820px) {
      .glass-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    @media (max-width: 640px) {
      .glass-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
      }

      .sz-1 {
        grid-column: span 1;
        grid-row: span 1;
      }

      .sz-2 {
        grid-column: span 2;
        grid-row: span 1;
      }

      .sz-3 {
        grid-column: span 1;
        grid-row: span 2;
      }

      .sz-4 {
        grid-column: span 2;
        grid-row: span 2;
      }
    }

    @media (max-width: 480px) {
      .glass-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
      }
    }

    .glass-card {
      --mx: 50%;
      --my: 50%;
      --card-accent: #b8ff00;
      isolation: isolate;
      min-height: 160px;
      position: relative;
      border-radius: 18px;
      padding: 16px 18px 18px;
      overflow: hidden;
      cursor: none;
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.0) 100%);
      backdrop-filter: blur(30px) saturate(150%);
      -webkit-backdrop-filter: blur(30px) saturate(150%);
      border: 1px solid rgba(255, 255, 255, 0.1);
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.15),
        inset 0 -1px 0 rgba(255, 255, 255, 0.02),
        0 8px 32px rgba(0, 0, 0, 0.3);
      transition: transform 0.38s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.38s ease, border-color 0.38s ease, background 0.38s ease;
      transition-property: transform, box-shadow, border-color, background, grid-column, grid-row;
    }

    .glass-card:hover {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.02) 100%);
      border-color: rgba(255, 255, 255, 0.2);
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.25),
        0 12px 40px rgba(0, 0, 0, 0.4);
    }

    [data-theme="light"] .glass-card {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.2) 100%);
      border: 1px solid rgba(255, 255, 255, 0.6);
      box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.8), 0 8px 32px rgba(0, 0, 0, 0.05);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
    }

    [data-theme="light"] .glass-card:hover {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.3) 100%);
      border-color: rgba(255, 255, 255, 0.8);
    }

    .gc-snake-wrap {
      position: absolute;
      inset: 0;
      border-radius: inherit;
      padding: 1.5px;
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
      z-index: 10;
      opacity: 0;
      transition: opacity 0.4s ease;
      overflow: hidden;
    }

    .gc-snake-wrap::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 250%;
      height: 250%;
      background: conic-gradient(from 0deg, transparent 70%, var(--card-accent) 100%);
      transform: translate(-50%, -50%) rotate(0deg);
      animation: snake-spin 2.5s linear infinite;
    }

    @keyframes snake-spin {
      0% {
        transform: translate(-50%, -50%) rotate(0deg);
      }

      100% {
        transform: translate(-50%, -50%) rotate(360deg);
      }
    }

    .glass-card:hover .gc-snake-wrap {
      opacity: 1;
    }

    /* TTS reading: snake border active (no glow, just the border sweep) */
    .glass-card.tts-reading .gc-snake-wrap {
      opacity: 1;
    }
    .glass-card.tts-reading .gc-snake-wrap::before {
      animation-duration: 1.6s; /* slightly faster while being read */
    }

    .mac-controls {
      display: flex;
      gap: 6px;
      margin-bottom: 12px;
      opacity: 0.88;
      transition: opacity 0.25s ease;
    }

    .mac-controls:hover {
      opacity: 1;
    }

    .mac-btn {
      width: 13px;
      height: 13px;
      border-radius: 50%;
      cursor: pointer;
      transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), border-color 0.3s ease, box-shadow 0.3s ease;
      position: relative;
      border: 1.2px solid rgba(255, 255, 255, 0.22);
      box-sizing: border-box;
      overflow: hidden;
    }

    .mac-btn:hover {
      transform: scale(1.3);
    }

    [data-theme="light"] .mac-btn {
      border-color: rgba(0, 0, 0, 0.75);
    }

    .mac-btn::before,
    .mac-btn::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      opacity: 1;
      transition: opacity 0.15s ease;
      background: rgba(0, 0, 0, 0.6);
    }

    /* close: bold × */
    .mac-btn.close::before,
    .mac-btn.close::after {
      width: 7px;
      height: 1.6px;
      border-radius: 1px;
      transform-origin: center;
    }

    .mac-btn.close::before {
      transform: translate(-50%, -50%) rotate(45deg);
    }

    .mac-btn.close::after {
      transform: translate(-50%, -50%) rotate(-45deg);
    }

    /* minimize: bold − */
    .mac-btn.min::before {
      width: 7px;
      height: 1.6px;
      border-radius: 1px;
      transform: translate(-50%, -50%);
    }

    .mac-btn.min::after {
      content: none;
    }

    /* maximize: solid diagonal triangle */
    .mac-btn.max::before {
      width: 6px;
      height: 6px;
      background: rgba(0, 0, 0, 0.6);
      clip-path: polygon(0% 100%, 100% 100%, 100% 0%);
      transform: translate(-50%, -50%) rotate(45deg);
    }

    .mac-btn.max::after {
      content: none;
    }

    .mac-btn.close {
      background-color: #ff3b30;
      box-shadow: 0 0 7px rgba(255, 59, 48, 0.85);
    }

    .mac-btn.min {
      background-color: #ffaa00;
      box-shadow: 0 0 7px rgba(255, 170, 0, 0.85);
    }

    .mac-btn.max {
      background-color: #1ee85a;
      box-shadow: 0 0 7px rgba(30, 232, 90, 0.85);
    }

    [data-theme="light"] .mac-btn.close {
      box-shadow: 0 0 6px rgba(255, 59, 48, 0.4);
    }

    [data-theme="light"] .mac-btn.min {
      box-shadow: 0 0 6px rgba(255, 170, 0, 0.4);
    }

    [data-theme="light"] .mac-btn.max {
      box-shadow: 0 0 6px rgba(30, 232, 90, 0.4);
    }

    .gc-content {
      position: relative;
      z-index: 1;
      height: 100%;
      display: flex;
      flex-direction: column;
      transform: translateY(0);
      transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    .glass-card:hover .gc-content {
      transform: translateY(-4px);
    }

    .gc-top {
      position: absolute;
      top: 16px;
      right: 18px;
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 0;
    }

    .gc-num {
      font-family: 'Syne Mono', monospace;
      font-size: 7.5px;
      letter-spacing: 0.28em;
      color: var(--t3);
      text-transform: uppercase;
      line-height: 1;
    }

    .gc-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--border-hi);
      box-shadow: none;
      flex-shrink: 0;
      margin-top: 1px;
      transition: background 0.4s ease, box-shadow 0.4s ease;
    }

    .glass-card:hover .gc-dot {
      background: var(--card-accent);
      box-shadow: 0 0 10px var(--card-accent);
    }

    .gc-icon-wrap {
      width: 38px;
      height: 38px;
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.042);
      border: 1px solid rgba(255, 255, 255, 0.07);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--card-accent);
      margin-bottom: 13px;
      flex-shrink: 0;
      transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
    }

    [data-theme="light"] .gc-icon-wrap {
      background: rgba(0, 0, 0, 0.03);
      border-color: rgba(0, 0, 0, 0.07);
    }

    .glass-card:hover .gc-icon-wrap {
      transform: scale(1.1) rotate(0deg);
      background: rgba(255, 255, 255, 0.08);
      box-shadow: 0 0 18px rgba(255, 255, 255, 0.05);
      animation: gc-icon-spin 0.65s cubic-bezier(0.4, 0.1, 0.25, 1) 1;
    }

    @keyframes gc-icon-spin {
      from {
        transform: scale(1.1) rotate(0deg);
      }

      to {
        transform: scale(1.1) rotate(360deg);
      }
    }

    .gc-icon-wrap svg {
      width: 17px;
      height: 17px;
      display: block;
    }

    .gc-title {
      font-family: 'DM Sans', sans-serif;
      font-size: 12px;
      font-weight: 800;
      letter-spacing: 0.065em;
      text-transform: uppercase;
      line-height: 1.25;
      margin-bottom: 7px;
      color: var(--t1);
      text-shadow: none;
    }

    .gc-title-glow {
      position: absolute;
      inset: 0;
      border-radius: inherit;
      pointer-events: none;
      z-index: 0;
      background: var(--card-accent);
      opacity: 0;
      transition: opacity 0.5s ease;
    }

    .glass-card:hover .gc-title-glow {
      opacity: 0.02;
    }

    .gc-desc {
      font-family: 'Inter', sans-serif;
      font-size: 11px;
      color: var(--t2);
      line-height: 1.72;
      font-weight: 400;
      flex: 1;
      text-shadow: none;
    }

    .glass-card.sz-2 .gc-title,
    .glass-card.sz-4 .gc-title {
      font-size: 13.5px;
    }

    .glass-card.sz-2 .gc-icon-wrap,
    .glass-card.sz-4 .gc-icon-wrap {
      width: 44px;
      height: 44px;
      border-radius: 14px;
    }

    .glass-card.sz-2 .gc-icon-wrap svg,
    .glass-card.sz-4 .gc-icon-wrap svg {
      width: 20px;
      height: 20px;
    }

    .gc-lime {
      --card-accent: #b8ff00;
    }

    .gc-cyan {
      --card-accent: #00d4ff;
    }

    .gc-violet {
      --card-accent: #c084fc;
    }

    .gc-amber {
      --card-accent: #fbbf24;
    }

    .gc-rose {
      --card-accent: #fb7185;
    }

    .gc-emerald {
      --card-accent: #34d399;
    }

    .gc-indigo {
      --card-accent: #818cf8;
    }

    .gc-slate {
      --card-accent: #94a3b8;
    }

    .gc-orange {
      --card-accent: #fb923c;
    }

    .gc-teal {
      --card-accent: #2dd4bf;
    }

    .gc-fuchsia {
      --card-accent: #e879f9;
    }

    .gc-gold {
      --card-accent: #f59e0b;
    }

    .gc-sky {
      --card-accent: #38bdf8;
    }

    /* ══════════════════════════════════════════════════
       ── NEW: AI MODELS WE WORK WITH GRID ──
    ══════════════════════════════════════════════════ */
    .ai-models-wrapper {
      width: 100%;
      padding: 60px 28px 0;
      box-sizing: border-box;
      position: relative;
      z-index: 1;
    }

    @media (min-width: 820px) {
      .ai-models-wrapper {
        padding: 60px 48px 0;
      }
    }

    @media (min-width: 1200px) {
      .ai-models-wrapper {
        padding: 60px 80px 0;
      }
    }

    @media (min-width: 1600px) {
      .ai-models-wrapper {
        padding: 60px 120px 0;
      }
    }

    .ai-models-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
      gap: 16px;
      width: 100%;
      justify-content: center;
      margin-top: 40px;
    }

    .model-card {
      position: relative;
      background: var(--glass);
      border: 1px solid transparent;
      border-radius: 12px;
      padding: 20px 14px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 16px;
      cursor: none;
      transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.35s ease;
      --m-color: var(--t2);
      overflow: hidden;
    }

    /* HUD Corner Brackets */
    .model-card::before,
    .model-card::after {
      content: '';
      position: absolute;
      width: 10px;
      height: 10px;
      border: 1px solid var(--border-hi);
      transition: border-color 0.35s ease, width 0.35s ease, height 0.35s ease;
      pointer-events: none;
    }

    .model-card::before {
      top: 6px;
      left: 6px;
      border-right: none;
      border-bottom: none;
      border-top-left-radius: 4px;
    }

    .model-card::after {
      bottom: 6px;
      right: 6px;
      border-left: none;
      border-top: none;
      border-bottom-right-radius: 4px;
    }

    .model-card-inner-brackets {
      position: absolute;
      inset: 0;
      pointer-events: none;
    }

    .model-card-inner-brackets::before,
    .model-card-inner-brackets::after {
      content: '';
      position: absolute;
      width: 10px;
      height: 10px;
      border: 1px solid var(--border-hi);
      transition: border-color 0.35s ease, width 0.35s ease, height 0.35s ease;
    }

    .model-card-inner-brackets::before {
      top: 6px;
      right: 6px;
      border-left: none;
      border-bottom: none;
      border-top-right-radius: 4px;
    }

    .model-card-inner-brackets::after {
      bottom: 6px;
      left: 6px;
      border-right: none;
      border-top: none;
      border-bottom-left-radius: 4px;
    }

    .model-top-bar {
      width: 100%;
      display: flex;
      justify-content: center;
      gap: 12px;
      align-items: center;
      position: absolute;
      top: 14px;
      padding: 0 16px;
    }

    .model-name {
      font-family: 'Syne Mono', monospace;
      font-size: 7px;
      letter-spacing: 0.2em;
      color: var(--t3);
      text-transform: uppercase;
      transition: color 0.35s ease;
    }

    .model-status {
      display: flex;
      align-items: center;
      gap: 4px;
      font-family: 'Syne Mono', monospace;
      font-size: 6px;
      letter-spacing: 0.2em;
      color: var(--t3);
      text-transform: uppercase;
      transition: color 0.35s ease;
    }

    .model-status-dot {
      width: 4px;
      height: 4px;
      background: var(--t3);
      border-radius: 50%;
      transition: background 0.35s ease, box-shadow 0.35s ease;
    }

    .model-brand {
      font-family: 'Syne Mono', monospace;
      font-size: 7px;
      letter-spacing: 0.25em;
      color: var(--t3);
      text-transform: uppercase;
      position: absolute;
      bottom: 14px;
      left: 16px;
      transition: color 0.35s ease;
    }

    .model-svg-wrapper {
      width: 52px;
      height: 52px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: color-mix(in srgb, var(--m-color) 45%, var(--t3));
      transition: color 0.4s ease, transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), filter 0.4s ease;
      margin-top: 10px;
    }

    .model-svg-wrapper svg {
      width: 100%;
      height: 100%;
      display: block;
    }

    /* Hover States for AI Grid */
    .model-card:hover {
      background: rgba(255, 255, 255, 0.04);
      transform: translateY(-4px);
    }

    [data-theme="light"] .model-card:hover {
      background: rgba(0, 0, 0, 0.04);
    }

    .model-card:hover::before,
    .model-card:hover::after,
    .model-card:hover .model-card-inner-brackets::before,
    .model-card:hover .model-card-inner-brackets::after {
      border-color: color-mix(in srgb, var(--m-color) 60%, transparent);
      width: 14px;
      height: 14px;
    }

    .model-card:hover .model-name,
    .model-card:hover .model-brand {
      color: var(--t1);
    }

    .model-card:hover .model-status {
      color: var(--m-color);
    }

    .model-card:hover .model-status-dot {
      background: var(--m-color);
      box-shadow: 0 0 6px var(--m-color);
    }

    .model-card:hover .model-svg-wrapper {
      color: var(--m-color);
      transform: scale(1.25);
    }

    .model-card:hover .model-svg-wrapper svg {}

    /* Individual AI Brand Colors */
    .mc-claude {
      --m-color: #d97757;
    }

    /* Anthropic Peach */
    .mc-gpt {
      --m-color: #10a37f;
    }

    /* OpenAI Green */
    .mc-deepseek {
      --m-color: #4d6bfe;
    }

    /* DeepSeek Blue */
    .mc-gemini {
      --m-color: #1a73e8;
    }

    /* Google Blue */
    .mc-mistral {
      --m-color: #f97316;
    }

    /* Mistral Orange */
    .mc-llama {
      --m-color: #0668E1;
    }

    /* Meta Blue */
    .mc-qwen {
      --m-color: #6366f1;
    }

    /* Alibaba Purple */

    .mc-copilot {
      --m-color: #0078d4;
    }

    /* Microsoft Copilot Blue */

    .model-svg-wrapper img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      border-radius: 8px;
      display: block;
      mix-blend-mode: screen;
      filter: brightness(0.72) saturate(0.9);
      transition: filter 0.3s ease, transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
      animation: icon-ambient 5s ease-in-out infinite;
    }

    @keyframes icon-ambient {

      0%,
      100% {
        filter: brightness(0.72) saturate(0.9);
      }

      50% {
        filter: brightness(0.88) saturate(0.9);
      }
    }

    .model-card:hover .model-svg-wrapper img {
      filter: brightness(1.15) saturate(1.05);
      animation: none;
    }


    .exp-divider {
      width: 56px;
      height: 2px;
      background: linear-gradient(90deg, transparent, var(--border-hi), transparent);
      margin: 0 auto 52px;
      position: relative;
      z-index: 1;
    }

    .exp-header-2 {
      text-align: center;
      margin-bottom: 28px;
      padding-top: 0;
      position: relative;
      z-index: 1;
    }

    @media (max-width: 380px) {

      .expertise-section,
      .expertise-section-2,
      .ai-models-wrapper {
        padding-left: 14px;
        padding-right: 14px;
      }

      .glass-card {
        min-height: 130px;
        padding: 14px;
      }

      .ai-models-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    .footer {
      margin-top: 56px;
      margin-bottom: 48px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
      animation: fadeUp 0.8s 0.76s cubic-bezier(0.16, 1, 0.3, 1) both;
      width: 100%;
    }

    .footer-line {
      width: 32px;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--border-hi), transparent)
    }

    .footer-text {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.3em;
      color: var(--t3);
      text-transform: uppercase;
      cursor: none;
      transition: color 0.3s ease, letter-spacing 0.3s ease;
      text-align: center;
      line-height: 1.8;
      padding: 0 20px;
      max-width: 90vw;
    }

    .back-to-top {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      width: min(420px, 80vw);
      padding: 13px 0;
      border-radius: 14px;
      background: var(--glass);
      border: 1px solid var(--border);
      color: var(--t3);
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.35em;
      text-transform: uppercase;
      cursor: none;
      text-decoration: none;
      margin-top: 4px;
      transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.25s ease;
    }

    .back-to-top svg {
      width: 13px;
      height: 13px;
      transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    .back-to-top:hover {
      background: var(--btn-bg);
      border-color: var(--border-hi);
      color: var(--t1);
      transform: translateY(-2px);
      box-shadow: 0 6px 24px rgba(184, 255, 0, 0.07);
    }

    .back-to-top:hover svg {
      transform: translateY(-3px);
    }

    .footer-dock {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      flex-wrap: wrap;
      margin: 16px 0;
    }

    .footer-dot {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background: var(--glass);
      border: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--t3);
      text-decoration: none;
      cursor: none;
      transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
      flex-shrink: 0;
      position: relative;
    }

    .footer-dot svg {
      width: 15px;
      height: 15px;
      flex-shrink: 0;
    }

    .footer-dot:hover {
      transform: scale(1.18) translateY(-3px);
      background: var(--btn-bg);
      border-color: var(--dot-color);
      color: var(--dot-color);
      box-shadow: 0 0 14px color-mix(in srgb, var(--dot-color) 35%, transparent);
    }

    .footer-dot::after {
      content: attr(data-tip);
      position: absolute;
      bottom: calc(100% + 7px);
      left: 50%;
      transform: translateX(-50%) translateY(4px);
      background: var(--surface);
      border: 1px solid var(--border-hi);
      border-radius: 6px;
      padding: 3px 8px;
      font-family: 'Syne Mono', monospace;
      font-size: 7px;
      letter-spacing: 0.2em;
      color: var(--t2);
      text-transform: uppercase;
      white-space: nowrap;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.15s ease, transform 0.15s ease;
    }

    .footer-dot:hover::after {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

    .footer-dot.c-lime {
      --dot-color: #b8ff00;
    }

    .footer-dot.c-cyan {
      --dot-color: #00d4ff;
    }

    .footer-dot.c-slate {
      --dot-color: #f97316;
    }

    .footer-dot.c-indigo {
      --dot-color: #5865f2;
    }

    .footer-dot.c-gh {
      --dot-color: #a855f7;
    }

    .footer-dot.c-yt {
      --dot-color: #ff0000;
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(20px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .gc-fx-wrapper {
      position: absolute;
      inset: 0;
      border-radius: inherit;
      pointer-events: none;
      opacity: 0;
      transition: opacity 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
      z-index: 3;
    }

    .glass-card:hover .gc-fx-wrapper {
      opacity: 1;
    }

    .gc-reflection {
      position: absolute;
      inset: -10%;
      border-radius: inherit;
      pointer-events: none;
      mix-blend-mode: screen;
      background: radial-gradient(ellipse 70% 60% at var(--gx, 40%) var(--gy, 55%),
          color-mix(in srgb, var(--card-accent) 18%, transparent) 0%,
          color-mix(in srgb, var(--card-accent) 7%, transparent) 50%,
          transparent 100%);
      animation: gc-aurora var(--ref-dur, 13s) ease-in-out infinite;
      animation-delay: var(--ref-delay, 0s);
    }

    @keyframes gc-aurora {
      0% {
        opacity: 0.02;
        --gx: 30%;
        --gy: 60%;
      }

      12% {
        opacity: 0.5;
        --gx: 42%;
        --gy: 48%;
      }

      28% {
        opacity: 0.8;
        --gx: 58%;
        --gy: 38%;
      }

      45% {
        opacity: 1.0;
        --gx: 65%;
        --gy: 55%;
      }

      62% {
        opacity: 0.7;
        --gx: 50%;
        --gy: 68%;
      }

      78% {
        opacity: 0.4;
        --gx: 35%;
        --gy: 52%;
      }

      90% {
        opacity: 0.1;
        --gx: 28%;
        --gy: 44%;
      }

      100% {
        opacity: 0.02;
        --gx: 30%;
        --gy: 60%;
      }
    }

    @property --gx {
      syntax: "<percentage>";
      inherits: false;
      initial-value: 40%;
    }

    @property --gy {
      syntax: "<percentage>";
      inherits: false;
      initial-value: 55%;
    }

    [data-theme="light"] .gc-reflection {
      mix-blend-mode: overlay;
      background: radial-gradient(ellipse 70% 60% at var(--gx, 40%) var(--gy, 55%),
          color-mix(in srgb, var(--card-accent) 28%, transparent) 0%,
          color-mix(in srgb, var(--card-accent) 10%, transparent) 55%,
          transparent 100%);
    }

    .gc-grain {
      position: absolute;
      inset: 0;
      border-radius: inherit;
      pointer-events: none;
      mix-blend-mode: screen;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
      background-size: 175px 175px;
      animation: gc-grain-breathe var(--grain-dur, 6s) ease-in-out infinite;
      animation-delay: var(--grain-delay, 0s);
    }

    @keyframes gc-grain-breathe {
      0% {
        opacity: 0.022;
        background-position: 0px 0px;
      }

      25% {
        opacity: 0.052;
        background-position: 42px 18px;
      }

      50% {
        opacity: 0.035;
        background-position: 28px 56px;
      }

      75% {
        opacity: 0.058;
        background-position: 62px 38px;
      }

      100% {
        opacity: 0.022;
        background-position: 0px 0px;
      }
    }

    [data-theme="light"] .gc-grain {
      mix-blend-mode: multiply;
      opacity: 0.015;
    }

    @media(max-width:520px) {
      .islands {
        gap: 8px
      }

      .island {
        width: 42px;
        height: 42px
      }

      .island:hover,
      .island.expanded,
      .island.auto-expand {
        width: 138px
      }

      .site-intro {
        font-size: 12px
      }

      html,
      body {
        cursor: auto
      }

      a,
      button,
      .island,
      .badge,
      .glass-card,
      .model-card,
      .mac-btn,
      .qr-close,
      .card-modal-btn,
      .card-modal-close,
      .ai-trigger-btn,
      .tts-toggle-btn,
      .ai-action-btn,
      .fixed-btn,
      .auth-pill,
      .auth-dropdown-item,
      .auth-modal-close,
      .auth-tab,
      .auth-submit,
      .auth-later {
        cursor: pointer
      }

      #target-cursor-wrapper {
        display: none
      }

      #ai-assistant-btn {
        bottom: 20px;
        right: 20px;
        width: 44px;
        height: 44px;
      }

      #ai-chat-bubble {
        bottom: 80px;
        right: 16px;
        left: auto;
        width: 290px;
        max-width: calc(100vw - 32px);
        transform-origin: bottom right;
      }
    }

    #ai-assistant-btn {
      position: fixed;
      bottom: 28px;
      right: 28px;
      width: 44px;
      height: 44px;
      cursor: pointer;
      z-index: 9000;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
      appearance: none;
      -webkit-appearance: none;
      background: none;
      border: none;
      outline: none;
      padding: 0;
      margin: 0;
    }

    #ai-assistant-btn:hover {
      transform: scale(1.10);
    }

    #ai-assistant-btn:focus,
    #ai-assistant-btn:focus-visible,
    #ai-assistant-btn:active {
      outline: none;
      background: none;
      border: none;
      box-shadow: none;
    }

    @keyframes ai-idle-pulse {

      0%,
      100% {
        opacity: 1;
      }

      50% {
        opacity: 1;
      }
    }

    #ai-assistant-btn img {
      animation: ai-icon-pulse 3.5s ease-in-out infinite;
    }

    #ai-assistant-btn span {
      width: 100% !important;
      height: 100% !important;
    }

    #ai-assistant-btn span svg {
      width: 100%;
      height: 100%;
      display: block;
    }

    @keyframes ai-icon-pulse {

      0%,
      100% {
        transform: scale(1);
      }

      50% {
        transform: scale(1.12);
      }
    }

    #ai-assistant-btn:hover img {
      animation: none;
      transform: scale(1.15);
    }

    #ai-chat-bubble {
      position: fixed;
      bottom: 92px;
      right: 28px;
      width: 290px;
      border-radius: 18px 18px 4px 18px;
      background: rgba(0, 0, 0, 0.88);
      backdrop-filter: blur(26px) saturate(170%);
      -webkit-backdrop-filter: blur(26px) saturate(170%);
      border: 1px solid rgba(255, 255, 255, 0.10);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10), 0 8px 40px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 58, 92, 0.10);
      padding: 18px 18px 14px;
      z-index: 8999;
      transform: scale(0.88) translateY(16px);
      opacity: 0.001;
      will-change: opacity, transform;
      pointer-events: none;
      transition: transform 0.32s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.24s ease;
      transform-origin: bottom right;
      overflow: hidden;
    }

    #ai-chat-bubble.visible {
      transform: scale(1) translateY(0);
      opacity: 1;
      pointer-events: all;
    }

    .ai-bubble-header {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 11px;
    }

    .ai-bubble-avatar {
      width: 28px;
      height: 28px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      padding: 0;
    }

    .ai-bubble-avatar svg {
      width: 100%;
      height: 100%;
      display: block;
    }

    .ai-bubble-name {
      font-family: 'DM Sans', sans-serif;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: #b8ff00;
    }

    .ai-bubble-time {
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      color: rgba(240, 240, 245, 0.28);
      margin-left: auto;
    }

    .ai-bubble-countdown {
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      color: rgba(184, 255, 0, 0.55);
      margin-left: 6px;
      white-space: nowrap;
    }

    /* ── FPS strip colour keyframes: blue (full) → lime → yellow → orange → red (empty) ── */
    @keyframes fps-strip-color {
      0%   { background: #0077ff; box-shadow: 0 0 10px rgba(0, 119, 255, 0.90), 0 0 3px rgba(0, 119, 255, 0.60); }
      18%  { background: #00e676; box-shadow: 0 0 10px rgba(0, 230, 118, 0.85), 0 0 3px rgba(0, 230, 118, 0.55); }
      40%  { background: #b8ff00; box-shadow: 0 0 10px rgba(184, 255, 0, 0.85),  0 0 3px rgba(184, 255, 0, 0.55); }
      62%  { background: #ffe600; box-shadow: 0 0 10px rgba(255, 230, 0, 0.85),  0 0 3px rgba(255, 230, 0, 0.55); }
      82%  { background: #ff8800; box-shadow: 0 0 10px rgba(255, 136, 0, 0.85),  0 0 3px rgba(255, 136, 0, 0.55); }
      100% { background: #ff1744; box-shadow: 0 0 10px rgba(255, 23, 68, 0.90),  0 0 3px rgba(255, 23, 68, 0.60); }
    }

    .ai-bubble-progress {
      position: absolute;
      left: 0;
      bottom: 0;
      height: 3px;
      width: 0%;
      opacity: 0;
      background: #0077ff;
      border-radius: 0 2px 0 0;
      will-change: width, background, box-shadow;
    }

    .ai-bubble-msg {
      font-family: 'DM Sans', sans-serif;
      font-size: 12.5px;
      line-height: 1.65;
      color: rgba(240, 240, 245, 0.82);
      margin-bottom: 14px;
    }

    .ai-bubble-msg strong {
      color: #f0f0f5;
      font-weight: 600;
    }

    .ai-bubble-actions {
      display: flex;
      gap: 8px;
    }

    .ai-action-btn {
      flex: 1;
      padding: 8px 0;
      border-radius: 10px;
      border: 1px solid rgba(255, 255, 255, 0.10);
      font-family: 'DM Sans', sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      cursor: pointer;
      transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.2s ease, border-color 0.2s ease;
      background: rgba(255, 255, 255, 0.04);
      color: rgba(240, 240, 245, 0.65);
    }

    .ai-action-btn:hover {
      transform: scale(1.04);
    }

    .ai-action-btn.yes {
      background: rgba(184, 255, 0, 0.10);
      border-color: rgba(184, 255, 0, 0.30);
      color: #b8ff00;
    }

    .ai-action-btn.yes:hover {
      background: rgba(184, 255, 0, 0.20);
      border-color: rgba(184, 255, 0, 0.55);
    }

    .ai-action-btn.no {
      background: rgba(255, 58, 92, 0.08);
      border-color: rgba(255, 58, 92, 0.22);
      color: rgba(255, 120, 140, 0.85);
    }

    .ai-action-btn.no:hover {
      background: rgba(255, 58, 92, 0.16);
      border-color: rgba(255, 58, 92, 0.42);
    }

    .ai-typing {
      display: flex;
      gap: 4px;
      align-items: center;
      margin-bottom: 14px;
    }

    .ai-typing span {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: rgba(255, 58, 92, 0.70);
      animation: typing-dot 1.2s ease-in-out infinite;
    }

    .ai-typing span:nth-child(2) {
      animation-delay: 0.18s;
    }

    .ai-typing span:nth-child(3) {
      animation-delay: 0.36s;
    }

    @keyframes typing-dot {

      0%,
      80%,
      100% {
        transform: scale(1);
        opacity: 0.4;
      }

      40% {
        transform: scale(1.35);
        opacity: 1;
      }
    }

    .ai-chat-row {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 10px 16px 12px;
      border-top: 1px solid var(--border);
    }

    .ai-bubble-input {
      flex: 1;
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 100px;
      padding: 7px 14px;
      font-family: 'Syne Mono', monospace;
      font-size: 8.5px;
      letter-spacing: 0.12em;
      color: var(--t1);
      outline: none;
      transition: border-color 0.2s ease;
    }

    .ai-bubble-input::placeholder {
      color: var(--t3);
    }

    .ai-bubble-input:focus {
      border-color: var(--border-hi);
    }

    .ai-bubble-send {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      background: rgba(184, 255, 0, 0.10);
      border: 1px solid rgba(184, 255, 0, 0.25);
      color: var(--accent);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: none;
      flex-shrink: 0;
      transition: background 0.2s ease;
    }

    .ai-bubble-send:hover {
      background: rgba(184, 255, 0, 0.22);
    }

    .ai-confirmed {
      font-family: 'Syne Mono', monospace;
      font-size: 10.5px;
      color: rgba(255, 255, 255, 0.80);
      letter-spacing: 0.05em;
      text-align: center;
      padding: 4px 0 2px;
      display: none;
    }

    body.low-perf .gc-fx-wrapper,
    body.low-perf .gc-reflection,
    body.low-perf .gc-grain,
    body.low-perf .gc-snake-wrap {
      animation: none !important;
      opacity: 0 !important;
      display: none !important;
    }

    /* ── TTS override: show snake border even in low-perf when reading ── */
    body.low-perf .glass-card.tts-reading .gc-snake-wrap {
      display: block !important;
      opacity: 1 !important;
      animation: none !important;
    }
    body.low-perf .glass-card.tts-reading .gc-snake-wrap::before {
      animation: snake-spin 1.6s linear infinite !important;
    }

    body.low-perf .glass-card {
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
      background: var(--surface) !important;
      border: 1px solid var(--border-hi) !important;
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15) !important;
      outline: none !important;
    }

    /* Light mode low-perf: use semi-transparent instead of solid white/black
       so the WebGL fluid background still shows through the cards */
    [data-theme="light"] body.low-perf .glass-card,
    body.low-perf [data-theme="light"] .glass-card {
      background: rgba(242, 242, 240, 0.55) !important;
      border: 1px solid rgba(0, 0, 0, 0.10) !important;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08) !important;
    }
    /* Dark mode low-perf: semi-transparent dark instead of pitch black
       so the neon WebGL fluid bleeds through beautifully */
    :root:not([data-theme="light"]) body.low-perf .glass-card {
      background: rgba(0, 0, 0, 0.45) !important;
    }

    /* Featured project card (Racing Game panel) — low-perf fallback
       Without backdrop-filter the gradient goes nearly invisible on light bg.
       Give it a solid semi-transparent surface so it reads properly. */
    body.low-perf .featured-project-card {
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
      background: rgba(0, 0, 0, 0.45) !important;
      border: 1px solid rgba(255, 255, 255, 0.12) !important;
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3) !important;
    }

    /* Light mode: warm semi-transparent surface so fluid shows through */
    [data-theme="light"] body.low-perf .featured-project-card,
    body.low-perf [data-theme="light"] .featured-project-card {
      background: rgba(242, 242, 240, 0.60) !important;
      border: 1px solid rgba(0, 0, 0, 0.10) !important;
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08) !important;
    }

    body.low-perf .glass-card::before,
    body.low-perf .glass-card::after {
      display: none !important;
    }

    body.low-perf .bg-grid {
      animation: none !important;
      opacity: 1 !important;
    }

    /* In low-perf: hide accent layer to avoid double-grid visual */
    body.low-perf .bg-grid::before {
      opacity: 0.12 !important;
      animation: none !important;
    }

    body.low-perf .bg-grid::after {
      display: none !important;
    }

    body.low-perf #ai-assistant-btn {
      animation: none !important;
    }

    /* ── Catch-all: every glassy/blurred element on the page, not just
       .glass-card, drops its backdrop-filter when effects are off. This is
       the single biggest GPU cost (compositing a blurred backdrop layer),
       and previously only .glass-card was covered — the AI button, auth
       pill, nav buttons, modals, and chat bubble all kept blurring. ── */
    body.low-perf * {
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
    }

    /* Rainbow underline accents — stop the perpetual gradient-shift
       animation and the JS-driven width tween underneath it. */
    body.low-perf .rainbow-underline {
      animation: none !important;
      opacity: 0 !important;
      display: none !important;
    }

    /* Third-party cursor-follow mascots — hide so their per-frame
       position updates skip painting entirely. */
    body.low-perf #oneko,
    body.low-perf #sakana-widget {
      display: none !important;
    }

    /* ── Pause heavy background animations while the auth modal is open ───
       This frees the GPU/CPU so the modal itself stays butter-smooth and
       the phone doesn't stutter while the keyboard is animating in.        */
    body.auth-open #bg-breath .breath-orb,
    body.auth-open .breath-noise,
    body.auth-open .bg-grid,
    body.auth-open .bg-grid::after,
    body.auth-open .rainbow-underline,
    body.auth-open .gc-snake-wrap::before,
    body.auth-open .gc-fx-wrapper,
    body.auth-open .gc-reflection,
    body.auth-open .gc-grain,
    body.auth-open .auth-snake-wrap::before {
      animation-play-state: paused !important;
    }
    /* Keep TTS-reading card snake running even when auth modal is open */
    body.auth-open .glass-card.tts-reading .gc-snake-wrap::before {
      animation-play-state: running !important;
    }
    /* Hide cursor decorations — pointless on a modal and cost GPU compositing layers */
    body.auth-open #target-cursor-wrapper,
    body.auth-open #mouse-spotlight {
      opacity: 0 !important;
      transition: opacity 0.25s ease !important;
    }

    /* ── Extra freeze when phone keyboard opens during auth ───────────────
       On mobile the keyboard resize triggers a viewport re-layout; hiding
       the animated background layers entirely stops the GPU from re-compositing
       everything at that exact moment.                                      */
    @media (max-width: 900px) {
      body.keyboard-open #bg-breath,
      body.keyboard-open .bg-grid,
      body.keyboard-open .gc-fx-wrapper,
      body.keyboard-open .gc-reflection,
      body.keyboard-open .gc-grain,
      body.keyboard-open #rainbowBg {
        visibility: hidden !important;
      }
    }
  
    /* Robot Bot Float Animation */
    @keyframes robotFloat {
      0%, 100% { transform: translateY(0px); }
      50% { transform: translateY(-12px); }
    }
    .robot-bot-wrap {
      display: flex;
      justify-content: center;
      align-items: center;
      margin: 24px auto 0;
      width: 180px;
      height: 180px;
      filter: drop-shadow(0 0 24px rgba(123,112,238,0.45));
      animation: robotFloat 2.7s ease-in-out infinite;
    }

    /* Text-to-Speech Reader Bar */
    .tts-reader-wrapper {
      display: flex;
      justify-content: center;
      margin-top: 10px;
      margin-bottom: 32px;
      width: 100%;
    }

    .tts-toggle-btn {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 13px 20px;
      cursor: none;
      color: var(--t2);
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.3em;
      text-transform: uppercase;
      transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
      backdrop-filter: blur(12px);
    }

    .tts-toggle-btn:hover {
      background: var(--btn-bg);
      border-color: var(--border-hi);
      color: var(--t1);
      transform: translateY(-2px);
    }

    .tts-toggle-btn:active {
      transform: scale(0.98);
    }

    .tts-toggle-icon {
      width: 16px;
      height: 16px;
      flex-shrink: 0;
      color: var(--t1);
      transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    .tts-toggle-btn:hover .tts-toggle-icon {
      transform: scale(1.2);
    }

    .tts-reader-bar {
      background: var(--glass);
      backdrop-filter: blur(12px);
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 16px 20px;
      width: 100%;
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
      display: none;
      animation: expandDown 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
      margin-top: 10px;
    }

    .tts-reader-bar.visible {
      display: block;
    }

    .tts-header {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      margin-bottom: 12px;
      font-family: 'DM Sans', sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(240, 240, 245, 0.7);
    }

    .tts-icon {
      width: 0px;
      height: 0px;
      display: none;
    }

    .tts-controls {
      display: flex;
      gap: 8px;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
    }

    .tts-btn {
      padding: 7px 12px;
      border-radius: 6px;
      border: 1px solid rgba(255, 255, 255, 0.12);
      background: rgba(255, 255, 255, 0.05);
      color: rgba(240, 240, 245, 0.7);
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      cursor: pointer;
      transition: all 0.2s ease;
    }

    .tts-btn:hover {
      background: rgba(255, 255, 255, 0.12);
      border-color: rgba(255, 255, 255, 0.2);
      color: rgba(240, 240, 245, 0.9);
    }

    .tts-btn:active {
      transform: scale(0.96);
    }

    .tts-btn.disabled {
      opacity: 0.4;
      cursor: not-allowed;
    }

    .tts-speed-container {
      display: flex;
      align-items: center;
      gap: 8px;
      min-width: 140px;
    }

    .tts-speed-label {
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      color: rgba(240, 240, 245, 0.5);
      text-transform: uppercase;
      letter-spacing: 0.06em;
      white-space: nowrap;
    }

    .tts-speed-slider {
      flex: 1;
      height: 3px;
      border-radius: 2px;
      background: rgba(255, 255, 255, 0.1);
      outline: none;
      -webkit-appearance: none;
      appearance: none;
    }

    .tts-speed-slider::-webkit-slider-thumb {
      -webkit-appearance: none;
      appearance: none;
      width: 11px;
      height: 11px;
      border-radius: 50%;
      background: rgba(240, 240, 245, 0.5);
      cursor: pointer;
      transition: all 0.2s ease;
    }

    .tts-speed-slider::-webkit-slider-thumb:hover {
      background: rgba(240, 240, 245, 0.8);
    }

    .tts-speed-slider::-moz-range-thumb {
      width: 11px;
      height: 11px;
      border-radius: 50%;
      background: rgba(240, 240, 245, 0.5);
      cursor: pointer;
      border: none;
      transition: all 0.2s ease;
    }

    .tts-speed-slider::-moz-range-thumb:hover {
      background: rgba(240, 240, 245, 0.8);
    }

    .tts-speed-display {
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      color: rgba(240, 240, 245, 0.6);
      min-width: 25px;
      text-align: right;
    }

    .tts-status {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      color: rgba(240, 240, 245, 0.4);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      margin-top: 8px;
      padding-top: 8px;
      border-top: 1px solid rgba(255, 255, 255, 0.05);
      text-align: center;
    }

    /* Light theme text color fixes for TTS reader */
    [data-theme="light"] .tts-header {
      color: rgba(20, 20, 30, 0.8) !important;
    }

    [data-theme="light"] .tts-btn {
      color: rgba(20, 20, 30, 0.8) !important;
      border-color: rgba(0, 0, 0, 0.15) !important;
      background: rgba(0, 0, 0, 0.05) !important;
    }

    [data-theme="light"] .tts-btn:hover {
      color: rgba(20, 20, 30, 0.95) !important;
      background: rgba(0, 0, 0, 0.1) !important;
      border-color: rgba(0, 0, 0, 0.2) !important;
    }

    [data-theme="light"] .tts-speed-label {
      color: rgba(20, 20, 30, 0.7) !important;
    }

    [data-theme="light"] .tts-speed-display {
      color: rgba(20, 20, 30, 0.75) !important;
    }

    [data-theme="light"] .tts-speed-slider {
      background: rgba(0, 0, 0, 0.1) !important;
    }

    [data-theme="light"] .tts-speed-slider::-webkit-slider-thumb {
      background: rgba(20, 20, 30, 0.6) !important;
    }

    [data-theme="light"] .tts-speed-slider::-webkit-slider-thumb:hover {
      background: rgba(20, 20, 30, 0.85) !important;
    }

    [data-theme="light"] .tts-speed-slider::-moz-range-thumb {
      background: rgba(20, 20, 30, 0.6) !important;
    }

    [data-theme="light"] .tts-speed-slider::-moz-range-thumb:hover {
      background: rgba(20, 20, 30, 0.85) !important;
    }

    [data-theme="light"] .tts-status {
      color: rgba(20, 20, 30, 0.6) !important;
      border-top-color: rgba(0, 0, 0, 0.08) !important;
    }

    /* TTS word highlight */
    tts-word {
      display: inline;
      border-radius: 3px;
      transition: color 0.1s ease, background 0.1s ease;
    }

    tts-word[data-tts-active] {
      color: #ff3b3b;
      background: rgba(255, 59, 59, 0.12);
      border-radius: 3px;
      padding: 0 1px;
    }

    /* Mobile-specific TTS enhancements */
    @media (max-width: 768px) {
      tts-word[data-tts-active] {
        /* Stronger highlight on mobile for better visibility */
        color: #ff1a1a !important;
        background: rgba(255, 59, 59, 0.25) !important;
        padding: 2px 4px !important;
        font-weight: 600 !important;
        display: inline-block !important;
      }
    }

    /* Ensure snake animation is visible on mobile reading cards */
    @media (max-width: 768px) {
      .glass-card.tts-reading .gc-snake-wrap {
        opacity: 1 !important;
      }
      .glass-card.tts-reading .gc-snake-wrap::before {
        animation-duration: 1.4s;
      }
    }


    
    html, body {
      background: #000000;
    }
    :root[data-theme="light"],
    :root[data-theme="light"] body {
      background: #f2f2f0;
    }

    /* Hide old breathing orbs — grid is now re-enabled as bento overlay */
    #bg-breath {
      display: none !important;
    }

    /* ── AI Models Marquee Strip ── */
    .ai-models-strip {
      padding: 60px 0 56px;
      overflow: hidden;
      position: relative;
    }
    .ai-models-strip::before,
    .ai-models-strip::after {
      content: '';
      position: absolute;
      top: 0; bottom: 0;
      width: 120px;
      z-index: 2;
      pointer-events: none;
    }
    .ai-models-strip::before { left: 0; background: linear-gradient(to right, var(--bg, #050505), transparent); }
    .ai-models-strip::after  { right: 0; background: linear-gradient(to left,  var(--bg, #050505), transparent); }

    .ai-models-eyebrow {
      text-align: center;
      font-size: 11px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--t3);
      margin-bottom: 32px;
      font-family: 'DM Sans', sans-serif;
    }

    .ai-marquee-track {
      display: flex;
      gap: 0;
      width: max-content;
    }
    .ai-marquee-track.row-1 { animation: marquee-ltr 40s linear infinite; margin-bottom: 22px; }
    .ai-marquee-track.row-2 { animation: marquee-rtl 47.5s linear infinite; }

    @keyframes marquee-ltr {
      from { transform: translateX(0); }
      to   { transform: translateX(var(--mq-shift, -50%)); }
    }
    @keyframes marquee-rtl {
      from { transform: translateX(var(--mq-shift-r, -50%)); }
      to   { transform: translateX(0); }
    }

    .ai-marquee-track:hover { animation-play-state: paused; }

    .ai-logo-item {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      padding: 0 28px;
      white-space: nowrap;
      font-family: 'DM Sans', sans-serif;
      font-weight: 700;
      font-size: 15px;
      letter-spacing: 0.02em;
      color: var(--t3);
      transition: color 0.25s ease;
      cursor: default;
      border-right: 1px solid var(--border);
    }
    .ai-logo-item:last-child { border-right: none; }
    .ai-logo-item:hover { color: var(--t1); }

    .ai-logo-item svg {
      flex-shrink: 0;
      opacity: 0.55;
      transition: opacity 0.25s ease;
    }
    .ai-logo-item:hover svg { opacity: 1; }

    /* ══ LOGO TICKER ══════════════════════════════════════════════════════ */
    .logo-ticker-section {
      padding: 48px 0 56px;
      text-align: center;
    }
    .logo-ticker-eyebrow {
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.35);
      margin: 0 0 28px;
      font-family: var(--font-mono, monospace);
    }
    .logoloop {
      position: relative;
      --logoloop-gap: 56px;
      --logoloop-logoHeight: 36px;
      --logoloop-fadeColor: #0b0b0b;
      overflow: hidden;
      width: 100%;
    }
    .logoloop__track {
      display: flex;
      width: max-content;
      will-change: transform;
      user-select: none;
    }
    .logoloop__list {
      display: flex;
      align-items: center;
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .logoloop__item {
      flex: 0 0 auto;
      margin-right: var(--logoloop-gap);
      display: flex;
      align-items: center;
      opacity: 0.55;
      transition: opacity 0.25s ease;
    }
    .logoloop__item:hover { opacity: 1; }
    .logoloop__item svg {
      height: var(--logoloop-logoHeight);
      width: auto;
      display: block;
    }
    .logoloop--fade::before,
    .logoloop--fade::after {
      content: '';
      position: absolute;
      top: 0; bottom: 0;
      width: clamp(40px, 10%, 140px);
      pointer-events: none;
      z-index: 10;
    }
    .logoloop--fade::before {
      left: 0;
      background: linear-gradient(to right, var(--logoloop-fadeColor) 0%, rgba(11,11,11,0) 100%);
    }
    .logoloop--fade::after {
      right: 0;
      background: linear-gradient(to left, var(--logoloop-fadeColor) 0%, rgba(11,11,11,0) 100%);
    }
    @media (prefers-reduced-motion: reduce) {
      .logoloop__track { animation: none !important; transform: none !important; }
    }

    /* ── Logo Ticker: light-mode fixes ── */
    [data-theme="light"] .logo-ticker-eyebrow {
      color: rgba(0,0,0,0.38);
    }
    [data-theme="light"] .logoloop {
      --logoloop-fadeColor: #f2f2f0;
    }
    [data-theme="light"] .logoloop--fade::before {
      background: linear-gradient(to right, #f2f2f0 0%, rgba(242,242,240,0) 100%);
    }
    [data-theme="light"] .logoloop--fade::after {
      background: linear-gradient(to left, #f2f2f0 0%, rgba(242,242,240,0) 100%);
    }
    [data-theme="light"] .logoloop__item svg [fill="#fff"] { fill: #1e1e1e; }
    [data-theme="light"] .logoloop__item svg [stroke="#fff"] { stroke: #1e1e1e; }

/* ── Style Block 2 ── */
/* ── MagicBento overlay styles ── */
    .glass-card.mb-glow-card {
      background: #120F17 !important;
      border: 1px solid #2F293A !important;
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
      box-shadow: 0 4px 24px rgba(0,0,0,0.4) !important;
      --glow-x: 50%;
      --glow-y: 50%;
      --glow-intensity: 0;
      --glow-radius: 300px;
      --mb-glow-color: 132, 0, 255;
    }
    .glass-card.mb-glow-card:hover {
      background: #120F17 !important;
      transform: translateY(-2px) !important;
      box-shadow:
        0 4px 20px rgba(46, 24, 78, 0.4),
        0 0 30px rgba(132, 0, 255, 0.2) !important;
    }
    .mb-glow-overlay {
      position: absolute;
      inset: 0;
      padding: 6px;
      border-radius: inherit;
      background: radial-gradient(
        var(--glow-radius) circle at var(--glow-x) var(--glow-y),
        rgba(var(--mb-glow-color), calc(var(--glow-intensity) * 0.8)) 0%,
        rgba(var(--mb-glow-color), calc(var(--glow-intensity) * 0.4)) 30%,
        transparent 60%
      );
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      mask-composite: exclude;
      pointer-events: none;
      z-index: 100;
      opacity: 1;
      transition: opacity 0.3s ease;
    }
    /* Particle dots injected by JS */
    .mb-particle {
      position: absolute;
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: rgba(132, 0, 255, 1);
      box-shadow: 0 0 6px rgba(132, 0, 255, 0.6);
      pointer-events: none;
      z-index: 100;
    }
    /* Global spotlight */
    .mb-global-spotlight {
      position: fixed;
      width: 800px;
      height: 800px;
      border-radius: 50%;
      pointer-events: none;
      background: radial-gradient(circle,
        rgba(132,0,255,0.15) 0%,
        rgba(132,0,255,0.08) 15%,
        rgba(132,0,255,0.04) 25%,
        rgba(132,0,255,0.02) 40%,
        rgba(132,0,255,0.01) 65%,
        transparent 70%
      );
      z-index: 200;
      opacity: 0;
      transform: translate(-50%, -50%);
      mix-blend-mode: screen;
      transition: opacity 0.3s ease;
      will-change: transform, opacity;
    }
    /* Override gc text colors for dark bg */
    .glass-card.mb-glow-card .gc-title,
    .glass-card.mb-glow-card .gc-desc,
    .glass-card.mb-glow-card .gc-num { color: var(--t1) !important; }
    .glass-card.mb-glow-card .gc-dot { background: rgba(132,0,255,0.8) !important; }
    .glass-card.mb-glow-card .gc-icon-wrap svg { stroke: var(--card-accent) !important; }
    .glass-card.mb-glow-card .gc-snake-wrap { display: none !important; }
    /* Mac buttons get purple tint */
    .glass-card.mb-glow-card .mac-btn { background: rgba(132,0,255,0.5) !important; border-color: rgba(132,0,255,0.3) !important; }
    .glass-card.mb-glow-card .mac-btn.close { background: rgba(200,0,80,0.7) !important; }
    .glass-card.mb-glow-card .mac-btn.min { background: rgba(220,160,0,0.7) !important; }
    .glass-card.mb-glow-card .mac-btn.max { background: rgba(0,180,80,0.7) !important; }
    /* Light theme override — keep dark for MagicBento */
    [data-theme="light"] .glass-card.mb-glow-card {
      background: rgba(255, 255, 255, 0.75) !important;
      border-color: rgba(0, 0, 0, 0.1) !important;
      backdrop-filter: blur(20px) !important;
      -webkit-backdrop-filter: blur(20px) !important;
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), inset 0 1px 1px rgba(255,255,255,0.9) !important;
    }
    [data-theme="light"] .glass-card.mb-glow-card .gc-title {
      color: var(--t1) !important;
    }
    [data-theme="light"] .glass-card.mb-glow-card .gc-desc {
      color: var(--t2) !important;
    }
    [data-theme="light"] .glass-card.mb-glow-card .gc-num {
      color: var(--t3) !important;
    }
    [data-theme="light"] .glass-card.mb-glow-card .mb-glow-overlay {
      opacity: 0.04 !important;
    }

/* ── Style Block 3 ── */
#themeDropdown {
      position: absolute;
      right: 0;
      top: calc(100% + 10px);
      background: var(--surface);
      border: 1px solid var(--border-hi);
      border-radius: 14px;
      padding: 6px;
      display: flex;
      flex-direction: column;
      gap: 2px;
      min-width: 130px;
      box-shadow: 0 8px 32px rgba(0,0,0,0.25);
      opacity: 0;
      pointer-events: none;
      transform: translateY(-6px) scale(0.97);
      transform-origin: top right;
      transition: opacity 0.18s ease, transform 0.18s ease;
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
    }
    #themeDropdown.open {
      opacity: 1;
      pointer-events: all;
      transform: translateY(0) scale(1);
    }
    .theme-opt {
      display: flex;
      align-items: center;
      gap: 9px;
      padding: 8px 12px;
      border-radius: 9px;
      border: none;
      background: transparent;
      color: var(--t2);
      font-family: 'DM Sans', sans-serif;
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 0.04em;
      cursor: pointer;
      transition: background 0.15s ease, color 0.15s ease;
      width: 100%;
      text-align: left;
    }
    .theme-opt svg {
      width: 14px;
      height: 14px;
      flex-shrink: 0;
      opacity: 0.7;
    }
    .theme-opt:hover {
      background: var(--btn-bg);
      color: var(--t1);
    }
    .theme-opt.active {
      background: var(--btn-bg);
      color: var(--t1);
    }
    .theme-opt.active svg { opacity: 1; }
    [data-theme="dark"] .icon-moon { display: none; }
    [data-theme="light"] .icon-sun { display: none; }

/* ── Style Block 4 ── */
.daily-work-section {
        max-width: 900px;
        margin: 0 auto 0 auto;
        padding: 72px 24px 64px;
      }
      .daily-work-hero {
        margin-bottom: 40px;
        text-align: center;
      }
      .daily-work-hero h2 {
        font-family: 'DM Sans', sans-serif;
        font-size: clamp(17px, 3.2vw, 22px);
        font-weight: 800;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        line-height: 1.15;
        color: var(--text);
        margin: 0 0 16px;
      }
      .daily-work-hero p {
        font-family: 'Inter', sans-serif;
        font-size: 12px;
        color: var(--t3);
        line-height: 1.65;
        max-width: 480px;
        margin: 0 auto;
      }
      .daily-work-card {
        background: var(--glass, rgba(255,255,255,0.03));
        border: 1px solid var(--border);
        border-radius: 16px;
        padding: 32px;
        margin-bottom: 12px;
        transition: border-color 0.2s;
      }
      .daily-work-card:hover {
        border-color: var(--border-hi);
      }
      .daily-work-card-header {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 12px;
      }
      .daily-work-card-icon {
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border: 1.5px solid var(--accent);
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--accent);
        flex-shrink: 0;
      }
      .daily-work-card-eyebrow {
        font-size: 0.7rem;
        font-weight: 600;
        letter-spacing: 0.08em;
        color: var(--accent);
        text-transform: uppercase;
      }
      .daily-work-card h3 {
        font-family: 'DM Sans', sans-serif;
        font-size: 1.25rem;
        font-weight: 700;
        color: var(--text);
        margin: 0 0 8px;
      }
      .daily-work-card p {
        color: var(--muted);
        font-size: 0.88rem;
        line-height: 1.6;
        margin: 0 0 16px;
      }
      .daily-work-chat-bubble-wrap {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-top: 16px;
      }
      .daily-work-bubble {
        max-width: 75%;
        padding: 10px 16px;
        border-radius: 18px;
        font-size: 0.85rem;
        line-height: 1.5;
      }
      .daily-work-bubble.user {
        align-self: flex-end;
        background: var(--glass, rgba(255,255,255,0.05));
        border: 1px solid var(--border-hi);
        color: var(--text);
      }
      .daily-work-bubble.bot {
        align-self: flex-start;
        background: var(--accent);
        color: #000;
        font-weight: 500;
      }
      .daily-work-bubble-note {
        font-size: 0.72rem;
        color: var(--muted);
        margin-top: 4px;
        display: flex;
        align-items: center;
        gap: 6px;
      }
      .daily-work-modules-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
        border: 1px solid var(--border);
        border-radius: 16px;
        overflow: hidden;
        margin-bottom: 12px;
      }
      .daily-work-module-item {
        padding: 22px 24px;
        border-bottom: 1px solid var(--border);
        border-right: 1px solid var(--border);
        display: flex;
        align-items: flex-start;
        gap: 14px;
        transition: background 0.2s;
      }
      .daily-work-module-item:hover {
        background: var(--glass, rgba(255,255,255,0.03));
      }
      .daily-work-module-item:nth-child(even) {
        border-right: none;
      }
      .daily-work-module-item:nth-last-child(-n+2) {
        border-bottom: none;
      }
      .daily-work-module-num {
        font-size: 0.75rem;
        color: var(--muted);
        font-weight: 600;
        min-width: 20px;
        padding-top: 2px;
      }
      .daily-work-module-icon {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        border: 1px solid var(--border-hi);
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        color: var(--text);
      }
      .daily-work-module-content h4 {
        font-family: 'DM Sans', sans-serif;
        font-size: 0.9rem;
        font-weight: 700;
        color: var(--text);
        margin: 0 0 4px;
      }
      .daily-work-module-content p {
        font-size: 0.78rem;
        color: var(--muted);
        margin: 0;
        line-height: 1.5;
      }
      .daily-work-module-tag {
        font-size: 0.6rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        padding: 2px 7px;
        border-radius: 4px;
        margin-left: 6px;
        vertical-align: middle;
        background: rgba(184,255,0,0.12);
        color: var(--accent);
        border: 1px solid rgba(184,255,0,0.2);
      }
      .daily-work-module-tag.blue {
        background: rgba(0,212,255,0.12);
        color: var(--accent2);
        border-color: rgba(0,212,255,0.2);
      }
      .daily-work-checks {
        display: flex;
        flex-wrap: wrap;
        gap: 18px;
        margin-top: 28px;
        padding-top: 24px;
        border-top: 1px solid var(--border);
        justify-content: center;
      }
      .daily-work-check {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 0.82rem;
        color: var(--muted);
      }
      .daily-work-check svg {
        color: var(--accent);
        flex-shrink: 0;
      }
      @media (max-width: 600px) {
        .daily-work-modules-grid { grid-template-columns: 1fr; }
        .daily-work-module-item { border-right: none !important; }
        .daily-work-module-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--border); }
        .daily-work-module-item:last-child { border-bottom: none; }
      }

/* ── Style Block 5 ── */
.community-section { margin-top: 72px; }
        .community-marquee-outer {
          margin-top: 40px;
          position: relative;
          overflow: hidden;
          width: 100%;
        }
        .community-marquee-outer::before,
        .community-marquee-outer::after {
          content: '';
          position: absolute;
          top: 0;
          width: 120px;
          height: 100%;
          z-index: 2;
          pointer-events: none;
        }
        .community-marquee-outer::before { left: 0; background: linear-gradient(to right, var(--bg) 0%, transparent 100%); }
        .community-marquee-outer::after  { right: 0; background: linear-gradient(to left,  var(--bg) 0%, transparent 100%); }

        .community-row { overflow: hidden; margin-bottom: 18px; }
        .community-row:last-child { margin-bottom: 0; }

        .community-track {
          display: flex;
          gap: 18px;
          width: max-content;
        }
        .community-track.row-a { animation: cq-ltr 55s linear infinite; }
        .community-track.row-b { animation: cq-rtl 65s linear infinite; }
        .community-track.row-a:hover,
        .community-track.row-b:hover { animation-play-state: paused; }

        @keyframes cq-ltr {
          from { transform: translateX(0); }
          to   { transform: translateX(-50%); }
        }
        @keyframes cq-rtl {
          from { transform: translateX(-50%); }
          to   { transform: translateX(0); }
        }

        .community-card {
          flex: 0 0 310px;
          background: var(--glass);
          border: 1px solid var(--border);
          border-radius: 16px;
          padding: 24px 22px 20px;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          gap: 20px;
          min-height: 190px;
          transition: border-color 0.3s, transform 0.3s, background 0.3s;
          user-select: none;
        }
        .community-card:hover {
          border-color: var(--accent2, rgba(93,104,249,0.55));
          background: var(--glass);
          transform: translateY(-3px);
          box-shadow: 0 4px 24px var(--glow-a, rgba(93,104,249,0.08));
        }
        .community-quote {
          font-size: 0.875rem;
          line-height: 1.65;
          color: var(--t2);
          margin: 0;
        }
        .community-author {
          display: flex;
          align-items: center;
          gap: 11px;
        }
        .community-avatar {
          width: 36px;
          height: 36px;
          border-radius: 50%;
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 0.72rem;
          font-weight: 700;
          color: #fff;
          flex-shrink: 0;
          letter-spacing: 0.03em;
        }
        .community-name {
          font-size: 0.82rem;
          font-weight: 600;
          color: var(--t1);
          line-height: 1.3;
        }
        .community-role {
          font-size: 0.73rem;
          color: var(--t3);
          font-weight: 400;
        }

/* ── Style Block 6 ── */
.privacy-section {
      width: 100%;
      max-width: none;
      margin: 0;
      padding: 80px 28px 60px;
      box-sizing: border-box;
      position: relative;
      z-index: 1;
    }

    @media (min-width: 820px) {
      .privacy-section {
        padding: 80px 48px 60px;
      }
    }

    @media (min-width: 1200px) {
      .privacy-section {
        padding: 80px 80px 60px;
      }
    }

    @media (min-width: 1600px) {
      .privacy-section {
        padding: 80px 120px 60px;
      }
    }

    /* ══════════════════════════════════════════════════
       ── FEATURED PROJECT CARD (Racing Game) ──
    ══════════════════════════════════════════════════ */
    .featured-project-wrap {
      margin: 4px 0 0;
      position: relative;
      z-index: 1;
    }

    .featured-project-card {
      position: relative;
      display: grid;
      grid-template-columns: 1fr 1fr;
      border-radius: 22px;
      overflow: hidden;
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.0) 100%);
      backdrop-filter: blur(30px) saturate(150%);
      -webkit-backdrop-filter: blur(30px) saturate(150%);
      border: none;
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.15),
        inset 0 -1px 0 rgba(255, 255, 255, 0.02),
        0 8px 32px rgba(0, 0, 0, 0.35);
      transition: transform 0.38s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.38s ease;
    }

    /* Static rainbow gradient outline — RGB-gaming-style ring, always on,
       no spin/animation. Built the same masked-padding way as .gc-snake-wrap
       (inset 0, so it stays inside the card and isn't clipped by overflow). */
    .featured-project-card::before {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: inherit;
      padding: 2px;
      background: linear-gradient(135deg,
          #ff3a5c 0%,
          #ff8c00 16.66%,
          #ffe600 33.33%,
          #b8ff00 50%,
          #00d4ff 66.66%,
          #7b5ea7 83.33%,
          #ff3a5c 100%);
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
      z-index: 2;
    }

    .featured-project-card:hover {
      transform: translateY(-4px);
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.25),
        0 16px 48px rgba(0, 0, 0, 0.45);
    }

    [data-theme="light"] .featured-project-card {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.2) 100%);
      border: none;
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.8),
        0 8px 32px rgba(0, 0, 0, 0.08);
    }

    [data-theme="light"] .featured-project-card:hover {
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.9),
        0 16px 40px rgba(0, 0, 0, 0.12);
    }

    .fp-thumb {
      position: relative;
      min-height: 280px;
      overflow: hidden;
    }

    .fp-thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    .featured-project-card:hover .fp-thumb img {
      transform: scale(1.06);
    }

    .fp-thumb::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, transparent 55%, rgba(0, 0, 0, 0.4) 100%);
      pointer-events: none;
    }

    .fp-badge {
      position: absolute;
      top: 16px;
      left: 16px;
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: #0a0a0a;
      background: linear-gradient(135deg, #fde047, #f59e0b);
      padding: 6px 13px;
      border-radius: 999px;
      box-shadow: 0 4px 14px rgba(245, 158, 11, 0.45);
      z-index: 2;
    }

    .fp-content {
      padding: 36px 44px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      position: relative;
      z-index: 1;
    }

    .fp-tag {
      font-family: 'Syne Mono', monospace;
      font-size: 9.5px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 14px;
      display: inline-block;
    }

    .fp-title {
      font-family: 'DM Sans', sans-serif;
      font-weight: 800;
      font-size: 27px;
      letter-spacing: 0.005em;
      color: var(--t1);
      margin: 0 0 13px;
      line-height: 1.15;
      text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6), 0 0 20px rgba(0, 0, 0, 0.4);
    }

    .fp-desc {
      font-family: 'Inter', sans-serif;
      font-size: 13.5px;
      line-height: 1.72;
      color: var(--t2);
      margin: 0 auto 22px;
      max-width: 480px;
      text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
    }

    .fp-features {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 8px;
      margin-bottom: 26px;
    }

    .fp-features span {
      font-family: 'Syne Mono', monospace;
      font-size: 9.5px;
      letter-spacing: 0.05em;
      color: var(--t2);
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid var(--border);
      border-radius: 999px;
      padding: 6px 13px;
      white-space: nowrap;
    }

    [data-theme="light"] .fp-features span {
      background: rgba(0, 0, 0, 0.03);
    }

    .fp-btn {
      display: inline-flex;
      align-items: center;
      width: fit-content;
      font-family: 'DM Sans', sans-serif;
      font-weight: 800;
      font-size: 12.5px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: #0a0a0a;
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.45) 0%, rgba(255, 255, 255, 0) 55%), var(--accent);
      padding: 5px 30px 5px 5px;
      border-radius: 999px;
      text-decoration: none;
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        inset 0 -3px 8px rgba(0, 0, 0, 0.15),
        0 10px 28px rgba(184, 255, 0, 0.3);
      transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.35s ease;
    }

    .fp-btn:hover {
      transform: translateY(-3px) scale(1.03);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.6),
        inset 0 -3px 8px rgba(0, 0, 0, 0.15),
        0 16px 38px rgba(184, 255, 0, 0.45);
    }

    .fp-btn-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      border-radius: 50%;
      background: rgba(10, 10, 15, 0.9);
      flex-shrink: 0;
      transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    .fp-btn:hover .fp-btn-icon {
      transform: scale(1.08) rotate(8deg);
    }

    .fp-btn-icon svg {
      width: 13px;
      height: 13px;
      color: var(--accent);
    }

    .fp-btn-label {
      padding-left: 16px;
    }

    @media (max-width: 760px) {
      .featured-project-card {
        grid-template-columns: 1fr;
      }

      .fp-thumb {
        min-height: 200px;
      }

      .fp-thumb::after {
        background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, 0.45) 100%);
      }

      .fp-content {
        padding: 28px 24px 32px;
      }

      .fp-title {
        font-size: 22px;
      }
    }

    .privacy-footer-note {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      flex-wrap: wrap;
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      letter-spacing: 0.12em;
      color: var(--t3);
      text-align: center;
      padding: 20px 24px;
      margin-top: 76px;
      border: 1px solid var(--border);
      border-radius: 12px;
      background: var(--glass);
    }

    .privacy-shield-icon {
      color: var(--accent);
      display: flex;
      align-items: center;
      flex-shrink: 0;
    }

    .abuse-warning-note {
      display: flex;
      align-items: flex-start;
      justify-content: center;
      gap: 10px;
      flex-wrap: wrap;
      font-family: 'Syne Mono', monospace;
      font-size: 9px;
      line-height: 1.6;
      letter-spacing: 0.06em;
      color: rgba(255, 190, 110, 0.75);
      text-align: center;
      padding: 18px 24px;
      margin-top: 28px;
      max-width: 640px;
      margin-left: auto;
      margin-right: auto;
      border: 1px solid rgba(255, 160, 60, 0.25);
      border-radius: 12px;
      background: rgba(255, 140, 0, 0.05);
    }

    .abuse-warning-icon {
      color: rgb(255, 170, 60);
      display: flex;
      align-items: center;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .abuse-warning-text strong {
      color: rgb(255, 190, 110);
      letter-spacing: 0.1em;
    }

    @media (max-width: 600px) {
      .abuse-warning-note {
        text-align: left;
      }
    }

    .privacy-contact-link {
      color: var(--accent2);
      text-decoration: none;
      letter-spacing: 0.12em;
      transition: color 0.2s ease;
    }

    .privacy-contact-link:hover {
      color: var(--accent);
    }

    /* ── Main-site contact box ── */
    /* registering these as <number> lets the browser smoothly interpolate
       the tint colour itself (not just its opacity) whenever a new service
       is picked — a real crossfade between colours, not a hard jump.
       --cb-a starts at 0, so with nothing selected the card looks exactly
       like it always did; the tint layers below are fully transparent. */
    @property --cb-r { syntax: '<number>'; inherits: true; initial-value: 184; }
    @property --cb-g { syntax: '<number>'; inherits: true; initial-value: 255; }
    @property --cb-b { syntax: '<number>'; inherits: true; initial-value: 0; }
    @property --cb-a { syntax: '<number>'; inherits: true; initial-value: 0; }

    .contact-box {
      max-width: 640px;
      margin: 64px auto 0;
      padding: 36px 26px 32px;
      border-radius: 20px;
      --cb-r: 184; --cb-g: 255; --cb-b: 0; --cb-a: 0;
      background:
        radial-gradient(120% 140% at 50% -15%, rgba(var(--cb-r), var(--cb-g), var(--cb-b), calc(var(--cb-a) * 0.18)) 0%, rgba(var(--cb-r), var(--cb-g), var(--cb-b), 0) 62%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.0) 100%);
      backdrop-filter: blur(30px) saturate(calc(150% + var(--cb-a) * 25%));
      -webkit-backdrop-filter: blur(30px) saturate(calc(150% + var(--cb-a) * 25%));
      border: 1px solid var(--border-hi);
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.15),
        inset 0 -1px 0 rgba(255, 255, 255, 0.02),
        0 8px 32px rgba(0, 0, 0, 0.3),
        0 0 0 1px rgba(var(--cb-r), var(--cb-g), var(--cb-b), calc(var(--cb-a) * 0.45));
      text-align: center;
      position: relative;
      transition: transform 0.4s cubic-bezier(0.34, 1.46, 0.64, 1), box-shadow 0.6s ease,
        --cb-r 0.6s ease, --cb-g 0.6s ease, --cb-b 0.6s ease, --cb-a 0.6s ease;
      transform-origin: top center;
      z-index: 1;
    }

    .contact-box.cb-zoomed {
      transform: scale(1.1);
      z-index: 50;
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.2),
        inset 0 -1px 0 rgba(255, 255, 255, 0.04),
        0 32px 80px rgba(0, 0, 0, 0.55),
        0 0 0 1.5px rgba(200, 255, 0, 0.18),
        0 0 0 1px rgba(var(--cb-r), var(--cb-g), var(--cb-b), calc(var(--cb-a) * 0.45));
    }

    .cb-zoom-btn {
      position: absolute;
      top: 12px;
      right: 12px;
      width: 30px;
      height: 30px;
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.07);
      border: 1px solid rgba(255, 255, 255, 0.13);
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s, transform 0.2s, border-color 0.2s;
      color: var(--t2);
      z-index: 10;
      outline: none;
      padding: 0;
    }

    .cb-zoom-btn:hover {
      background: rgba(255, 255, 255, 0.15);
      border-color: rgba(255, 255, 255, 0.25);
      transform: scale(1.12);
    }

    .cb-zoom-btn svg {
      width: 14px;
      height: 14px;
      flex-shrink: 0;
    }

    .cb-zoom-btn .cb-icon-in  { display: block; }
    .cb-zoom-btn .cb-icon-out { display: none; }
    .contact-box.cb-zoomed .cb-zoom-btn .cb-icon-in  { display: none; }
    .contact-box.cb-zoomed .cb-zoom-btn .cb-icon-out { display: block; }

    [data-theme="light"] .cb-zoom-btn {
      background: rgba(0, 0, 0, 0.05);
      border-color: rgba(0, 0, 0, 0.12);
    }

    [data-theme="light"] .contact-box {
      background:
        radial-gradient(120% 140% at 50% -15%, rgba(var(--cb-r), var(--cb-g), var(--cb-b), calc(var(--cb-a) * 0.16)) 0%, rgba(var(--cb-r), var(--cb-g), var(--cb-b), 0) 62%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.2) 100%);
      border: 1px solid rgba(255, 255, 255, 0.6);
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.8),
        0 8px 32px rgba(0, 0, 0, 0.05),
        0 0 0 1px rgba(var(--cb-r), var(--cb-g), var(--cb-b), calc(var(--cb-a) * 0.4));
    }

    @media (min-width: 820px) {
      .contact-box {
        padding: 44px 48px 40px;
      }
    }

    .contact-box-head {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    .contact-box-sub {
      font-family: 'Inter', sans-serif;
      font-size: 13px;
      color: var(--t2);
      max-width: 420px;
      line-height: 1.7;
      margin: 0 0 18px;
    }

    .contact-tags {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 8px;
    }

    .contact-tag {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 12px;
      border-radius: 100px;
      background: var(--glass);
      border: 1px solid var(--border);
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--t2);
      transition: border-color 0.2s ease, transform 0.2s ease;
    }

    .contact-tag:hover {
      border-color: var(--border-hi);
      transform: translateY(-1px);
    }

    .contact-tag-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: rgb(var(--cb-r), var(--cb-g), var(--cb-b));
      box-shadow: 0 0 8px rgb(var(--cb-r), var(--cb-g), var(--cb-b));
      animation: cc-pulse-dot 1.8s ease-in-out infinite;
      transition: --cb-r 0.6s ease, --cb-g 0.6s ease, --cb-b 0.6s ease;
    }

    @keyframes cc-pulse-dot {

      0%,
      100% {
        opacity: 1
      }

      50% {
        opacity: 0.4
      }
    }

    .contact-form {
      display: flex;
      flex-direction: column;
      gap: 16px;
      text-align: left;
      margin-top: 30px;
    }

    .contact-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    @media (max-width: 560px) {
      .contact-row {
        grid-template-columns: 1fr;
      }
    }

    .contact-field {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .contact-label {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--t3);
    }

    .contact-input {
      width: 100%;
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 11px 14px;
      font-family: 'Inter', sans-serif;
      /* 16px avoids the iOS Safari auto-zoom-on-focus jank, same as .auth-input */
      font-size: 16px;
      color: var(--t1);
      outline: none;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
      touch-action: manipulation;
    }

    .contact-input::placeholder {
      color: var(--t3);
    }

    .contact-input:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--glow-a);
    }

    /* ── Icon-led inputs ── */
    .contact-input-wrap {
      position: relative;
    }

    .contact-input-wrap .contact-input {
      padding-left: 40px;
    }

    .contact-input-icon {
      position: absolute;
      left: 14px;
      top: 50%;
      transform: translateY(-50%);
      width: 16px;
      height: 16px;
      color: var(--t3);
      pointer-events: none;
      transition: color 0.2s ease;
    }

    .contact-input-wrap:focus-within .contact-input-icon {
      color: var(--accent);
    }

    .contact-input-wrap--area .contact-input-icon--area {
      top: 16px;
      transform: none;
    }

    /* ── Custom service dropdown ── */
    .cc-select {
      position: relative;
    }

    .cc-select-trigger {
      width: 100%;
      display: flex;
      align-items: center;
      gap: 12px;
      background: var(--glass);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 8px 14px;
      font-family: 'Inter', sans-serif;
      font-size: 15px;
      color: var(--t1);
      text-align: left;
      cursor: none;
      touch-action: manipulation;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }

    .cc-select.has-value .cc-select-trigger {
      border-color: rgba(var(--cb-r), var(--cb-g), var(--cb-b), 0.4);
    }

    .cc-select-trigger:hover {
      border-color: var(--border-hi);
    }

    .cc-select.open .cc-select-trigger,
    .cc-select-trigger:focus-visible {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--glow-a);
    }

    .cc-select-icon {
      flex: none;
      width: 28px;
      height: 28px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 8px;
      background: var(--glow-a);
      color: var(--accent);
      transition: background 0.2s ease, color 0.2s ease;
    }

    .cc-select-icon svg {
      width: 14px;
      height: 14px;
    }

    .cc-select-value {
      flex: 1;
      min-width: 0;
      color: var(--t3);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .cc-select-value.has-value {
      color: var(--t1);
    }

    .cc-select-chevron {
      flex: none;
      width: 14px;
      height: 14px;
      color: var(--t3);
      transition: transform 0.25s ease, color 0.2s ease;
    }

    .cc-select.open .cc-select-chevron {
      transform: rotate(180deg);
      color: var(--accent);
    }

    .cc-select-options {
      position: absolute;
      top: calc(100% + 8px);
      left: 0;
      right: 0;
      z-index: 40;
      margin: 0;
      padding: 6px;
      list-style: none;
      max-height: 182px;
      overflow-y: auto;
      scroll-behavior: smooth;
      border-radius: 14px;
      background: linear-gradient(160deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0) 100%), var(--surface);
      border: 1px solid var(--border-hi);
      box-shadow:
        0 18px 46px rgba(0, 0, 0, 0.45),
        inset 0 1px 1px rgba(255, 255, 255, 0.08);
      backdrop-filter: blur(30px) saturate(150%);
      -webkit-backdrop-filter: blur(30px) saturate(150%);
      opacity: 0;
      transform: translateY(-6px) scale(0.98);
      transform-origin: top center;
      pointer-events: none;
      transition: opacity 0.18s ease, transform 0.18s ease, mask-image 0.15s ease;
    }

    .cc-select-options.has-more-below {
      mask-image: linear-gradient(to bottom, #000 calc(100% - 30px), transparent 100%);
      -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 30px), transparent 100%);
    }

    [data-theme="light"] .cc-select-options {
      background: linear-gradient(160deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.75) 100%);
      box-shadow:
        0 18px 46px rgba(0, 0, 0, 0.12),
        inset 0 1px 1px rgba(255, 255, 255, 0.6);
    }

    .cc-select.open .cc-select-options {
      opacity: 1;
      transform: translateY(0) scale(1);
      pointer-events: auto;
    }

    .cc-select-options::-webkit-scrollbar {
      width: 6px;
    }

    .cc-select-options::-webkit-scrollbar-thumb {
      background: var(--border-hi);
      border-radius: 10px;
    }

    .cc-select-option {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 9px 10px;
      border-radius: 10px;
      cursor: none;
      transition: background 0.15s ease;
    }

    .cc-select-option.active,
    .cc-select-option:hover {
      background: var(--glow-a);
    }

    .cc-option-icon {
      flex: none;
      width: 30px;
      height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 9px;
      background: var(--glass);
      border: 1px solid var(--border);
      color: var(--t2);
      transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    }

    .cc-option-icon svg {
      width: 15px;
      height: 15px;
    }

    .cc-select-option.active .cc-option-icon,
    .cc-select-option:hover .cc-option-icon,
    .cc-select-option.selected .cc-option-icon {
      color: var(--accent);
      border-color: var(--accent);
      background: var(--glow-a);
    }

    .cc-option-text {
      flex: 1;
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .cc-option-title {
      font-family: 'Inter', sans-serif;
      font-size: 13px;
      font-weight: 600;
      color: var(--t1);
    }

    .cc-option-desc {
      font-family: 'Inter', sans-serif;
      font-size: 11px;
      color: var(--t3);
      line-height: 1.4;
    }

    .cc-option-check {
      flex: none;
      width: 14px;
      height: 14px;
      color: var(--accent);
      opacity: 0;
      transform: scale(0.6);
      transition: opacity 0.15s ease, transform 0.15s ease;
    }

    .cc-select-option.selected .cc-option-check {
      opacity: 1;
      transform: scale(1);
    }

    .cc-select.cc-select-error .cc-select-trigger {
      border-color: var(--accent3);
      animation: cc-shake 0.4s ease;
    }

    @keyframes cc-shake {

      0%,
      100% {
        transform: translateX(0);
      }

      25% {
        transform: translateX(-4px);
      }

      75% {
        transform: translateX(4px);
      }
    }

    .contact-textarea {
      min-height: 110px;
      resize: vertical;
      line-height: 1.6;
      font-size: 14px;
    }

    .contact-submit {
      position: relative;
      overflow: hidden;
      width: 100%;
      padding: 14px 0;
      border-radius: 10px;
      background: rgb(var(--cb-r), var(--cb-g), var(--cb-b));
      border: none;
      color: #0a0a0a;
      font-family: 'DM Sans', sans-serif;
      font-weight: 800;
      font-size: 12.5px;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      cursor: none;
      transition: transform 0.15s ease, opacity 0.2s ease,
        --cb-r 0.6s ease, --cb-g 0.6s ease, --cb-b 0.6s ease;
      margin-top: 4px;
    }

    .contact-submit::after {
      content: '';
      position: absolute;
      top: 0;
      left: -60%;
      width: 40%;
      height: 100%;
      background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.45), transparent);
      transform: skewX(-20deg);
      transition: left 0.55s ease;
      pointer-events: none;
    }

    .contact-submit:hover::after {
      left: 130%;
    }

    .contact-submit:hover {
      transform: scale(1.015);
    }

    .contact-submit.loading {
      opacity: 0.6;
      pointer-events: none;
    }

    .contact-result {
      text-align: center;
      font-family: 'Syne Mono', monospace;
      font-size: 10px;
      letter-spacing: 0.05em;
      margin: 0;
      min-height: 14px;
    }

    .contact-result.success {
      color: var(--accent);
    }

    .contact-result.error {
      color: var(--accent3);
    }

/* ── Style Block 7 ── */
.claude-badge-section {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 28px 0 44px;
    }
    .claude-badge-wrap {
      width: 380px;
      max-width: 92vw;
      opacity: 0.72;
      transition: opacity 0.35s ease;
    }
    .claude-badge-wrap:hover {
      opacity: 1;
    }
    @media (prefers-reduced-motion: reduce) {
      .claude-badge-wrap svg * {
        animation: none !important;
      }
    }

/* ── Style Block 8 ── */
.bottom-wordmark {
      width: 100%;
      overflow: hidden;
      background: var(--bg);
      padding: 48px 0 0;
      user-select: none;
    }
    .bw-eyebrow {
      display: flex;
      align-items: center;
      gap: 18px;
      padding: 0 48px;
      font-family: 'DM Sans', monospace, sans-serif;
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.08em;
      color: var(--t3);
      margin-bottom: 8px;
      width: 100%;
      box-sizing: border-box;
    }
    .bw-line {
      flex: 1;
      height: 1px;
      background: var(--border);
    }
    .bw-name-wrap {
      width: 100%;
      overflow: hidden;
      box-sizing: border-box;
      padding: 0;
      line-height: 0;
      text-align: center;
    }
    .bw-name {
      font-family: 'Inter', sans-serif;
      font-weight: 800;
      line-height: 0.82;
      color: var(--t1);
      letter-spacing: -0.03em;
      white-space: nowrap;
      display: inline-block;
    }

/* ── Style Block 9 ── */
/* Sakana character widget — too large for phone screens, so it's hidden
       on mobile and only appears from tablet width (820px) upward. */
    #sakana-widget {
      display: none;
    }

    @media (min-width: 820px) {
      #sakana-widget {
        display: block;
      }
    }

/* ── Style Block 10 ── */
/* ── MODAL OVERLAY ── */
    #exit-modal,
    #exit-modal * {
      cursor: none;
    }

    #exit-modal {
      --exit-accent: 184, 255, 0;
      /* default: lime, same as Main Site pill */
      position: fixed;
      inset: 0;
      z-index: 99999;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.35s ease;
    }

    #exit-modal.open {
      opacity: 1;
      pointer-events: all;
    }

    #exit-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0.72);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }

    /* ── CARD ── */
    #exit-card {
      position: relative;
      z-index: 1;
      width: 100%;
      max-width: 420px;
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0.01) 100%);
      border: 1px solid rgba(255, 255, 255, 0.12);
      border-radius: 22px;
      padding: 22px 26px 20px;
      box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.15),
        0 32px 80px rgba(0, 0, 0, 0.6);
      transform: translateY(24px) scale(0.97);
      transition: transform 0.38s cubic-bezier(0.34, 1.56, 0.64, 1);
      overflow: hidden;
    }

    #exit-modal.open #exit-card {
      transform: translateY(0) scale(1);
    }

    /* accent glow behind card */
    #exit-card-glow {
      position: absolute;
      inset: -60px;
      background: radial-gradient(ellipse at 50% 0%, rgba(var(--exit-accent), 0.08) 0%, transparent 70%);
      pointer-events: none;
    }

    /* ── Performance mode fallback ──
       #exit-card's background is an almost-invisible white gradient by
       design — it only looks like glass because #exit-backdrop blurs
       everything behind it. When low-perf strips backdrop-filter
       site-wide, that blur disappears and the card becomes see-through.
       Give both an opaque fallback here, same pattern as .glass-card. */
    body.low-perf #exit-backdrop {
      background: rgba(0, 0, 0, 0.85) !important;
    }

    body.low-perf #exit-card {
      background: var(--surface) !important;
      border: 1px solid var(--border-hi) !important;
      box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4) !important;
    }

    body.low-perf #exit-card-glow {
      opacity: 0.5 !important;
    }

    /* ── TOP BAR ── */
    #exit-topbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 22px;
    }

    .exit-mac {
      display: flex;
      gap: 6px;
    }

    .exit-mac-dot {
      width: 10px;
      height: 10px;
      border-radius: 50%;
    }

    #exit-badge {
      font-family: 'Syne Mono', monospace;
      font-size: 7.5px;
      letter-spacing: 0.22em;
      color: rgba(255, 255, 255, 0.35);
      text-transform: uppercase;
    }

    /* ── ICON ── */
    #exit-icon-wrap {
      width: 48px;
      height: 48px;
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.08);
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 18px;
      color: rgb(var(--exit-accent));
    }

    #exit-icon {
      width: 22px;
      height: 22px;
    }

    /* ── TEXT ── */
    #exit-eyebrow {
      font-family: 'Syne Mono', monospace;
      font-size: 8.5px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.35);
      margin: 0 0 8px;
    }

    #exit-modal-title {
      font-family: 'DM Sans', sans-serif;
      font-size: 20px;
      font-weight: 800;
      color: #fff;
      line-height: 1.25;
      margin: 0 0 12px;
      letter-spacing: 0.01em;
    }

    #exit-dest {
      color: rgb(var(--exit-accent));
      font-size: 22px;
    }

    #exit-sub {
      font-family: 'Inter', sans-serif;
      font-size: 11.5px;
      line-height: 1.75;
      color: rgba(255, 255, 255, 0.4);
      margin: 0;
    }

    /* ── DIVIDER ── */
    #exit-divider {
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
      margin: 20px 0;
    }

    /* ── ACTIONS ── */
    #exit-actions {
      display: flex;
      gap: 10px;
    }

    #exit-actions button {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      padding: 11px 16px;
      border-radius: 12px;
      border: none;
      font-family: 'DM Sans', sans-serif;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.06em;
      cursor: pointer;
      transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease, box-shadow 0.2s ease;
    }

    #exit-actions button svg {
      width: 13px;
      height: 13px;
    }

    #exit-actions button:hover {
      transform: scale(1.03);
    }

    #exit-actions button:active {
      transform: scale(0.97);
    }

    #exit-cancel {
      background: rgba(255, 255, 255, 0.06);
      color: rgba(255, 255, 255, 0.55);
      border: 1px solid rgba(255, 255, 255, 0.08) !important;
    }

    #exit-cancel:hover {
      background: rgba(255, 255, 255, 0.10);
      color: rgba(255, 255, 255, 0.8);
    }

    #exit-confirm {
      background: rgb(var(--exit-accent));
      color: #000;
      box-shadow: 0 0 24px rgba(var(--exit-accent), 0.25);
    }

    #exit-confirm:hover {
      box-shadow: 0 0 36px rgba(var(--exit-accent), 0.45);
    }

    /* ── KEYBOARD HINT ── */
    #exit-hint {
      font-family: 'Syne Mono', monospace;
      font-size: 8px;
      letter-spacing: 0.14em;
      color: rgba(255, 255, 255, 0.2);
      text-align: center;
      margin: 14px 0 0;
    }

    #exit-hint kbd {
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.12);
      border-radius: 4px;
      padding: 1px 5px;
      font-family: inherit;
      font-size: inherit;
    }

    /* light mode */
    [data-theme="light"] #exit-card {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0.6) 100%);
      border-color: rgba(0, 0, 0, 0.08);
      box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.9), 0 32px 80px rgba(0, 0, 0, 0.15);
    }

    [data-theme="light"] #exit-modal-title {
      color: #111;
    }

    [data-theme="light"] #exit-badge,
    [data-theme="light"] #exit-eyebrow,
    [data-theme="light"] #exit-sub,
    [data-theme="light"] #exit-hint {
      color: rgba(0, 0, 0, 0.4);
    }

    [data-theme="light"] #exit-cancel {
      background: rgba(0, 0, 0, 0.05);
      color: rgba(0, 0, 0, 0.5);
      border-color: rgba(0, 0, 0, 0.08) !important;
    }

    [data-theme="light"] #exit-cancel:hover {
      background: rgba(0, 0, 0, 0.09);
      color: rgba(0, 0, 0, 0.8);
    }

    [data-theme="light"] #exit-icon-wrap {
      background: rgba(0, 0, 0, 0.04);
      border-color: rgba(0, 0, 0, 0.07);
    }

    [data-theme="light"] #exit-hint kbd {
      background: rgba(0, 0, 0, 0.06);
      border-color: rgba(0, 0, 0, 0.1);
    }

