/* Glide Landing Page Styling */
/* Inspired by the brand architecture, serif-sans contrast, and warm cream light-mode palette of Wispr Flow (wisprflow.ai) */

/* Cascade Layers Definition */
@layer reset, base, theme, components, ornaments, utilities;

@layer reset {
  *, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  
  html {
    scroll-behavior: auto !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  html.lenis, html.lenis body {
    height: auto;
  }

  .lenis-smooth {
    scroll-behavior: auto !important;
  }

  .lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
  }

  .lenis-stopped {
    overflow: hidden;
  }

  .lenis-scrolling iframe {
    pointer-events: none;
  }

  html {
    background-color: var(--bg-base);
  }

  body {
    background: var(--bg-base);
    color: var(--text-main);
    font-family: var(--font-sans);
    overflow-x: hidden;
    line-height: 1.5;
    position: relative;
    overscroll-behavior-y: none;
  }

  /* WebGL Background Canvas */
  @keyframes canvasFadeIn {
    0% { opacity: 0; }
    100% { opacity: 1; }
  }

  #webgl-canvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
    opacity: 0;
    animation: canvasFadeIn 2.5s ease-in-out forwards;
  }

  img, svg {
    display: block;
    max-width: 100%;
  }

  button, input, select, textarea {
    font: inherit;
    color: inherit;
    background: none;
    border: none;
    outline: none;
  }

  a {
    color: inherit;
    text-decoration: none;
  }
}

@layer base {
  :root {
    /* Design Tokens - Typography (Wispr Flow Contrast: EB Garamond + Figtree) */
    --font-sans: 'Figtree', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-display: 'EB Garamond', Garamond, Georgia, serif;
    --font-mono: 'JetBrains Mono', monospace;

    /* Design Tokens - Base Colors (Deep Dark Theme & Premium White/Off-White Texts) */
    --bg-base: #050508;
    --bg-surface: #101015;
    --bg-surface-glass: rgba(10, 10, 15, 0.7);
    --border-color: rgba(255, 255, 255, 0.06);
    --border-color-glow: rgba(255, 255, 255, 0.15);
    
    --text-main: #ffffff;
    --text-subtle: rgba(255, 255, 255, 0.8);
    --text-muted: rgba(255, 255, 255, 0.6);

    /* Primary Accent Color Choices (Emerald/Teal, Soft Clay, Warm Sage, Ochre) */
    --primary-blue: #044f46; /* Deep forest emerald from wisprflow.ai */
    --primary-red: #c93b55; /* Soft clay-red */
    --primary-green: #2a7f76; /* Sage-green */
    --primary-yellow: #a87920; /* Soft ochre-yellow */

    /* Default color mapping values */
    --color-primary: var(--primary-blue);
    --color-primary-rgb: 4, 79, 70;
    
    --transition-fast: 0.15s cubic-bezier(0.16, 1, 0.3, 1);
    --transition-normal: 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    --transition-slow: 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  }

  /* Body attribute matching for theme color switcher */
  body[data-cursor-color="blue"] {
    --color-primary: var(--primary-blue);
    --color-primary-rgb: 4, 79, 70;
  }
  body[data-cursor-color="red"] {
    --color-primary: var(--primary-red);
    --color-primary-rgb: 201, 59, 85;
  }
  body[data-cursor-color="green"] {
    --color-primary: var(--primary-green);
    --color-primary-rgb: 42, 127, 118;
  }
  body[data-cursor-color="yellow"] {
    --color-primary: var(--primary-yellow);
    --color-primary-rgb: 168, 121, 32;
  }

  /* Typography Settings */
  h1, h2, h3, h4 {
    font-family: var(--font-display);
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.1;
  }

  h1 { font-size: clamp(2.75rem, 1.5rem + 5vw, 4.5rem); text-wrap: balance; }
  h2 { font-size: clamp(2.25rem, 1.3rem + 3vw, 3rem); text-wrap: balance; }
  h3 { font-size: clamp(1.35rem, 1rem + 1vw, 1.85rem); }
  h4 { font-size: 1.1rem; }

  h1 em, h2 em, h3 em, h4 em {
    font-style: italic;
    font-family: 'Caveat', cursive;
    font-weight: 700;
    font-size: 1.25em;
  }

  p {
    font-size: 1.05rem;
    color: var(--text-subtle);
    text-wrap: pretty;
  }

  kbd {
    background: rgba(0, 0, 0, 0.03);
    border-radius: 4px;
    padding: 0.15em 0.4em;
    font-size: 0.85em;
    font-family: var(--font-mono);
    border: 1px solid rgba(0, 0, 0, 0.08);
  }
}

@layer theme {
  /* Layout containers */
  .container {
    width: 100%;
    max-width: 1000px;
    margin-inline: auto;
    padding-inline: 2rem;
  }

  /* Custom Scrollbar */
  body::-webkit-scrollbar {
    width: 8px;
  }
  body::-webkit-scrollbar-track {
    background: var(--bg-base);
  }
  body::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 4px;
  }
}

