/* Header must sit above WebGL canvas GPU compositing layers */
header.fixed { z-index: 9999 !important; }

/* Prevent mobile media query rules from breaking the hamburger header layout */
header > div.max-w-7xl {
  flex-direction: row !important;
  height: auto !important;
}
header > div.max-w-7xl .flex.items-center.gap-3 {
  flex-direction: row !important;
  border-bottom: none !important;
  padding: 0 !important;
  text-align: left !important;
  margin: 0 !important;
}

/* Gradient headings — prevent Tailwind's line-height:1 from clipping descenders */
.bg-clip-text.text-transparent { line-height: 1.1; }

@media (max-width: 768px) {
  #home {
    padding-top: 50px;
  }
  .max-w-7xl {
    flex-direction: column;
    height: auto;
    padding: 15px;
  }
            
  .flex.items-center.gap-3, nav.space-x-6 {
    padding: 20px 0 10px 0;
    text-align: center;
    margin: 0 auto;
    font-size: 14px !important;
  }
            
  .flex.items-center.gap-3 {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    padding-bottom: 15px;
    text-align: center;
    margin: 0 auto;
  }
            
  .nav.space-x-6 {
    padding-top: 15px;
    text-align: center;
    margin: 0 auto;

  }
  .space-x-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0 !important;
   margin-right: calc(0.3rem * var(--tw-space-x-reverse)) !important;
    margin-left: calc(0.3rem * calc(1 - var(--tw-space-x-reverse))) !important;
  }
  a.py-1.hover:text-indigo-400 {
    
  }
  a.px-3.py-1.rounded-lg.bg-indigo-600.bg-indigo-500.hover:bg-indigo-500 {
    text-align: center !important;

  }
}
main {
    max-width: 600px;
    margin: 0 auto;
    padding: 0;
}
@media (max-width: 600px) {
main {
    max-width: 100%;
    padding: 25px;
}
}
section {

}
#logo {
    background: url(../images/logo.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
    width: 225px;
    height: 50px;
    margin: 0 auto;
}
h4 {
    color: #e5e7eb;
    font-size: 16px;
    font-family: 'Times New Roman', Times, serif;
    text-align: center;
    margin: 0;
}
p {
    color: rgb(156 163 175 / var(--tw-text-opacity, 1));
    font-family: 'Times New Roman', Times, serif;
    font-size: 18px;
    font-weight: 100;
    text-align: left;
    margin: 0;
}
#midi-data, #midi-data p { text-align: center; font-family: inherit; }
p.centertext {
    color: rgb(156 163 175 / var(--tw-text-opacity, 1));
    font-family: inherit;
    font-size: 0.875rem;
    font-weight: 400;
    text-align: center;
    margin: auto;
}
#button-app {
    background-image: linear-gradient(135deg, #a855f7, #ec4899) !important;
}
#countdown {
  color: rgb(79, 70, 229);
  font-size: 28px;
  font-family: 'Orbitron', monospace;
  font-weight: 900;
  text-align: center;
  margin-top: 20px;
  text-shadow: 
    0 0 5px rgba(79, 70, 229, 0.3),
    0 0 10px rgba(99, 102, 241, 0.3),
    0 0 20px rgba(129, 140, 248, 0.4),
    0 0 30px rgba(165, 180, 252, 0.5);
}
#contain {
  position: relative;
  display: block;
  background: #000;
  width: 600px !important;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0 auto;
  border-radius: 15px;
}
#contain:fullscreen,
#contain:-webkit-full-screen,
#contain:-moz-full-screen {
  width: 100vw !important;
  height: 100vh !important;
  max-width: 100vw !important;
  max-height: 100vh !important;
  border-radius: 0 !important;
}
#contain:fullscreen #app-container,
#contain:-webkit-full-screen #app-container,
#contain:-moz-full-screen #app-container,
#contain:fullscreen #lucid-visual,
#contain:-webkit-full-screen #lucid-visual,
#contain:-moz-full-screen #lucid-visual,
#contain:fullscreen #curvic-visual,
#contain:-webkit-full-screen #curvic-visual,
#contain:-moz-full-screen #curvic-visual,
#contain:fullscreen #quadrat-visual,
#contain:-webkit-full-screen #quadrat-visual,
#contain:-moz-full-screen #quadrat-visual {
  border-radius: 0 !important;
}
#contain:fullscreen #app-container,
#contain:-webkit-full-screen #app-container,
#contain:-moz-full-screen #app-container {
  box-shadow: none !important;
  background-image: none !important;
  animation: none !important;
}
#contain:fullscreen .container,
#contain:-webkit-full-screen .container,
#contain:-moz-full-screen .container {
  box-shadow: none !important;
}
/* Canvas fills app-container (which JS sizes correctly for both 16:9 and 9:16) */
#contain:fullscreen canvas,
#contain:-webkit-full-screen canvas,
#contain:-moz-full-screen canvas {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
}
.container {
    position: relative;
    width: 100%;
    border-radius: 15px;
    padding-top: 56.25%;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
#app-container {
  position: relative;
  width: 100% !important;
  height: 100% !important;
  margin: 0;
  padding: 0;
  border-radius: 15px;
  background: transparent;
  background-image:
    linear-gradient(transparent, transparent),
    linear-gradient(135deg, #a855f7, #ec4899);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  box-shadow:
    0 0 15px rgba(168, 85, 247, 0.8),
    0 0 30px rgba(236, 72, 153, 0.7),
    0 0 60px rgba(168, 85, 247, 0.6),
    0 6px 30px rgba(0,0,0,1);
  animation: app-pulse 2.5s infinite ease-in-out;
}
@keyframes app-pulse {
  0% {
    box-shadow:
      0 0 10px rgba(168, 85, 247, 0.7),
      0 0 20px rgba(236, 72, 153, 0.6),
      0 0 40px rgba(168, 85, 247, 0.5),
      0 4px 25px rgba(0,0,0,0.9);
  }
  50% {
    box-shadow:
      0 0 20px rgba(168, 85, 247, 0.9),
      0 0 40px rgba(236, 72, 153, 0.8),
      0 0 60px rgba(168, 85, 247, 0.7),
      0 6px 30px rgba(0,0,0,1);
  }
  100% {
    box-shadow:
      0 0 10px rgba(168, 85, 247, 0.7),
      0 0 20px rgba(236, 72, 153, 0.6),
      0 0 40px rgba(168, 85, 247, 0.5),
      0 4px 25px rgba(0,0,0,0.9);
  }
}
#demo-container {
  position: relative;
  width: 100% !important;
  height: 100% !important;
  margin: 0;
  padding: 0;
  border-radius: 15px;
  background: #0a0a0a;
  background-image: 
    linear-gradient(#0a0a0a, #0a0a0a),
    linear-gradient(135deg, rgb(79, 70, 229), rgb(165, 180, 252));
  background-origin: border-box;
  background-clip: padding-box, border-box;

  box-shadow:
    0 0 15px rgba(79, 70, 229, 0.8),
    0 0 30px rgba(99, 102, 241, 0.7),
    0 0 60px rgba(129, 140, 248, 0.6),
    0 6px 30px rgba(0, 0, 0, 1);
  animation: demo-pulse2.5s infinite ease-in-out;
}
@keyframes demo-pulse {
  0% {
    box-shadow:
      0 0 10px rgba(79, 70, 229, 0.7),   /* deep indigo */
      0 0 20px rgba(99, 102, 241, 0.6),  /* medium */
      0 0 40px rgba(129, 140, 248, 0.5), /* light */
      0 4px 25px rgba(0, 0, 0, 0.9);     /* dark drop shadow */
  }
  50% {
    box-shadow:
      0 0 20px rgba(79, 70, 229, 0.9),
      0 0 40px rgba(99, 102, 241, 0.8),
      0 0 60px rgba(165, 180, 252, 0.7),
      0 6px 30px rgba(0, 0, 0, 1);
  }
  100% {
    box-shadow:
      0 0 10px rgba(79, 70, 229, 0.7),
      0 0 20px rgba(99, 102, 241, 0.6),
      0 0 40px rgba(129, 140, 248, 0.5),
      0 4px 25px rgba(0, 0, 0, 0.9);
  }
}
canvas{
  display: block;
  width: 600px !important;
  height: 338px !important;
  border-radius: 15px;
  margin: 0 auto;
  max-width: 100%;
  max-height: 100%;
}
#controls {
  max-width: 600px !important;
  margin: 0 auto;
}
/* Control row — label above fader, value top-right, range hints below */
.ctrl-row { margin: 2px 0 6px; }
.ctrl-row input[type=range] { margin: 1px 0 0; }
.ctrl-top { display: flex; justify-content: space-between; align-items: baseline; }
.ctrl-label { color: #9ca3af; font-size: 0.75rem; }
.ctrl-val { color: #e5e7eb; font-size: 0.7rem; font-family: monospace; min-width: 3.5rem; text-align: right; }
.ctrl-hints { display: flex; justify-content: space-between; }
.ctrl-hint { color: #374151; font-size: 0.6rem; }
.center {
    position: relative;
    overflow: hidden;
    width: 350px;
    left: 50%;
    margin: 0 0 0 -150px;
}
.responsive-iframe {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
#video-tutorial {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
#fullscreenBtn{
    position: relative;
    top: 0px;
    z-index: 10;
    padding: 10px 20px;
    font-size: 24px;
    background-color: #222222;
    color: #676767;
    font-family: 'Times New Roman', Times, serif;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}
label{
    color: #676767;
}
input:not([type=checkbox]):not([type=radio]){
    width: 100%;
}
input[type=range] {
  -webkit-appearance: none;
  width: 100%;
  margin: 18px 0;
  background: transparent;
}

input[type=range]:focus {
  outline: none;
}

/* Thumb */
input.range-app[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #111;
  border: 2px solid #a855f7;
  cursor: pointer;
  margin-top: -6px; /* Align with track */
  box-shadow: 0 0 8px #a855f7, 0 0 16px #ec4899;
  transition: all 0.2s ease-in-out;
}
input.range-app[type=range]::-webkit-slider-thumb:hover {
  box-shadow: 0 0 12px #a855f7, 0 0 24px #ec4899;
}
input.range-app[type=range]::-moz-range-thumb {
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #111;
  border: 2px solid #a855f7;
  cursor: pointer;
  box-shadow: 0 0 8px #a855f7, 0 0 16px #ec4899;
  transition: all 0.2s ease-in-out;
}
input.range-app[type=range]::-moz-range-thumb:hover {
  box-shadow: 0 0 12px #a855f7, 0 0 24px #ec4899;
}
input.range-app[type=range]::-ms-thumb {
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #111;
  border: 2px solid #a855f7;
  cursor: pointer;
  box-shadow: 0 0 8px #a855f7, 0 0 16px #ec4899;
  transition: all 0.2s ease-in-out;
}
input.range-app[type=range]::-ms-thumb:hover {
  box-shadow: 0 0 12px #a855f7, 0 0 24px #ec4899;
}

/* Track */
input.range-app[type=range]::-webkit-slider-runnable-track {
  height: 8px;
  cursor: pointer;
  border-radius: 4px;
  background: linear-gradient(90deg, #ec4899, #a855f7);
  box-shadow: 0 0 8px rgba(168, 85, 247, 0.5), 0 0 12px rgba(236, 72, 153, 0.4);
}
input.range-app[type=range]::-moz-range-track {
  height: 8px;
  cursor: pointer;
  border-radius: 4px;
  background: linear-gradient(90deg, #ec4899, #a855f7);
  box-shadow: 0 0 8px rgba(168, 85, 247, 0.5), 0 0 12px rgba(236, 72, 153, 0.4);
}
input.range-app[type=range]::-ms-track {
  height: 8px;
  cursor: pointer;
  border-radius: 4px;
  background: linear-gradient(90deg, #ec4899, #a855f7);
  box-shadow: 0 0 8px rgba(168, 85, 247, 0.5), 0 0 12px rgba(236, 72, 153, 0.4);
  border-color: transparent;
  color: transparent;
}

/* Thumb */
input.range-demo[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #111;
  border: 2px solid rgb(79, 70, 229);
  cursor: pointer;
  margin-top: -6px; /* Align with track */
  box-shadow: 0 0 8px rgba(79, 70, 229, 0.9), 0 0 16px rgba(129, 140, 248, 0.8);
  transition: all 0.2s ease-in-out;
}
input.range-demo[type=range]::-webkit-slider-thumb:hover {
  box-shadow: 0 0 12px rgba(99, 102, 241, 0.9), 0 0 24px rgba(165, 180, 252, 0.8);
}
input.range-demo[type=range]::-moz-range-thumb {
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #111;
  border: 2px solid rgb(79, 70, 229);
  cursor: pointer;
  box-shadow: 0 0 8px rgba(79, 70, 229, 0.9), 0 0 16px rgba(129, 140, 248, 0.8);
  transition: all 0.2s ease-in-out;
}
input.range-demo[type=range]::-moz-range-thumb:hover {
  box-shadow: 0 0 12px rgba(99, 102, 241, 0.9), 0 0 24px rgba(165, 180, 252, 0.8);
}
input.range-demo[type=range]::-ms-thumb {
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #111;
  border: 2px solid rgb(79, 70, 229);
  cursor: pointer;
  box-shadow: 0 0 8px rgba(79, 70, 229, 0.9), 0 0 16px rgba(129, 140, 248, 0.8);
  transition: all 0.2s ease-in-out;
}
input.range-demo[type=range]::-ms-thumb:hover {
  box-shadow: 0 0 12px rgba(99, 102, 241, 0.9), 0 0 24px rgba(165, 180, 252, 0.8);
}

/* Track */
input.range-demo[type=range]::-webkit-slider-runnable-track {
  height: 8px;
  cursor: pointer;
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(79,70,229,0.8), rgba(129,140,248,0.8));
  box-shadow: 0 0 8px rgba(79, 70, 229, 0.5), 0 0 12px rgba(129, 140, 248, 0.4);
}
input.range-demo[type=range]::-moz-range-track {
  height: 8px;
  cursor: pointer;
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(79,70,229,0.8), rgba(129,140,248,0.8));
  box-shadow: 0 0 8px rgba(79, 70, 229, 0.5), 0 0 12px rgba(129, 140, 248, 0.4);
}
input.range-demo[type=range]::-ms-track {
  height: 8px;
  cursor: pointer;
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(79,70,229,0.8), rgba(129,140,248,0.8));
  box-shadow: 0 0 8px rgba(79, 70, 229, 0.5), 0 0 12px rgba(129, 140, 248, 0.4);
  border-color: transparent;
  color: transparent;
}


.text-6xl,
.md\:text-8xl {
  line-height: 1.5 !important;
}
