/* 7-Segment Display Font */
@font-face {
  font-family: '7-Segment';
  src: url('https://torinak.com/font/7segment.woff') format('woff');
  font-display: swap;
}

html, body {
  height: 100%;
  margin: 0;
  padding: 0;
  font-family: 'Courier New', Courier, monospace;
  background: #000;
  overflow: hidden;
}

@media screen and (max-width: 480px) {
  html, body {
    overflow: auto;
  }
}
body {
  min-height: 100vh;
  min-width: 100vw;
  width: 100vw;
  height: 100vh;
  background: radial-gradient(ellipse at center, #001122 0%, #000000 70%);
  color: #00ffff;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

/* Starfield background */
body::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: 
    radial-gradient(1px 1px at 20px 30px, #fff, transparent),
    radial-gradient(1px 1px at 40px 70px, #fff, transparent),
    radial-gradient(1px 1px at 90px 40px, #fff, transparent),
    radial-gradient(1px 1px at 130px 80px, #fff, transparent),
    radial-gradient(1px 1px at 160px 30px, #fff, transparent),
    radial-gradient(1px 1px at 200px 90px, #fff, transparent),
    radial-gradient(1px 1px at 240px 50px, #fff, transparent),
    radial-gradient(1px 1px at 280px 10px, #fff, transparent),
    radial-gradient(1px 1px at 320px 60px, #fff, transparent),
    radial-gradient(1px 1px at 360px 20px, #fff, transparent);
  background-repeat: repeat;
  background-size: 400px 200px;
  opacity: 0.3;
  pointer-events: none;
  z-index: 0;
}
.container {
  width: 100vw;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 2vw;
  box-sizing: border-box;
  z-index: 1;
  position: relative;
}
h1 {
  font-size: 5rem;
  font-weight: 300;
  margin: 0 0 0.3em 0;
  text-align: center;
  letter-spacing: 0.15em;
  color: #00ffff;
  text-shadow: 
    0 0 10px #00ffff,
    0 0 20px #00ffff,
    0 0 30px #00ffff;
  background: transparent;
  text-transform: uppercase;
}

/* Default paragraph styling (fallback) */
p {
  font-size: 1.2rem;
  font-weight: 300;
  margin: 0 0 1.5em 0;
  text-align: center;
  color: #00ff88;
  text-shadow: 0 0 8px #00ff88;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Subtitle styling with hierarchy */
.subtitle.primary {
  font-size: 1.4rem;
  font-weight: 300;
  margin: 0 0 1rem 0;
  text-align: center;
  color: #ffff00;
  text-shadow: 0 0 10px #ffff00;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.3;
}

.subtitle.secondary {
  font-size: 1rem;
  font-weight: 300;
  margin: 0 0 0 0;
  text-align: center;
  color: #ff6600;
  text-shadow: 0 0 8px #ff6600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.4;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  opacity: 0.85;
}
#metronomeLights {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8em;
  margin: 3em 0 3em 0;
}
.light {
  width: 200px;
  height: 200px;
  border-radius: 0;
  background: transparent;
  transition: all 0.1s ease;
  border: 4px solid #333;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 5rem;
  color: #333;
  font-weight: 300;
  letter-spacing: 0.1em;
  position: relative;
  transform: rotate(45deg);
}
#greenLight {
  border-color: #00ff00;
}
#redLight {
  border-color: #ff0000;
}
#greenLight.active {
  background: transparent;
  border-color: #00ff00;
  box-shadow: 
    0 0 20px #00ff00,
    inset 0 0 20px #00ff0033;
}
#redLight.active {
  background: transparent;
  border-color: #ff0000;
  box-shadow: 
    0 0 20px #ff0000,
    inset 0 0 20px #ff000033;
}
#greenLight::after {
  content: attr(data-hand);
  color: #00ff00;
  font-size: 4rem;
  font-weight: 300;
  transform: rotate(-45deg);
  text-shadow: 0 0 10px #00ff00;
}
#redLight::after {
  content: attr(data-hand);
  color: #ff0000;
  font-size: 4rem;
  font-weight: 300;
  transform: rotate(-45deg);
  text-shadow: 0 0 10px #ff0000;
}



/* Timer Display */
#timerDisplay {
  font-family: '7-Segment', 'Courier New', Courier, monospace;
  font-size: 4rem;
  font-weight: 300;
  color: #00ffff;
  text-align: center;
  margin: 0.5em 0;
  padding: 0.5em 1em;
  border: 2px solid #00ffff;
  background: transparent;
  text-shadow: 0 0 12px #00ffff;
  letter-spacing: 0.1em;
  min-width: 200px;
}

#timerDisplay.rainbow-flash {
  animation: rainbowFlash 0.2s linear infinite;
}

@keyframes rainbowFlash {
  0% { color: #ff0000; text-shadow: 0 0 12px #ff0000; border-color: #ff0000; }
  16% { color: #ff8800; text-shadow: 0 0 12px #ff8800; border-color: #ff8800; }
  33% { color: #ffff00; text-shadow: 0 0 12px #ffff00; border-color: #ffff00; }
  50% { color: #00ff00; text-shadow: 0 0 12px #00ff00; border-color: #00ff00; }
  66% { color: #0088ff; text-shadow: 0 0 12px #0088ff; border-color: #0088ff; }
  83% { color: #8800ff; text-shadow: 0 0 12px #8800ff; border-color: #8800ff; }
  100% { color: #ff0000; text-shadow: 0 0 12px #ff0000; border-color: #ff0000; }
}

label[for="bpm"] {
  font-size: 1.5rem;
  font-weight: 300;
  color: #00ffff;
  text-shadow: 0 0 8px #00ffff;
  text-transform: uppercase;
  letter-spacing: 0.2em;
}

/* Remove default spinners */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
  appearance: textfield;
}
input[type=number]:focus {
  border: 2px solid #ffffff;
  box-shadow: 0 0 15px #00ffff;
  text-shadow: 0 0 12px #00ffff;
}

/* BPM Container Layout */
.bpm-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8em;
  margin: 1em 0 1em 0;
}

.bpm-container label[for="bpm"] {
  margin-bottom: 0.5em;
}

/* BPM Input Field */
input[type=number] {
  width: 120px;
  padding: 0.8em 1em;
  margin: 0;
  border-radius: 0;
  border: 2px solid #00ffff;
  font-size: 2rem;
  font-weight: 300;
  background: transparent;
  color: #00ffff;
  text-align: center;
  outline: none;
  transition: all 0.2s;
  font-family: '7-Segment', 'Courier New', Courier, monospace;
  text-shadow: 0 0 8px #00ffff;
}

/* BPM Adjustment Buttons */
.bpm-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}

.bpm-adjust {
  width: 50px;
  height: 50px;
  padding: 0;
  border: 2px solid #00ffff;
  border-radius: 0;
  background: transparent;
  color: #00ffff;
  font-size: 2rem;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.2s;
  font-family: 'Courier New', Courier, monospace;
  text-shadow: 0 0 8px #00ffff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bpm-adjust:hover, .bpm-adjust:focus {
  background: #00ffff33;
  box-shadow: 0 0 15px #00ffff;
  text-shadow: 0 0 12px #00ffff;
}

.bpm-adjust:active {
  background: #00ffff55;
  transform: scale(0.95);
}

.bpm-adjust:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  border-color: #666;
  color: #666;
  text-shadow: none;
  box-shadow: none;
}

.bpm-adjust:disabled:hover,
.bpm-adjust:disabled:focus {
  background: transparent;
  box-shadow: none;
  text-shadow: none;
}

button#startStop, button#stopMetronome {
  margin-top: 30;
  margin-bottom: 1.2em;
  display: block;
  width: 100%;
  max-width: 420px;
  padding: 1.2em 3em;
  border: 2px solid #00ff00;
  border-radius: 0;
  background: transparent;
  color: #00ff00;
  font-size: 2rem;
  font-weight: 300;
  cursor: pointer;
  letter-spacing: 0.15em;
  transition: all 0.2s;
  text-transform: uppercase;
  font-family: 'Courier New', Courier, monospace;
  text-shadow: 0 0 8px #00ff00;
}
button#stopMetronome {
  border-color: #ff0000;
  color: #ff0000;
  text-shadow: 0 0 8px #ff0000;
}
button#startStop:hover, button#startStop:focus {
  background: #00ff0033;
  box-shadow: 0 0 20px #00ff00;
}
button#stopMetronome:hover, button#stopMetronome:focus {
  background: #ff000033;
  box-shadow: 0 0 20px #ff0000;
}
.button-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  gap: 1.2em;
}

.rudiment-selector-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5em;
  width: 100%;
  max-width: 420px;
}