@layer components {
  /* Button Styles (Tactile borders, rounded corners) */
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-family: var(--font-sans);
    font-weight: 500;
    border-radius: 8px;
    padding: 0.65rem 1.4rem;
    transition: all var(--transition-normal);
    position: relative;
    overflow: hidden;
  }



  .btn:hover span {
    background: linear-gradient(90deg, #121210 0%, #121210 35%, #a855f7 50%, #121210 65%, #121210 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: text-shimmer 0.8s linear forwards;
  }

  @keyframes text-shimmer {
    0% {
      background-position: 150% center;
    }
    100% {
      background-position: -50% center;
    }
  }

  .btn-primary {
    background: #ffffff;
    color: #121210;
    box-shadow: 
      0 4px 12px rgba(0, 0, 0, 0.05),
      0 8px 20px rgba(0, 0, 0, 0.06),
      inset 0 1px 0 rgba(255, 255, 255, 0.4);
  }

  .btn-primary:hover:not(:disabled) {
    transform: translateY(-4px);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 
      0 6px 15px rgba(0, 0, 0, 0.08),
      0 12px 30px rgba(0, 0, 0, 0.1),
      inset 0 1px 0 rgba(255, 255, 255, 0.5);
  }

  .btn-primary:active:not(:disabled) {
    transform: translateY(0);
  }

  .btn-secondary {
    background: transparent;
    color: #ffffff;
    border: 1.5px solid #ffffff;
    box-shadow: 
      0 2px 6px rgba(0, 0, 0, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.1);
  }

  .btn-secondary:hover:not(:disabled) {
    transform: translateY(-4px);
    background: #ffffff;
    color: #121210;
    border-color: #ffffff;
    box-shadow: 
      0 6px 15px rgba(0, 0, 0, 0.08),
      0 12px 30px rgba(0, 0, 0, 0.1),
      inset 0 1px 0 rgba(255, 255, 255, 0.3);
  }

  .btn-sm {
    padding: 0.4rem 1.1rem;
    font-size: 0.85rem;
  }

  .btn-lg {
    padding: 0.8rem 1.8rem;
    font-size: 1rem;
  }

  .btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
  }

  .badge {
    display: inline-block;
    padding: 0.3em 0.8em;
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--color-primary);
    background: rgba(var(--color-primary-rgb), 0.05);
    border: 1px solid rgba(var(--color-primary-rgb), 0.15);
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 1rem;
  }

  .site-header {
    position: fixed;
    top: 0;
    bottom: auto;
    left: 0;
    width: 100%;
    z-index: 1000;
    background: transparent;
    border-bottom: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    pointer-events: none;
  }

  .header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 64px;
    width: 782px;
    max-width: 90%;
    margin-inline: auto;
    padding-inline: 2.5rem;
    pointer-events: auto;
    position: relative;
    box-sizing: border-box;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='782' height='64' viewBox='0 0 782 64'%3E%3Cpath d='M 0 0 A 16 16 0 0 1 16 16 L 16 48 A 16 16 0 0 0 32 64 L 750 64 A 16 16 0 0 0 766 48 L 766 16 A 16 16 0 0 1 782 0 Z' fill='rgba%28255, 255, 255, 0.95%29' stroke='none'/%3E%3Cpath d='M 0 0 A 16 16 0 0 1 16 16 L 16 48 A 16 16 0 0 0 32 64 L 750 64 A 16 16 0 0 0 766 48 L 766 16 A 16 16 0 0 1 782 0' fill='none' stroke='rgba%280, 0, 0, 0.08%29' stroke-width='1.5'/%3E%3C/svg%3E");
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;

    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='782' height='64' viewBox='0 0 782 64'%3E%3Cpath d='M 0 0 A 16 16 0 0 1 16 16 L 16 48 A 16 16 0 0 0 32 64 L 750 64 A 16 16 0 0 0 766 48 L 766 16 A 16 16 0 0 1 782 0 Z' fill='black'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='782' height='64' viewBox='0 0 782 64'%3E%3Cpath d='M 0 0 A 16 16 0 0 1 16 16 L 16 48 A 16 16 0 0 0 32 64 L 750 64 A 16 16 0 0 0 766 48 L 766 16 A 16 16 0 0 1 782 0 Z' fill='black'/%3E%3C/svg%3E");
    mask-size: 100% 100%;
    -webkit-mask-size: 100% 100%;

    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }

  @media (min-width: 769px) {
    .header-container {
      transition: width 0.35s cubic-bezier(0.16, 1, 0.3, 1), height 0.35s cubic-bezier(0.16, 1, 0.3, 1), padding-inline 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .header-container:hover {
      width: calc(782px * 1.05);
      height: calc(64px * 1.05);
      padding-inline: 3rem;
    }
  }

  .site-header .btn-primary,
  .site-header .btn-download {
    background: #0088cc !important;
    color: #ffffff !important;
    font-weight: 700;
    box-shadow: 
      0 4px 14px rgba(0, 136, 204, 0.45),
      inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
    transition: transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
  }

  .site-header .btn-primary:hover:not(:disabled),
  .site-header .btn-download:hover:not(:disabled) {
    background: #0099e6 !important;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 
      0 6px 20px rgba(0, 153, 230, 0.6),
      inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;
  }

  .logo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 1.25rem;
    color: #121210;
  }

  .logo svg, .logo img {
    color: #121210;
    display: block;
    object-fit: contain;
  }

  .nav-links {
    display: flex;
    gap: 2rem;
  }

  .nav-links a {
    font-size: 0.85rem;
    font-weight: 500;
    color: rgba(18, 18, 16, 0.65);
    transition: color var(--transition-fast);
  }

  .nav-links a:hover {
    color: #121210;
  }

  .download-toast {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    background: var(--bg-base);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 1rem 1.5rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    transform: translateY(150%) scale(0.95);
    opacity: 0;
    transition: all var(--transition-normal);
    z-index: 1100;
  }

  .download-toast.show {
    transform: translateY(0) scale(1);
    opacity: 1;
  }

  .toast-content {
    display: flex;
    align-items: center;
    gap: 1rem;
  }

  .toast-icon {
    font-size: 1.5rem;
  }

  .toast-content strong {
    display: block;
    font-size: 0.9rem;
    color: var(--text-main);
    margin-bottom: 0.15rem;
  }

  .toast-content p {
    font-size: 0.8rem;
    color: var(--text-subtle);
  }
}

@layer ornaments {
  .vertical-guides {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 1200px;
    max-width: calc(100% - 4rem);
    height: 100%;
    pointer-events: none;
    z-index: 1;
  }

  .guide-line {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(18, 18, 16, 0.02);
  }

  .guide-line.left {
    left: 0;
  }

  .guide-line.right {
    right: 0;
  }
}

