:root{
  --bg:#faf8f3;
  --text:#2b2b2b;
  --muted:#6b6b63;
  --green:#2f6f4f;
  --card-bg:#ffffff;
  --card-radius:16px;
  --card-shadow:0 2px 10px rgba(0,0,0,0.05);
  --tan:#caa06a;
  --tan-border:#d9c3a1;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background-color:var(--bg);
  background-image:
    radial-gradient(circle at 8% 12%, rgba(202,160,106,0.10) 0, transparent 40%),
    radial-gradient(circle at 92% 8%, rgba(202,160,106,0.08) 0, transparent 35%),
    radial-gradient(circle at 50% 95%, rgba(202,160,106,0.08) 0, transparent 40%);
  color:var(--text);
  font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height:1.5;
}
main{
  max-width:640px;
  margin:0 auto;
  padding:16px 20px 60px;
}
a{color:var(--green);}

/* ---- top nav ---- */
.topnav{
  max-width:640px;
  margin:0 auto;
  padding:14px 20px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.topnav .brand{
  display:flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  color:var(--text);
  font-weight:800;
  letter-spacing:1px;
  font-size:15px;
}
.topnav .brand img{height:22px;width:auto;display:block;}
.topnav nav{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end;}
.topnav nav a{
  font-size:13px;
  text-decoration:none;
  color:var(--muted);
  font-weight:600;
}
.topnav nav a:hover,.topnav nav a.active{color:var(--green);}
.breadcrumb{
  font-size:12px;
  color:var(--muted);
  margin:0 0 10px;
}
.breadcrumb a{color:var(--muted);text-decoration:none;}
.breadcrumb a:hover{color:var(--green);}

/* ---- logo / hero shared ---- */
.logo-card{
  background:var(--card-bg);
  border-radius:var(--card-radius);
  box-shadow:var(--card-shadow);
  padding:28px 32px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-bottom:24px;
}
.logo-card .site-logo{max-width:220px;width:100%;height:auto;display:block;}
.tagline{text-align:center;color:var(--muted);font-size:15px;margin:0 0 20px;padding:0 12px;}
.page-title{
  text-align:center;
  font-size:26px;
  font-weight:800;
  color:var(--text);
  margin:4px 0 8px;
}
.page-sub{text-align:center;color:var(--muted);font-size:15px;margin:0 0 20px;padding:0 10px;}

/* ---- store buttons ---- */
.store-row{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:28px;}
.store-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:12px;text-decoration:none;font-size:13px;line-height:1.25;}
.store-btn.play{background:var(--green);color:#fff;}
.store-btn.play b{display:block;font-size:15px;font-weight:700;}
.store-btn.apple{background:transparent;color:var(--text);border:1px solid var(--tan-border);position:relative;}
.store-btn.apple b{display:block;font-size:15px;font-weight:700;}
.store-btn .badge{background:var(--tan);color:#fff;font-size:9px;font-weight:700;letter-spacing:0.5px;padding:2px 6px;border-radius:6px;margin-left:6px;white-space:nowrap;}

section.card{background:var(--card-bg);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:28px 32px;margin-bottom:24px;}
h2{color:var(--green);font-size:20px;font-weight:700;margin:0 0 14px;}
h3{color:var(--text);font-size:16px;font-weight:700;margin:18px 0 8px;}
p{margin:0 0 12px;color:var(--text);}
p:last-child{margin-bottom:0;}

.features{list-style:none;margin:0;padding:0;}
.features li{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid #f0eee7;}
.features li:last-child{border-bottom:none;padding-bottom:0;}
.features li:first-child{padding-top:0;}
.feature-icon{flex:0 0 auto;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:17px;}
.feature-icon.pitch{background:#f6e3ea;}
.feature-icon.metronome{background:#f3e6da;}
.feature-icon.instruments{background:#eaf1e8;}
.feature-icon.private{background:#fbeed4;}
.feature-text b{display:block;font-size:15px;margin-bottom:2px;}
.feature-text span{color:var(--muted);font-size:14px;}

.hero-art{background:linear-gradient(180deg,#16332a,#0f2721);border-radius:var(--card-radius);padding:40px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.hero-art .hero-icon{width:72px;height:72px;object-fit:contain;margin-bottom:10px;}
.hero-art .hw{color:#e8944a;font-size:26px;font-weight:800;letter-spacing:3px;}
.hero-art .ht{color:#caa06a;font-size:12px;letter-spacing:1px;margin-top:4px;}
.hero-caption{text-align:center;color:var(--muted);font-size:13px;margin:12px 0 0;}

.instrument-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px 8px;margin-bottom:8px;}
.instrument{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;}
.instrument img{width:40px;height:56px;object-fit:contain;}
.instrument span{font-size:11px;color:var(--text);text-align:center;}
.custom-note{text-align:center;color:var(--muted);font-size:13px;margin:16px 0 0;}

.language-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:4px;}
.language-chip{background:#f6f3ec;border:1px solid var(--tan-border);border-radius:999px;padding:6px 14px;font-size:13px;color:var(--text);}

.ads-note{text-align:center;color:var(--muted);font-size:13px;margin:10px 0 0;}
footer{text-align:center;color:var(--muted);font-size:12px;margin-top:28px;}
footer a{color:var(--muted);}

/* ---- instrument-page hero image ---- */
.instrument-hero{display:flex;align-items:center;justify-content:center;padding:18px 0 22px;}
.instrument-hero img{height:140px;width:auto;object-fit:contain;}

/* ---- tuning string table ---- */
.string-table{width:100%;border-collapse:collapse;margin:4px 0 6px;}
.string-table th,.string-table td{text-align:left;padding:9px 6px;border-bottom:1px solid #f0eee7;font-size:14px;}
.string-table th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:0.5px;}
.string-table td.note{font-weight:700;color:var(--green);}
.string-table tr:last-child td{border-bottom:none;}

/* ---- live tuner widget ---- */
.tuner-widget{background:linear-gradient(180deg,#16332a,#0f2721);border-radius:var(--card-radius);padding:26px 22px 22px;text-align:center;color:#fff;}
.tuner-note{font-size:52px;font-weight:800;letter-spacing:1px;margin:4px 0 2px;color:#fff;min-height:62px;}
.tuner-note .oct{font-size:26px;color:#caa06a;font-weight:600;}
.tuner-freq{font-size:13px;color:#9fb8ac;margin-bottom:14px;letter-spacing:0.5px;}
.tuner-gauge{position:relative;height:14px;background:rgba(255,255,255,0.08);border-radius:999px;margin:0 auto 16px;max-width:320px;overflow:hidden;}
.tuner-gauge .zone-center{position:absolute;left:47%;right:47%;top:0;bottom:0;background:rgba(47,111,79,0.9);}
.tuner-gauge .needle{position:absolute;top:-3px;bottom:-3px;width:4px;border-radius:2px;background:#e8944a;left:50%;transition:left 0.08s linear;box-shadow:0 0 6px rgba(232,148,74,0.8);}
.tuner-status{font-size:13px;letter-spacing:1px;text-transform:uppercase;font-weight:700;color:#9fb8ac;min-height:18px;margin-bottom:16px;}
.tuner-status.in-tune{color:#6fcf97;}
.tuner-status.close{color:#e8c158;}
.tuner-status.off{color:#e8944a;}
.tuner-btn{background:#e8944a;color:#16332a;border:none;border-radius:12px;padding:12px 28px;font-size:15px;font-weight:700;cursor:pointer;}
.tuner-btn:hover{background:#f0a862;}
.tuner-btn.listening{background:#2f6f4f;color:#fff;}
.tuner-hint{font-size:12px;color:#9fb8ac;margin-top:12px;}
.tuner-targets{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;}
.tuner-target{background:rgba(255,255,255,0.08);border-radius:10px;padding:6px 12px;font-size:13px;color:#dfe8e3;border:1px solid rgba(255,255,255,0.1);}
.tuner-target.active{background:#e8944a;color:#16332a;font-weight:700;}
.custom-input-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0 2px;}
.custom-input-row input{width:64px;padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,0.2);background:rgba(255,255,255,0.08);color:#fff;text-align:center;font-size:14px;}
.custom-input-row button{background:rgba(255,255,255,0.12);color:#fff;border:1px solid rgba(255,255,255,0.2);border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer;}

/* ---- metronome widget ---- */
.metro-widget{background:var(--card-bg);text-align:center;}
.metro-bpm{font-size:48px;font-weight:800;color:var(--green);margin:4px 0 2px;}
.metro-bpm-label{font-size:12px;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:14px;}
.metro-slider{width:100%;max-width:360px;margin:0 auto 18px;display:block;}
.metro-dots{display:flex;justify-content:center;gap:10px;margin-bottom:18px;}
.metro-dot{width:14px;height:14px;border-radius:50%;background:#e9e5da;transition:background 0.05s,transform 0.05s;}
.metro-dot.hit{background:#e8944a;transform:scale(1.25);}
.metro-dot.accent.hit{background:#2f6f4f;}
.metro-controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.metro-beat-select{display:flex;justify-content:center;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.metro-beat-select button{background:#f6f3ec;border:1px solid var(--tan-border);border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer;color:var(--text);}
.metro-beat-select button.active{background:var(--green);color:#fff;border-color:var(--green);}

.privacy-note{background:#f6f3ec;border:1px solid var(--tan-border);border-radius:12px;padding:14px 16px;font-size:13px;color:var(--muted);margin-top:16px;}

.faq dt{font-weight:700;margin-top:14px;font-size:14px;}
.faq dt:first-child{margin-top:0;}
.faq dd{margin:4px 0 0;color:var(--muted);font-size:14px;}

@media (max-width:420px){
  .instrument-grid{grid-template-columns:repeat(4,1fr);}
  .topnav{flex-direction:column;align-items:flex-start;}
  .topnav nav{justify-content:flex-start;}
}