#rudimentSelector {
  font-size: 1rem;
  font-weight: 400;
  color: #00ff00;
  background: transparent;
  border: 2px solid #00ff00;
  border-radius: 0;
  padding: 0.5em 1em;
  font-family: 'Courier New', Courier, monospace;
  text-shadow: 0 0 8px #00ff00;
  cursor: pointer;
  transition: all 0.2s;
  width: 100%;
  text-align: center;
  outline: none;
}

#rudimentSelector:hover, #rudimentSelector:focus {
  background: #00ff0033;
  box-shadow: 0 0 15px #00ff00;
}

#rudimentSelector option {
  background: #000;
  color: #00ff00;
  border: none;
  padding: 0.5em;
}

#languageButton {
  position: fixed;
  top: 20px;
  right: 20px;
  padding: 8px 16px;
  border: 2px solid #ffff00;
  border-radius: 0;
  background: transparent;
  color: #ffff00;
  font-size: 0.9rem;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.2s;
  z-index: 100;
  font-family: 'Courier New', Courier, monospace;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-shadow: 0 0 6px #ffff00;
}

#languageButton:hover {
  background: #ffff0033;
  box-shadow: 0 0 15px #ffff00;
}

#focusButton {
  position: fixed;
  top: 20px;
  left: 20px;
  padding: 8px 16px;
  border: 2px solid #ff6600;
  border-radius: 0;
  background: transparent;
  color: #ff6600;
  font-size: 0.9rem;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.2s;
  z-index: 100;
  font-family: 'Courier New', Courier, monospace;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-shadow: 0 0 6px #ff6600;
}