@layer utilities {
  @property --border-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
  }

  .page-container {
    position: relative;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding-inline: 2rem;
    box-sizing: border-box;
    z-index: 2;
  }

  /* Centered Hero Section */
  .hero-section {
    min-height: 75vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    max-width: 800px;
    margin-inline: auto;
    padding-top: 140px;
    padding-bottom: 60px;
    box-sizing: border-box;
    color: var(--text-main);
  }

  .hero-title {
    font-family: var(--font-sans);
    font-size: clamp(2.5rem, 1rem + 4vw, 3.75rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin-bottom: 1.5rem;
    text-wrap: balance;
  }

  .hero-title em {
    font-family: 'Caveat', cursive;
    font-style: italic;
    font-weight: 700;
    font-size: 1.25em;
  }

  .hero-subtitle {
    font-family: var(--font-sans);
    font-size: clamp(1.05rem, 0.8rem + 1vw, 1.25rem);
    line-height: 1.6;
    color: var(--text-subtle);
    max-width: 600px;
    margin-bottom: 2.5rem;
    text-wrap: pretty;
  }

  .hero-cta {
    display: flex;
    justify-content: center;
  }

  /* Features Grid Section */
  .features-section {
    width: 100%;
    max-width: 1000px;
    padding-block: 70px;
    margin-inline: auto;
    box-sizing: border-box;
  }

  /* Conversion / Features Section styling */
  .features-section {
    padding: 8rem 0 12rem 0;
    position: relative;
    z-index: 2;
  }

  .conversion-container {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 clamp(1rem, 4vw, 4rem);
    text-align: center;
  }

  .conversion-header {
    font-family: var(--font-sans);
    font-size: clamp(2rem, 4.5vw, 3.8rem);
    font-weight: 700;
    color: #ffffff;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin-bottom: 4.5rem;
  }

  .conversion-header em {
    font-family: 'Caveat', cursive;
    font-style: normal;
    font-weight: 600;
    font-size: 1.15em;
    color: #ffffff;
    display: inline-block;
  }

  /* Editorial layout (pure premium text, no borders/cards) */
  .editorial-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    text-align: left;
    margin-bottom: 5.5rem;
  }

  .editorial-item h3 {
    font-family: var(--font-sans);
    font-size: 1.4rem;
    font-weight: 600;
    color: #ffffff;
    margin: 0 0 1.2rem 0;
    letter-spacing: -0.01em;
  }

  .editorial-item p {
    font-family: var(--font-sans);
    font-size: 1.08rem;
    line-height: 1.6;
    color: var(--text-subtle);
    margin: 0;
  }

  .editorial-kbd {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 4px;
    padding: 0.15rem 0.4rem;
    font-size: 0.9rem;
    font-family: var(--font-mono);
    color: #ffffff;
  }

  /* Big Conversion CTA Button */
  .conversion-cta {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
  }

  .conversion-download-btn {
    display: inline-flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.1rem 2.6rem;
    background: #ffffff;
    color: #000000;
    border-radius: 50px;
    text-decoration: none;
    font-family: var(--font-sans);
    font-weight: 600;
    box-shadow: 0 4px 20px rgba(255, 255, 255, 0.15), 0 20px 40px rgba(0, 0, 0, 0.2);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
  }

  .conversion-download-btn:hover {
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 8px 30px rgba(255, 255, 255, 0.3), 0 25px 50px rgba(0, 0, 0, 0.25);
    background: #ffffff;
    color: #000000;
  }

  .conversion-download-btn:hover .btn-main-text {
    background: linear-gradient(90deg, #000000 0%, #000000 35%, #a855f7 50%, #000000 65%, #000000 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: text-shimmer 0.8s linear forwards;
  }

  .conversion-download-btn:active {
    transform: translateY(-1px) scale(1.0);
  }

  .conversion-download-btn .btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #000000;
    transition: transform 0.3s ease;
  }

  .conversion-download-btn:hover .btn-icon {
    transform: translateY(2px);
  }

  .btn-text-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    line-height: 1.25;
  }

  .btn-main-text {
    font-size: 1.15rem;
    font-weight: 700;
    color: #000000;
  }

  .btn-sub-text {
    font-size: 0.8rem;
    font-weight: 500;
    color: rgba(0, 0, 0, 0.5);
    margin-top: 0.15rem;
  }

  /* Premium Glassmorphic Cards with Border Glow Animation */
  .glass-card {
    position: relative;
    border-radius: 20px;
    background: rgba(5, 5, 8, 0.08);
    backdrop-filter: blur(4px) saturate(120%);
    -webkit-backdrop-filter: blur(4px) saturate(120%);
    padding: 3rem 2.5rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.12);
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.5s ease, box-shadow 0.5s ease;
  }

  .glass-card:hover {
    transform: translateY(-6px);
    border-color: rgba(255, 255, 255, 0.15);
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.15);
  }

  /* Rotating Border Glow outline using conic gradient with dual border worm animation */
  .glass-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 20px;
    padding: 1.5px;
    background: conic-gradient(
      from var(--border-angle),
      rgba(255, 255, 255, 0.75) 0deg,
      transparent 60deg,
      transparent 180deg,
      rgba(255, 255, 255, 0.75) 180deg,
      transparent 240deg,
      transparent 360deg
    );
    -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;
    opacity: 0;
    transition: opacity 0.5s ease;
    animation: rotate-border 7.2s linear infinite;
  }

  .glass-card:hover::before {
    opacity: 1;
  }

  @keyframes rotate-border {
    from {
      --border-angle: 360deg;
    }
    to {
      --border-angle: 0deg;
    }
  }

  .glass-card h3 {
    font-family: var(--font-sans);
    font-size: 1.85rem;
    font-weight: 700;
    color: var(--text-main);
    margin: 0 0 2.2rem 0; /* Clear 2.2rem spacing below title inside bento cards */
    letter-spacing: -0.01em;
  }

  .glass-card p {
    font-family: var(--font-sans);
    font-size: 1.15rem; /* Ever so slightly larger description text */
    line-height: 1.6;
    color: var(--text-subtle);
    margin: 0;
  }

  /* Badge labels inside cards */
  .glass-card .badge {
    align-self: flex-start;
    font-family: var(--font-mono);
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--color-primary);
    background: rgba(var(--color-primary-rgb), 0.08);
    border: 1px solid rgba(var(--color-primary-rgb), 0.15);
    border-radius: 4px;
    padding: 0.25rem 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
  }

  /* Responsive styling */
  @media (max-width: 768px) {
    .site-header {
      background: transparent;
      border-bottom: none;
      pointer-events: auto;
    }
    
    .header-container {
      width: auto;
      margin-inline: 1rem;
      height: 48px;
      margin-top: 10px;
      border-radius: 24px;
      background: rgba(255, 255, 255, 0.75);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
      border: 1px solid rgba(255, 255, 255, 0.35);
      box-shadow: 
        0 4px 20px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.5);
      background-image: none;
      mask-image: none;
      -webkit-mask-image: none;
      padding-inline: 1rem;
    }

    .nav-links {
      display: none;
    }

    .hero-section {
      padding-top: 100px;
      min-height: 60vh;
    }

    .hero-subtitle {
      max-width: 100%;
      padding-inline: 0.5rem;
    }

    .capabilities-section {
      padding-block: 50px;
    }

    .capabilities-header {
      margin-bottom: 2rem;
    }

    .features-section {
      padding-block: 60px;
    }

    .editorial-grid {
      grid-template-columns: 1fr;
      gap: 2.5rem;
    }

    .glass-card {
      padding: 2.25rem 1.75rem;
    }

    .dock-container {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1.25rem;
      width: 100%;
    }
    
    .dock-container > .dock-text:first-child,
    .dock-container > .dock-text:last-child {
      text-align: center;
      white-space: normal;
      line-height: 1.45;
    }
    
    .dock-icon-wrapper {
      order: -1;
    }
  }

  @media (max-width: 480px) {
    .hero-cta {
      flex-direction: column;
      width: 100%;
      align-items: stretch;
      gap: 0.75rem !important;
    }
    
    .hero-cta .btn {
      width: 100%;
      justify-content: center;
    }
  }
}

@layer components {
  .dock-footer {
    position: relative;
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    display: flex;
    justify-content: center;
    padding-top: 80px;
    padding-bottom: 60px;
    pointer-events: auto;
    z-index: 10;
  }

  .dock-container {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 3rem;
    background: none;
    border: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding: 0;
    box-shadow: none;
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
  }

  .dock-container > .dock-text:first-child {
    text-align: right;
  }

  .dock-container > .dock-text:last-child {
    text-align: left;
  }

  .dock-text {
    font-family: var(--font-sans);
    font-size: 0.85rem;
    font-weight: 600;
    color: #ffffff;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    user-select: none;
    white-space: nowrap;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
  }

  .dock-icon-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
  }

  .dock-icon {
    width: 44px;
    height: 44px;
    cursor: pointer;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.2));
  }

  .dock-icon:hover {
    transform: scale(1.2) translateY(-6px);
  }

  .glide-dock-svg, .glide-dock-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
  }

  .features-section {
    padding-bottom: 40px;
  }

  /* Capabilities Section */
  .capabilities-section {
    width: 100%;
    max-width: 1000px;
    padding-block: 80px;
    margin-inline: auto;
    box-sizing: border-box;
    color: var(--text-main);
  }

  .capabilities-header {
    font-family: var(--font-sans);
    font-size: clamp(1.8rem, 1rem + 2vw, 2.5rem);
    font-weight: 700;
    text-align: center;
    margin-bottom: 3.5rem;
  }

  .capabilities-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 2.5rem;
    width: 100%;
  }

  .capability-col h4 {
    font-family: var(--font-sans);
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: #ffffff;
    letter-spacing: -0.02em;
  }

  .capability-col p {
    font-family: var(--font-sans);
    font-size: 1.1rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.75);
  }

  /* Hotkey & Notch Demo Section */
  .hotkey-section {
    width: 100%;
    max-width: 1000px;
    padding-block: 60px;
    margin-inline: auto;
    box-sizing: border-box;
  }

  .hotkey-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 2.5rem;
    align-items: center;
    width: 100%;
  }

  /* Combined class style */

  .key-desc {
    font-family: var(--font-sans);
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--text-subtle);
    margin-bottom: 1.5rem;
  }

  .keyboard-trigger {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  .key-cap {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 0.65rem 1.25rem;
    font-family: var(--font-mono);
    font-size: 0.95rem;
    font-weight: 600;
    color: #ffffff;
    box-shadow: 
      0 4px 0 rgba(255, 255, 255, 0.08), /* 3D keycap ridge */
      0 6px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.1s cubic-bezier(0.16, 1, 0.3, 1);
    cursor: pointer;
    user-select: none;
    position: relative;
    top: 0;
  }

  .key-cap:active, .key-cap.active {
    background: rgba(255, 255, 255, 0.95);
    color: #121210;
    border-color: #ffffff;
    box-shadow: 
      0 1px 0 rgba(255, 255, 255, 0.04),
      0 2px 5px rgba(0, 0, 0, 0.1);
    transform: translateY(3px); /* 3D mechanical bump press */
  }

  .key-plus {
    font-family: var(--font-sans);
    font-size: 1.25rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.4);
  }

  /* Dynamic Minimal Audiogram Card */
  .audiogram-demo-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 200px;
    box-sizing: border-box;
    background: none !important;
    border: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
  }

  .audiogram-desc {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.6);
    margin-bottom: 2rem;
    transition: color 0.3s ease;
  }

  .audiogram-demo-card.listening .audiogram-desc {
    color: #ffffff;
  }

  .audiogram-container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100px;
    width: 100%;
    margin-top: auto;
  }

  /* Waveform SVG line-art styling */
  .waveform-svg {
    display: block;
    width: 100%;
    max-width: 280px;
    height: auto;
    overflow: visible;
  }

  .waveform-svg line,
  .waveform-svg path {
    stroke: rgba(255, 255, 255, 0.12);
    stroke-width: 3.25;
    fill: none;
    transition: stroke 0.35s cubic-bezier(0.16, 1, 0.3, 1), stroke-width 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
  }

  .waveform-svg .wave-line {
    opacity: 0;
    transform: scaleY(0);
    transform-origin: center;
    transition: opacity 0.35s ease, transform 0.35s ease;
  }

  .listening .waveform-svg .wave-baseline {
    opacity: 0;
    stroke-width: 1.5;
  }

  .listening .waveform-svg .wave-line {
    opacity: 0.85;
    transform: scaleY(1);
    stroke: rgba(245, 245, 247, 0.95);
    stroke-width: 4.75;
  }

  @keyframes voiceWave1 {
    0% { transform: scaleY(0.4) skewX(-2deg); opacity: 0.6; }
    50% { transform: scaleY(1.3) skewX(2deg); opacity: 0.95; filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.3)); }
    100% { transform: scaleY(0.4) skewX(-2deg); opacity: 0.6; }
  }

  @keyframes voiceWave2 {
    0% { transform: scaleY(1.2) skewX(3deg); opacity: 0.9; }
    50% { transform: scaleY(0.3) skewX(-3deg); opacity: 0.5; }
    100% { transform: scaleY(1.2) skewX(3deg); opacity: 0.9; }
  }

  @keyframes voiceWave3 {
    0% { transform: scaleY(0.2); opacity: 0.4; }
    50% { transform: scaleY(1.5); opacity: 0.95; filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.35)); }
    100% { transform: scaleY(0.2); opacity: 0.4; }
  }

  .listening .waveform-svg .wave-1 {
    animation: voiceWave1 1.4s infinite ease-in-out;
  }

  .listening .waveform-svg .wave-2 {
    animation: voiceWave2 1.8s infinite ease-in-out;
  }

  .listening .waveform-svg .wave-3 {
    animation: voiceWave3 1.1s infinite ease-in-out;
  }

  /* Scroll Reveal Section (Vercel-style Masked Text Reveal) */
  .scroll-reveal-section {
    position: relative;
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: visible;
    box-sizing: border-box;
  }

  .reveal-viewport {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    padding-inline: clamp(1rem, 4vw, 4rem);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 3.5rem;
    height: 78vh;
    overflow: visible;
  }

  .reveal-line {
    font-family: Impact, 'Arial Narrow', sans-serif;
    font-size: clamp(2rem, 5.2vw, 5.8rem);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: 0.01em;
    color: #ffffff;
    will-change: transform, opacity;
    white-space: nowrap;
    padding-right: 0.3em;
    display: inline-block;
    transform: scaleY(1.35);
    transform-origin: left bottom;
    text-align: left;
  }

  /* Responsive tweaks for new sections */
  @media (max-width: 768px) {
    .reveal-line {
      white-space: normal;
      text-align: left;
      font-size: clamp(2rem, 11vw, 3rem);
    }
    
    .capabilities-section {
      padding-inline: 1.5rem;
    }

    .capabilities-grid {
      grid-template-columns: 1fr;
      gap: 3rem;
    }
    
    .hotkey-grid {
      grid-template-columns: 1fr;
      gap: 2rem;
    }
  }

  /* Video Modal Popup styling */
  .video-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .video-modal.active {
    display: flex;
    opacity: 1;
  }

  .video-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 5, 8, 0.85);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }

  .video-modal-content {
    position: relative;
    width: 90%;
    max-width: 800px;
    aspect-ratio: 16/9;
    background: #000000;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    overflow: hidden;
    transform: scale(0.95);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 2001;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.7);
  }

  .video-modal.active .video-modal-content {
    transform: scale(1);
  }

  .video-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: rgba(0, 0, 0, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    cursor: pointer;
    z-index: 10;
    transition: all 0.2s ease;
  }

  .video-modal-close:hover {
    background: rgba(255, 255, 255, 0.15);
    transform: scale(1.05);
  }

  .video-player-container {
    width: 100%;
    height: 100%;
    background: #000000;
  }

  #demo-video-player {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }

  /* Bento Grid Section */
  .bento-section {
    width: 100%;
    max-width: 1000px;
    padding-top: 160px;
    padding-bottom: 100px;
    margin-inline: auto;
    box-sizing: border-box;
    color: var(--text-main);
  }

  .bento-header {
    font-family: var(--font-sans);
    font-size: clamp(1.8rem, 1rem + 2vw, 2.5rem);
    font-weight: 700;
    text-align: center;
    margin-bottom: 0.75rem;
  }

  .bento-subtitle {
    font-family: var(--font-sans);
    font-size: clamp(0.95rem, 0.8rem + 0.5vw, 1.15rem);
    text-align: center;
    color: var(--text-subtle);
    max-width: 600px;
    margin-inline: auto;
    margin-bottom: 4rem;
    text-wrap: pretty;
  }

  .bento-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    width: 100%;
  }

  .bento-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 250px;
    padding: 1.5rem 1.5rem;
    position: relative;
    overflow: hidden;
  }

  .bento-card.col-span-2 {
    grid-column: span 2;
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    align-items: center;
    gap: 2.5rem;
  }



  .bento-diagram {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 130px;
    position: relative;
  }

  /* SVG Line Art Styling */
  .bento-diagram svg {
    display: block;
    width: 100%;
    max-width: 365px;
    height: auto;
    overflow: visible;
  }

  .bento-diagram svg path,
  .bento-diagram svg circle,
  .bento-diagram svg ellipse,
  .bento-diagram svg line,
  .bento-diagram svg rect {
    stroke: rgba(255, 255, 255, 0.25);
    stroke-width: 3.25;
    fill: none;
    transition: stroke 0.35s cubic-bezier(0.16, 1, 0.3, 1), stroke-width 0.35s cubic-bezier(0.16, 1, 0.3, 1), filter 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .bento-diagram svg .accent-line {
    stroke: rgba(255, 255, 255, 0.55);
    stroke-width: 3.25;
  }

  .bento-diagram svg .speed-needle {
    transform-origin: 80px 85px;
    transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .bento-card:hover .speed-needle {
    transform: rotate(56deg);
  }

  /* Hand Drawn Highlighter Circle Transition properties */
  .bento-diagram svg .hand-drawn-circle {
    stroke-dasharray: 380;
    stroke-dashoffset: 380;
    transition: stroke-dashoffset 1.8s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .bento-card:hover .hand-drawn-circle {
    stroke-dashoffset: 0;
  }

  /* Hover interactivity states */
  .bento-card:hover .bento-diagram svg path:not(.dashed-arc):not(.accent-line),
  .bento-card:hover .bento-diagram svg circle:not(.window-btn):not(.accent-line),
  .bento-card:hover .bento-diagram svg ellipse:not(.accent-line),
  .bento-card:hover .bento-diagram svg line:not(.speed-tick):not(.wireframe-line):not(.accent-line),
  .bento-card:hover .bento-diagram svg rect:not(.tooltip-bubble):not(.accent-line) {
    stroke: rgba(255, 255, 255, 0.40);
    stroke-width: 3.25;
  }

  .bento-card:hover .bento-diagram svg .accent-line {
    stroke: rgba(245, 245, 247, 0.95); /* Premium warm off-white */
    stroke-width: 4.75;
    filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.35));
  }

  /* High fidelity SVG overrides */
  .bento-diagram svg text {
    stroke: none !important;
    fill: rgba(255, 255, 255, 0.6) !important;
    transition: fill 0.3s ease;
  }

  .bento-card:hover .bento-diagram svg text {
    fill: rgba(255, 255, 255, 0.95) !important;
  }

  .bento-diagram svg .speed-tick {
    stroke-width: 1.25 !important;
    stroke: rgba(255, 255, 255, 0.3) !important;
    transition: stroke 0.3s ease;
  }

  .bento-card:hover .bento-diagram svg .speed-tick {
    stroke: rgba(255, 255, 255, 0.55) !important;
  }

  .bento-diagram svg .window-btn {
    stroke-width: 1.25 !important;
    stroke: rgba(255, 255, 255, 0.3) !important;
    fill: rgba(255, 255, 255, 0.05) !important;
    transition: stroke 0.3s ease, fill 0.3s ease;
  }

  .bento-card:hover .bento-diagram svg .window-btn {
    stroke: rgba(255, 255, 255, 0.5) !important;
    fill: rgba(255, 255, 255, 0.15) !important;
  }

  .bento-diagram svg .tooltip-bubble {
    stroke-width: 1 !important;
    stroke: rgba(255, 255, 255, 0.15) !important;
    fill: rgba(255, 255, 255, 0.05) !important;
    transition: stroke 0.3s ease, fill 0.3s ease;
  }

  .bento-card:hover .bento-diagram svg .tooltip-bubble {
    stroke: rgba(255, 255, 255, 0.3) !important;
    fill: rgba(255, 255, 255, 0.08) !important;
  }

  /* CTA Bento Card Styling (col-span-3) */
  .bento-card.col-span-3 {
    grid-column: span 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    min-height: 180px;
    padding: 2.25rem 2.5rem;
    position: relative;
    overflow: hidden;
  }

  .cta-bento-card {
    background: rgba(255, 255, 255, 0.25) !important;
    backdrop-filter: blur(8px) saturate(120%) !important;
    -webkit-backdrop-filter: blur(8px) saturate(120%) !important;
    transition: background 0.8s ease, border-color 0.8s ease;
  }

  body.space-night-theme .cta-bento-card {
    background: linear-gradient(135deg, #182354 0%, #2f1d5c 50%, #46113b 100%) !important; /* Dark starry gradient for Night Mode */
    border: 1px solid rgba(255, 255, 255, 0.12);
  }

  /* Animated Background Orbs */
  .cta-orbs {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
    opacity: 1.0;
  }

  .cta-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(45px);
    will-change: transform, opacity;
  }

  .orb-1 {
    width: 320px;
    height: 320px;
    background: radial-gradient(circle, rgba(240, 170, 200, 0.85) 0%, rgba(240, 170, 200, 0) 80%); /* Soft blush pink */
    top: -80px;
    left: 20%;
    animation: moveOrb1 6s infinite ease-in-out alternate;
  }

  .orb-2 {
    width: 380px;
    height: 380px;
    background: radial-gradient(circle, rgba(180, 160, 240, 0.8) 0%, rgba(180, 160, 240, 0) 80%); /* Soft lavender */
    bottom: -100px;
    right: 25%;
    animation: moveOrb2 8s infinite ease-in-out alternate;
  }

  .orb-3 {
    width: 280px;
    height: 280px;
    background: radial-gradient(circle, rgba(0, 153, 230, 0.8) 0%, rgba(0, 153, 230, 0) 80%); /* Exact brand sky blue #0099e6 */
    top: 10%;
    right: 5%;
    animation: moveOrb3 4.5s infinite ease-in-out alternate;
  }

  /* Richer high-contrast orbs for dark night mode */
  body.space-night-theme .orb-1 {
    background: radial-gradient(circle, rgba(255, 82, 162, 0.85) 0%, rgba(255, 82, 162, 0) 80%);
  }

  body.space-night-theme .orb-2 {
    background: radial-gradient(circle, rgba(163, 112, 247, 0.75) 0%, rgba(163, 112, 247, 0) 80%);
  }

  body.space-night-theme .orb-3 {
    background: radial-gradient(circle, rgba(67, 97, 238, 0.85) 0%, rgba(67, 97, 238, 0) 80%);
  }

  @keyframes moveOrb1 {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(120px, 60px) scale(1.15); }
    100% { transform: translate(-40px, 90px) scale(0.9); }
  }

  @keyframes moveOrb2 {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(-100px, -70px) scale(0.85); }
    100% { transform: translate(80px, 20px) scale(1.1); }
  }

  @keyframes moveOrb3 {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(-60px, 80px) scale(1.2); }
    100% { transform: translate(50px, -40px) scale(0.95); }
  }

  /* CTA Content Layer */
  .cta-content {
    display: contents;
  }

  .cta-text-side {
    position: relative;
    z-index: 2;
  }

  .cta-cursive-title {
    font-family: 'Caveat', cursive;
    font-size: clamp(2rem, 3.8vw, 3.4rem);
    font-weight: 600;
    color: #ffffff;
    margin: 0 0 0.5rem 0; /* Same comfortable spacing as other card titles */
    letter-spacing: -0.01em;
    line-height: 1.1;
  }

  .cta-subtitle {
    font-family: var(--font-sans);
    font-size: clamp(1.2rem, 2.2vw, 1.7rem);
    font-weight: 600;
    color: #ffffff;
    margin: 0 0 1.5rem 0;
    line-height: 1.25;
    letter-spacing: -0.01em;
  }

  .cta-description {
    font-family: var(--font-sans);
    font-size: clamp(0.9rem, 1.4vw, 1.05rem);
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
    max-width: 680px;
  }

  .cta-button-side {
    display: flex;
    justify-content: flex-end;
    position: relative;
    z-index: 2;
  }

  .cta-btn {
    display: inline-block;
    padding: 0.95rem 2.2rem;
    font-family: var(--font-sans);
    font-size: clamp(0.95rem, 1.2vw, 1.1rem);
    font-weight: 600;
    color: #ffffff;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 100px;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }

  .cta-btn:hover {
    background: #ffffff;
    color: #000000;
    border-color: #ffffff;
    box-shadow: 0 8px 30px rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
  }

  /* Mobile responsive overrides */
  @media (max-width: 768px) {
    .bento-section {
      padding-block: 50px;
    }
    
    .bento-grid {
      grid-template-columns: 1fr;
      gap: 1.5rem;
    }
    
    .bento-card.col-span-2,
    .bento-card.col-span-3 {
      grid-column: span 1;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      gap: 1.5rem;
    }
    
    .bento-card {
      min-height: auto;
      padding: 2rem 1.5rem;
    }
    
    .bento-diagram {
      margin-top: 1rem;
      min-height: 100px;
    }

    .cta-button-side {
      justify-content: flex-start;
      width: 100%;
      margin-top: 0.5rem;
    }
  }

  /* Eye Scan Reticle Rotation Animation */
  @keyframes rotateReticle {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
  }

  .scanner-reticle {
    transform-origin: 120px 70px;
    transition: stroke 0.3s ease;
  }

  .bento-card:hover .scanner-reticle {
    animation: rotateReticle 6s infinite linear;
  }
}