#focusButton:hover {
  background: #ff660033;
  box-shadow: 0 0 15px #ff6600;
}

#focusButton.active {
  background: #ff660066;
  box-shadow: 0 0 20px #ff6600;
}

#helpButton {
  position: fixed;
  bottom: 20px;
  right: 20px;
  padding: 8px 12px;
  border: 2px solid #ff00ff;
  border-radius: 0;
  background: transparent;
  color: #ff00ff;
  font-size: 1.2rem;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.2s;
  z-index: 100;
  font-family: 'Courier New', Courier, monospace;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-shadow: 0 0 6px #ff00ff;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#helpButton:hover {
  background: #ff00ff33;
  box-shadow: 0 0 15px #ff00ff;
}

/* Ko-fi Widget Customization */
iframe[src*="ko-fi.com"] {
  border: 2px solid #ff0066 !important;
  border-radius: 0 !important;
  box-shadow: 0 0 15px #ff0066 !important;
}

/* Custom Ko-fi button styling - targets the floating button */
div[id*="kofiOverlayContainer"] {
  font-family: 'Courier New', Courier, monospace !important;
}

div[id*="kofiOverlayContainer"] button,
div[id*="kofiOverlayContainer"] a {
  font-family: 'Courier New', Courier, monospace !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border-radius: 0 !important;
  border: 2px solid #ff0066 !important;
  text-shadow: 0 0 6px #ffffff !important;
  transition: all 0.2s ease !important;
}

div[id*="kofiOverlayContainer"] button:hover,
div[id*="kofiOverlayContainer"] a:hover {
  box-shadow: 0 0 20px #ff0066 !important;
  text-shadow: 0 0 10px #ffffff !important;
}

/* Modal Styles */
.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(5px);
}