/* Questions Sticky Scroll Section */
.questions-section {
  position: relative;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  overflow: hidden;
  height: 100vh;
  min-height: 100vh;
}

.questions-sticky-container {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100vh;
  box-sizing: border-box;
  padding-left: max(2rem, calc(50vw - 600px + 2rem));
  padding-right: 0;
  gap: 4rem;
  position: relative;
}

.questions-title-side {
  width: 350px;
  flex-shrink: 0;
  z-index: 10;
}

.questions-title-side h2 {
  font-family: var(--font-sans);
  font-size: clamp(2.5rem, 4.5vw, 4.25rem);
  line-height: 1.15;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.03em;
  margin-bottom: 0.5rem;
}

.questions-subtitle {
  font-family: var(--font-sans);
  font-size: clamp(1.1rem, 1.5vw, 1.25rem);
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 2.5rem;
  line-height: 1.5;
}

.keyboard-board {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 2rem;
  width: 366px;
  position: relative;
  overflow: visible;
}

.keyboard-row {
  display: flex;
  gap: 8px;
}

.mac-key-cap {
  position: relative;
  width: 72px;
  height: 72px;
  border-radius: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #f4f4f6 100%);
  border: 1.5px solid #2d2d30;
  box-sizing: border-box;
  box-shadow: 
    inset 0 1.5px 1px #ffffff, 
    inset 0 -2px 1.5px #d2d2d7;
  flex-shrink: 0;
  overflow: hidden;
  transition: transform 0.08s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.08s cubic-bezier(0.25, 1, 0.5, 1);
}

.mac-key-cap.control-key {
  cursor: pointer;
  pointer-events: auto;
  box-shadow: 
    -5px -3px 22px rgba(255, 255, 255, 0.36), 
    -10px 4px 35px rgba(255, 255, 255, 0.18),
    2px -2px 15px rgba(255, 255, 255, 0.12),
    inset 0 1.5px 1px #ffffff, 
    inset 0 -2px 1.5px #d2d2d7;
}

.mac-key-cap.option-key {
  cursor: pointer;
  pointer-events: auto;
  box-shadow: 
    5px 3px 22px rgba(255, 255, 255, 0.36), 
    10px -4px 35px rgba(255, 255, 255, 0.18),
    -2px 2px 15px rgba(255, 255, 255, 0.12),
    inset 0 1.5px 1px #ffffff, 
    inset 0 -2px 1.5px #d2d2d7;
}

.mac-key-cap.control-key:active {
  transform: translateY(2.5px);
  box-shadow: 
    -3px -1px 12px rgba(255, 255, 255, 0.2), 
    inset 0 1px 1px #ffffff, 
    inset 0 -1px 1px #d2d2d7;
}

.mac-key-cap.option-key:active {
  transform: translateY(2.5px);
  box-shadow: 
    3px 1px 12px rgba(255, 255, 255, 0.2), 
    inset 0 1px 1px #ffffff, 
    inset 0 -1px 1px #d2d2d7;
}

/* Other surrounding keys are non-interactive */
.mac-key-cap:not(.control-key):not(.option-key) {
  pointer-events: none;
}