.modal-content {
  background: #000;
  border: 2px solid #00ffff;
  margin: 2% auto;
  padding: 1.5rem;
  width: 90%;
  max-width: 800px;
  max-height: 90vh;
  overflow-y: auto;
  color: #00ffff;
  font-family: 'Courier New', Courier, monospace;
  position: relative;
  box-sizing: border-box;
}

.close {
  color: #ff0000;
  float: right;
  font-size: 2.5rem;
  font-weight: 300;
  cursor: pointer;
  text-shadow: 0 0 8px #ff0000;
  position: absolute;
  top: 0.5rem;
  right: 1rem;
  padding: 0.2rem;
  line-height: 1;
}

.close:hover {
  text-shadow: 0 0 15px #ff0000;
}

.modal h2 {
  color: #00ffff;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-shadow: 0 0 10px #00ffff;
  margin-bottom: 1rem;
  font-size: 1.5rem;
  font-weight: 300;
}

.modal h3 {
  color: #ffff00;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-shadow: 0 0 8px #ffff00;
  margin: 1rem 0 0.5rem 0;
  font-size: 1rem;
  font-weight: 300;
  border-bottom: 1px solid #ffff0050;
  padding-bottom: 0.3rem;
}

.technique-section {
  margin-bottom: 1rem;
  border-left: 3px solid #00ff00;
  padding-left: 1rem;
  background: rgba(0, 255, 0, 0.05);
  padding: 0.5rem 0.5rem 0.5rem 1rem;
}

.technique-section p {
  color: #ffffff;
  line-height: 1.4;
  margin-bottom: 0.5rem;
  text-transform: none;
  text-shadow: none;
  font-size: 0.85rem;
}

.technique-section ul,
.technique-section ol {
  color: #ffffff;
  line-height: 1.4;
  padding-left: 1.2rem;
  margin: 0.3rem 0;
}

.technique-section li {
  margin-bottom: 0.3rem;
  text-transform: none;
  text-shadow: none;
  font-size: 0.85rem;
}

.technique-section strong {
  color: #00ff88;
  text-shadow: 0 0 6px #00ff88;
}

/* Special styling for different sections to match screenshot */
.technique-section li strong {
  color: #00ffaa;
  text-shadow: 0 0 6px #00ffaa;
}

.technique-section ol li strong {
  color: #00ddff;
  text-shadow: 0 0 6px #00ddff;
}

.warning strong {
  color: #ff4444;
  text-shadow: 0 0 6px #ff4444;
}

.video-links {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  margin: 0.3rem 0;
}

.video-link {
  color: #ff6600;
  text-decoration: none;
  border: 1px solid #ff6600;
  padding: 0.4rem 0.6rem;
  display: block;
  transition: all 0.2s;
  text-shadow: 0 0 6px #ff6600;
  text-transform: none;
  font-size: 0.8rem;
  background: rgba(255, 102, 0, 0.1);
  margin-bottom: 0.2rem;
}

.video-link:hover {
  background: #ff660033;
  box-shadow: 0 0 15px #ff6600;
  text-shadow: 0 0 10px #ff6600;
}

.warning-list li {
  color: #ff4444;
  text-shadow: 0 0 6px #ff4444;
}

/* Warning section special styling */
.technique-section.warning {
  border-left-color: #ff4444;
  background: rgba(255, 68, 68, 0.05);
  margin-bottom: 0.5rem;
}

.technique-section.warning h3 {
  color: #ff4444;
  text-shadow: 0 0 8px #ff4444;
  border-bottom-color: #ff444450;
  margin: 0.5rem 0 0.3rem 0;
}

/* About section styling */
.technique-section.about {
  border-left-color: #00ffff;
  background: rgba(0, 255, 255, 0.05);
  margin-bottom: 0.5rem;
}

.technique-section.about h3 {
  color: #00ffff;
  text-shadow: 0 0 8px #00ffff;
  border-bottom-color: #00ffff50;
  margin: 0.5rem 0 0.3rem 0;
}

.email-link {
  color: #00ffff;
  text-decoration: none;
  border: 1px solid #00ffff;
  padding: 0.2rem 0.4rem;
  display: inline-block;
  transition: all 0.2s;
  text-shadow: 0 0 6px #00ffff;
  text-transform: none;
  font-size: inherit;
  background: rgba(0, 255, 255, 0.1);
  margin: 0 0.2rem;
}

.email-link:hover {
  background: #00ffff33;
  box-shadow: 0 0 15px #00ffff;
  text-shadow: 0 0 10px #00ffff;
}

/* Desktop/Mobile Content Toggle */
.desktop-content {
  display: block;
}

.mobile-content {
  display: none;
}

/* Compact layout for modal content */
.desktop-content {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

/* Focus Mode Styles */
body.focus-mode #languageButton,
body.focus-mode #helpButton {
  opacity: 0;
  transition: opacity 1s ease;
  pointer-events: none;
}

/* Hide Ko-fi widget in focus mode */
body.focus-mode div[id*="kofiOverlayContainer"] {
  opacity: 0;
  transition: opacity 1s ease;
  pointer-events: none;
}

body.focus-mode #focusButton {
  opacity: 1;
  transition: opacity 5s ease;
}

body.focus-mode h1,
body.focus-mode .subtitle,
body.focus-mode .bpm-container,
body.focus-mode #startStop,
body.focus-mode #stopMetronome,
body.focus-mode #timerDisplay {
  opacity: 0;
  transition: opacity 5s ease;
  pointer-events: none;
}

body.focus-mode #metronomeLights {
  opacity: 1;
  transition: opacity 5s ease;
}

/* Mobile Responsive Styles */
/* Mobile devices - reasonably sized design */
@media screen and (max-width: 768px) {
  /* Fit everything in single viewport */
  html, body {
    overflow: hidden;
    height: 100vh;
    min-height: 100vh;
  }
  
  body {
    overflow: hidden;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .container {
    width: 100vw;
    height: 100vh;
    padding: 0.5rem;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
  }
  
  /* Improve touch targets */
  * {
    -webkit-tap-highlight-color: transparent;
  }
  
  /* Hide title and subtitles on mobile to save space */
  h1 {
    display: none;
  }
  
  .subtitle.primary {
    display: none;
  }
  
  .subtitle.secondary {
    display: none;
  }
  

  
  /* Timer display - readable size */
  #timerDisplay {
    font-size: 1.8rem;
    padding: 0.3em 0.5em;
    margin: 0.3em 0;
    min-width: 140px;
  }
  
  /* BPM controls - good touch targets */
  .bpm-container {
    margin: 0.5em 0;
    gap: 0.4em;
  }
  
  label[for="bpm"] {
    font-size: 1rem;
  }
  
  input[type=number] {
    width: 80px;
    padding: 0.4em 0.5em;
    font-size: 1.4rem;
    min-height: 40px;
  }
  
  .bpm-adjust {
    width: 40px;
    height: 40px;
    font-size: 1.4rem;
  }
  
  .bpm-controls {
    gap: 8px;
  }
  
  /* Stroke order button - mobile sizing */
  .stroke-order-container {
    margin: 0.5em 0 0.3em 0;
    gap: 0.3em;
  }
  
  .stroke-order-button {
    padding: 0.5em;
    font-size: 1rem;
    width: 50px;
    height: 45px;
    letter-spacing: 0.05em;
  }

  .session-duration-button {
    padding: 0.5em;
    font-size: 1rem;
    width: 50px;
    height: 45px;
    letter-spacing: 0.05em;
  }

  /* Start/Stop buttons - good size */
  button#startStop, button#stopMetronome {
    max-width: 250px;
    padding: 0.6em 1.2em;
    font-size: 1.3rem;
    margin-bottom: 0.4em;
    min-height: 45px;
    touch-action: manipulation;
  }
  
  /* Rudiment display - readable */
  #rudimentDisplay {
    font-size: 1rem;
    margin: 0.4em 0;
    opacity: 1;
    padding: 0.4em 0.8em;
  }
  
  /* Corner buttons - reasonable size */
  #languageButton, #focusButton {
    padding: 6px 10px;
    font-size: 0.7rem;
    min-width: 40px;
    min-height: 32px;
    top: 0.5rem;
  }
  
  #focusButton {
    left: 0.5rem;
  }
  
  #languageButton {
    right: 0.5rem;
  }

  #helpButton {
    width: 40px;
    height: 40px;
    font-size: 1.1rem;
    bottom: 0.5rem;
    right: 0.5rem;
  }
  
  /* All buttons - improve touch interaction */
  button, input {
    touch-action: manipulation;
    -webkit-user-select: none;
    user-select: none;
  }
  
  /* Ko-fi widget adjustments */
  div[id*="kofiOverlayContainer"] {
    display: none !important; /* Hide on mobile to save space */
  }
  
  /* Modal adjustments - good size for mobile */
  .modal-content {
    margin: 5% auto;
    padding: 1rem;
    width: 85%;
    max-width: 350px;
    max-height: 80vh;
    font-size: 0.95rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-width: 2px;
  }
  
  /* Hide desktop content, show mobile content */
  .desktop-content {
    display: none;
  }
  
  .mobile-content {
    display: block;
  }
  
  .modal h2 {
    font-size: 1.3rem;
    margin-bottom: 0.8rem;
    line-height: 1.2;
    padding-right: 2rem;
    text-align: center;
  }
  
  .technique-section {
    margin-bottom: 0;
    padding-left: 0;
    border-left: none;
  }
  
  .technique-section p {
    font-size: 0.9rem;
    margin-bottom: 0.8rem;
    line-height: 1.3;
    text-align: left;
  }
  
  .close {
    font-size: 2.5rem;
    top: 0.4rem;
    right: 0.7rem;
    line-height: 1;
  }
}