/* Key label and symbol layout */
.mac-key-cap .key-symbol {
  position: absolute;
  top: 8px;
  left: 10px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 19px;
  font-weight: 400;
  color: #424245;
  user-select: none;
  line-height: 1;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.mac-key-cap .globe-svg {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 14px;
  height: 14px;
  stroke: #424245;
}

.mac-key-cap .key-label {
  position: absolute;
  bottom: 8px;
  left: 10px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #424245;
  letter-spacing: -0.01em;
  text-transform: lowercase;
  user-select: none;
  line-height: 1;
  white-space: nowrap;
}

/* Specific key styles & simulated radial fade opacities */
.mac-key-cap.control-key,
.mac-key-cap.option-key {
  opacity: 1;
}

.mac-key-cap.z-key {
  opacity: 0.2;
}

.mac-key-cap.x-key {
  opacity: 0.2;
}

.mac-key-cap.fn-key {
  opacity: 0.35;
}

.mac-key-cap.command-key {
  opacity: 0.35;
  width: 83px;
}

.mac-key-cap.c-key {
  opacity: 0.2;
}

.mac-key-cap.shift-key {
  width: 126px;
  opacity: 0.2;
}

.mac-key-cap.letter-key {
  display: flex;
  align-items: center;
  justify-content: center;
}

.mac-key-cap.letter-key .key-letter {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 19px;
  font-weight: 400;
  color: #424245;
  user-select: none;
  line-height: 1;
}

.questions-viewport {
  flex-grow: 1;
  height: 680px;
  overflow: visible;
  position: relative;
}

.questions-grid {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  will-change: transform;
}

.question-row {
  display: flex;
  gap: 6rem;
  white-space: nowrap;
  width: max-content;
}

.row-1 { padding-left: 400px; }
.row-2 { padding-left: 0px; }
.row-3 { padding-left: 400px; }

.question-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  padding: 0 2.8rem;
  height: clamp(6rem, 8vw, 7.5rem);
  font-family: var(--font-sans);
  font-size: clamp(1.4rem, 2.1vw, 2.1rem);
  font-weight: 500;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.04);
  border: 2.5px solid rgba(255, 255, 255, 0.12);
  border-radius: 200px;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: default;
  user-select: none;
  line-height: 1.2;
}

.pill-icons {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}

.pill-icon {
  width: clamp(1.28rem, 1.79vw, 1.79rem);
  height: clamp(1.28rem, 1.79vw, 1.79rem);
  flex-shrink: 0;
  display: block;
}

.question-pill:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(245, 245, 247, 0.9); /* Warm off-white hover highlight */
  transform: translateY(-4px);
}

.questions-grid:active {
  cursor: grabbing;
}

.caveat-highlight {
  font-family: 'Caveat', cursive;
  font-weight: 700;
  font-size: 1.35em;
  padding-right: 0.15em;
  margin-right: 0.25em; /* Extra visual spacing */
  white-space: nowrap; /* Prevent mobile wrapping inside highlights */
}

.shimmer-target {
  display: inline-block;
  color: inherit;
}

.shimmer-target.shimmer-active {
  background: linear-gradient(90deg, #ffffff 0%, #ffffff 35%, #66b3ff 50%, #ffffff 65%, #ffffff 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-position: -50% center; /* End state of shimmer so it looks correct without animation */
}

.shimmer-target.shimmer-active.shimmer-play {
  animation: text-shimmer 1.5s linear forwards;
}

.question-pill:hover .shimmer-target.shimmer-active {
  animation: text-shimmer 1.5s linear forwards;
}

/* Mobile responsive overrides for questions section */
@media (max-width: 768px) {
  .questions-section {
    width: 100%;
    margin-left: 0;
    height: auto;
    min-height: auto;
  }
  
  .questions-sticky-container {
    flex-direction: column;
    justify-content: center;
    gap: 2rem;
    padding-block: 4rem;
    padding-left: 1rem;
    padding-right: 1rem;
    height: auto;
    min-height: auto;
  }
  
  .questions-title-side {
    width: 100%;
    text-align: center;
  }
  
  .questions-viewport {
    width: 100%;
    height: auto;
    overflow: visible;
  }
  
  .questions-grid {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    flex-direction: column;
    gap: 1.5rem;
  }

  .question-row {
    flex-direction: column;
    gap: 1.5rem;
    white-space: normal;
    width: 100%;
  }
  
  .question-pill {
    font-size: 0.95rem;
    padding: 1rem 1.25rem;
    height: auto;
    white-space: normal;
    text-align: center;
    line-height: 1.4;
  }
  
  .row-1 { padding-left: 0px; }
  .row-2 { padding-left: 0px; }
  .row-3 { padding-left: 0px; }
}

/* Floating Theme Switcher styling */
.theme-switcher {
  position: fixed;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.4rem;
  border-radius: 100px;
  background: rgba(10, 10, 16, 0.06); /* Highly transparent background */
  border: 1px solid rgba(255, 255, 255, 0.06); /* Thin near transparent border */
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 1000;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.theme-btn {
  width: 30px; /* 20% smaller width */
  height: 30px; /* 20% smaller height */
  border-radius: 50%;
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.theme-btn:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
}

.theme-btn.active {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.16);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}



.footer-sublink {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-decoration: none;
  text-shadow: inherit;
  transition: color 0.2s ease, text-shadow 0.2s ease;
}

.footer-sublink:hover {
  color: #000000;
  text-decoration: underline;
}

body.space-night-theme .footer-sublink:hover {
  color: #ffffff;
  text-shadow: 0 1px 5px rgba(255, 255, 255, 0.4);
}

/* Adjust layout on small mobile screens */
@media (max-width: 768px) {
  .theme-switcher {
    right: 12px;
  }
  
  .footer-bottom-links {
    left: 50%;
    transform: translateX(-50%);
    bottom: 15px;
  }
}

/* ==========================================
   FAQ Page Specific Styles (Glassmorphism & Accordion)
   ========================================== */
.faq-header-block {
  text-align: center;
  max-width: 1000px;
  margin: 0 auto 2.25rem auto;
  padding: 0 1rem;
}

.faq-page-title {
  font-family: var(--font-sans);
  font-size: clamp(2.5rem, 1rem + 4vw, 3.75rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #ffffff;
  margin-bottom: 1.25rem;
}

.faq-page-subtitle {
  font-family: var(--font-sans);
  font-size: clamp(1.05rem, 0.8rem + 1vw, 1.25rem);
  color: var(--text-subtle);
  line-height: 1.6;
}

.faq-accordion-container {
  max-width: 1000px;
  margin: 0 auto 2.5rem auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  align-items: start;
}

.faq-column {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (max-width: 768px) {
  .faq-accordion-container {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

.faq-item {
  padding: 0 !important;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(245, 245, 247, 0.12);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, transform 0.2s ease;
}

.faq-item::before {
  border-radius: inherit !important;
}

.faq-item:hover {
  background: rgba(245, 245, 247, 0.18);
  border-color: rgba(255, 255, 255, 0.25);
  transform: translateY(-1px);
}

.faq-trigger {
  width: 100%;
  text-align: left;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  padding: 1.1rem 1.5rem;
  background: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  pointer-events: none;
}

.faq-question-text {
  font-family: var(--font-sans);
  font-size: clamp(1.15rem, 2.2vw, 1.3rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.4;
  letter-spacing: -0.01em;
}

.faq-icon-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease, border-color 0.3s ease;
  flex-shrink: 0;
}

.faq-chevron {
  color: #ffffff;
  stroke-width: 2.5;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Accordion Open States */
.faq-trigger[aria-expanded="true"] .faq-chevron {
  transform: rotate(180deg);
}

.faq-trigger[aria-expanded="true"] .faq-icon-wrapper {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.3);
}

.faq-item.faq-active {
  background: rgba(245, 245, 247, 0.22) !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
  box-shadow: 
    0 10px 30px rgba(0, 0, 0, 0.12),
    0 1px 3px rgba(0, 0, 0, 0.04);
}

.faq-content-box {
  height: 0;
  overflow: hidden;
  position: relative;
  transition: height 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.faq-answer-inner {
  padding: 0 1.5rem 1.1rem 1.5rem;
}

.faq-answer-inner p {
  font-family: var(--font-sans);
  font-size: clamp(1.05rem, 2vw, 1.15rem);
  line-height: 1.6;
  color: var(--text-subtle);
  font-weight: 400;
}

/* Delightful hover interaction for Creator Program links */
.creator-link-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}

/* Shared cloud blob appearance */
.creator-hover-blob {
  position: absolute;
  /* Photo-realistic native transparent SVG cloud background */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100'%3E%3Cdefs%3E%3Cfilter id='b' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='7'/%3E%3C/filter%3E%3C/defs%3E%3Cellipse cx='100' cy='50' rx='70' ry='32' fill='rgba(255,255,255,0.7)' filter='url(%23b)'/%3E%3Ccircle cx='70' cy='48' r='26' fill='rgba(255,255,255,0.94)' filter='url(%23b)'/%3E%3Ccircle cx='100' cy='38' r='32' fill='rgba(255,255,255,0.97)' filter='url(%23b)'/%3E%3Ccircle cx='130' cy='46' r='25' fill='rgba(255,255,255,0.92)' filter='url(%23b)'/%3E%3Ccircle cx='85' cy='56' r='24' fill='rgba(240,245,252,0.95)' filter='url(%23b)'/%3E%3Ccircle cx='115' cy='54' r='24' fill='rgba(240,245,252,0.94)' filter='url(%23b)'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  /* Text styling */
  color: #1a1a18;
  font-family: 'Caveat', cursive;
  font-size: 1.15rem;
  font-weight: 700;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.4);
  /* Cloud sizing */
  width: 220px;
  height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 24px 12px 24px;
  text-align: center;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transform: scale(0);
  transform-origin: top center;
  transition: transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.25s ease;
  z-index: 10000;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.08));
}

/* Nav blob (JS-positioned, outside masked header-container) */
#nav-cloud-blob {
  transform: translateX(-50%) scale(0);
}

#nav-cloud-blob.visible {
  transform: translateX(-50%) scale(1);
  opacity: 1;
}

/* Footer blobs (CSS-positioned via wrapper hover) */
.creator-link-wrapper .creator-hover-blob {
  left: 50%;
  bottom: calc(100% + 6px);
  top: auto;
  transform: translateX(-50%) scale(0);
  transform-origin: bottom center;
}

.creator-link-wrapper:hover .creator-hover-blob {
  transform: translateX(-50%) scale(1);
  opacity: 1;
}

/* ==========================================
   Free Forever Dictation Section Styling
   ========================================== */
.dictation-section {
  width: 100%;
  max-width: 1100px;
  margin: 4rem auto;
  padding: 0 1.5rem;
  box-sizing: border-box;
}

.dictation-card {
  width: 100%;
  box-sizing: border-box;
}

.dictation-keyboard-side {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.dictation-board {
  margin-top: 0 !important;
}

.dictation-right-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}

/* White keycap Fn key styles (matching Control & Option keys) */
.mac-key-cap.fn-key.active-white-key {
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  background: linear-gradient(180deg, #ffffff 0%, #f4f4f6 100%) !important;
  border: 1.5px solid #2d2d30 !important;
  box-shadow: 
    -5px -3px 22px rgba(255, 255, 255, 0.36), 
    -10px 4px 35px rgba(255, 255, 255, 0.18),
    2px -2px 15px rgba(255, 255, 255, 0.12),
    inset 0 1.5px 1px #ffffff, 
    inset 0 -2px 1.5px #d2d2d7 !important;
  transform: translateY(-2px);
  transition: transform 0.08s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.08s cubic-bezier(0.25, 1, 0.5, 1);
}

.mac-key-cap.fn-key.active-white-key:hover {
  transform: translateY(-4px);
  box-shadow: 
    -6px -4px 28px rgba(255, 255, 255, 0.5), 
    -12px 6px 42px rgba(255, 255, 255, 0.28),
    inset 0 1.5px 1px #ffffff, 
    inset 0 -2px 1.5px #d2d2d7 !important;
}

.mac-key-cap.fn-key.active-white-key:active,
.mac-key-cap.fn-key.active-white-key.key-pressed {
  transform: translateY(2.5px) !important;
  box-shadow: 
    -3px -1px 12px rgba(255, 255, 255, 0.2), 
    inset 0 1px 1px #ffffff, 
    inset 0 -1px 1px #d2d2d7 !important;
}

.mac-key-cap.fn-key.active-white-key .key-label {
  color: #424245 !important;
  font-weight: 500 !important;
}

.mac-key-cap.fn-key.active-white-key .globe-svg {
  stroke: #424245 !important;
}

.mac-key-cap.dimmed-key {
  opacity: 0.15 !important;
}

/* Micro USPs on the right side */
.dictation-micro-usps {
  display: flex;
  gap: 0.65rem;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  max-width: 386px;
  margin-top: 0.5rem;
}

.dictation-usp-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(56, 189, 248, 0.08);
  border: 1px solid rgba(56, 189, 248, 0.22);
  padding: 0.45rem 0.95rem;
  border-radius: 100px;
  font-family: var(--font-sans);
  font-size: 0.88rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: -0.01em;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.dictation-usp-pill:hover {
  transform: translateY(-2px);
  background: rgba(56, 189, 248, 0.14);
  border-color: rgba(56, 189, 248, 0.4);
}

.dictation-usp-pill svg {
  flex-shrink: 0;
}

@media (max-width: 900px) {
  .dictation-card {
    grid-template-columns: 1fr !important;
    text-align: center;
    gap: 2.5rem;
  }
}
}