/* Small mobile devices - slightly smaller but still usable */
@media screen and (max-width: 480px) {
  .container {
    padding: 0.4rem;
    gap: 0.4rem;
  }
  
  #metronomeLights {
    gap: 1.5em;
    margin: 0.4em 0;
  }
  
  .light {
    width: 85px;
    height: 85px;
    font-size: 2rem;
  }
  
  #greenLight::after,
  #redLight::after {
    font-size: 1.6rem;
  }
  
  #timerDisplay {
    font-size: 1.5rem;
    min-width: 120px;
  }
  
  input[type=number] {
    width: 70px;
    font-size: 1.2rem;
    min-height: 36px;
  }
  
  .bpm-adjust {
    width: 36px;
    height: 36px;
    font-size: 1.2rem;
  }
  
  .bpm-controls {
    gap: 6px;
  }
  
  button#startStop, button#stopMetronome {
    max-width: 200px;
    padding: 0.5em 1em;
    font-size: 1.1rem;
    min-height: 40px;
  }
  
  #languageButton, #focusButton {
    padding: 5px 8px;
    font-size: 0.65rem;
    min-width: 36px;
    min-height: 30px;
  }

  #helpButton {
    width: 36px;
    height: 36px;
    font-size: 1rem;
  }
  
  .modal-content {
    padding: 0.8rem;
    font-size: 0.9rem;
    width: 90%;
    max-height: 75vh;
  }
  
  .modal h2 {
    font-size: 1.2rem;
    margin-bottom: 0.7rem;
  }
  
  .technique-section p {
    font-size: 0.85rem;
    margin-bottom: 0.7rem;
    line-height: 1.25;
  }
  
  .close {
    font-size: 2.2rem;
    top: 0.3rem;
    right: 0.5rem;
  }
}

/* Landscape orientation on mobile */
@media screen and (max-width: 768px) and (orientation: landscape) {
  /* Metronome lights - smaller for very small screens */
  #metronomeLights {
    gap: 2em;
  }
  
  .light {
    width: 80px;
    height: 80px;
    font-size: 2rem;
  }
  
  #greenLight::after,
  #redLight::after {
    font-size: 1.5rem;
  }
  
  .container {
    padding: 0.3rem;
    gap: 0.4rem;
  }
}

/* Stroke Order Container */





