/*
Theme Name: PianoRT
Theme URI: https://pianort.com
Author: RvengePerformance
Description: Purpose-built theme for PianoRT real-time Linux piano appliances. All content editable via Appearance > Customize.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: pianort
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=Space+Mono:wght@400;700&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:     #080706;
  --bg2:    #0d0c0b;
  --bg3:    #0a0908;
  --border: #1e1c18;
  --border2:#161411;
  --gold:   #c9b89a;
  --text:   #e2d9cc;
  --text2:  #8a8078;
  --text3:  #6a6058;
  --text4:  #4a4540;
  --text5:  #3a3530;
  --muted:  #2a2520;
}

html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--text); font-family: 'Cormorant Garamond', Georgia, serif; min-height: 100vh; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
.mono { font-family: 'Space Mono', monospace; }

/* Animations */
.fu { opacity: 0; transform: translateY(20px); animation: fu 0.85s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes fu { to { opacity: 1; transform: none; } }
.d1{animation-delay:.1s}.d2{animation-delay:.25s}.d3{animation-delay:.42s}.d4{animation-delay:.6s}

/* Nav */
.site-nav { border-bottom:1px solid #0e0d0b; padding:18px 40px; display:flex; justify-content:space-between; align-items:center; position:sticky; top:0; background:rgba(8,7,6,.92); backdrop-filter:blur(14px); z-index:100; }
.nav-brand { display:flex; align-items:center; gap:10px; }
.nav-logo-box { width:30px; height:30px; border-radius:6px; background:rgba(201,184,154,.1); border:1px solid #2e2b26; display:grid; place-items:center; overflow:hidden; }
.nav-logo-box img { width:100%; height:100%; object-fit:cover; }
.nav-logo-box .fallback { font-size:15px; }
.nav-wordmark { font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.25em; color:var(--gold); }
.nav-links { display:flex; gap:30px; align-items:center; list-style:none; }
.nav-links a { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.18em; color:var(--text4); transition:color .2s; }
.nav-links a:hover { color:var(--gold); }
.nav-cta { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.2em; padding:9px 18px; border-radius:7px; border:1px solid rgba(201,184,154,.27); background:rgba(201,184,154,.06); color:var(--gold) !important; transition:all .2s; }
.nav-cta:hover { background:rgba(201,184,154,.12) !important; border-color:rgba(201,184,154,.47) !important; }

/* Pill */
.pill { display:inline-block; font-family:'Space Mono',monospace; font-size:9px; letter-spacing:.28em; padding:4px 11px; border-radius:99px; border:1px solid #242018; color:var(--text3); background:var(--bg3); }

/* Section */
.section-inner { max-width:1100px; margin:0 auto; padding:72px 40px; }
.section-eyebrow { font-family:'Space Mono',monospace; font-size:9px; letter-spacing:.4em; color:var(--text5); margin-bottom:14px; }
.section-heading { font-size:clamp(24px,4vw,38px); font-weight:300; color:#ede8e0; letter-spacing:-.02em; margin-bottom:14px; }

/* Hero */
#hero { max-width:1100px; margin:0 auto; padding:96px 40px 72px; }
.hero-grid { display:grid; grid-template-columns:1fr 400px; gap:72px; align-items:start; }
.hero-headline { font-size:clamp(44px,7vw,78px); font-weight:300; line-height:1.05; letter-spacing:-.025em; color:#ede8e0; }
.hero-headline em { color:var(--gold); font-style:italic; }
.hero-body { margin-top:28px; font-size:18px; line-height:1.9; color:var(--text2); max-width:500px; }
.hero-actions { margin-top:40px; display:flex; gap:16px; flex-wrap:wrap; }
.btn-outline { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.2em; padding:12px 22px; border-radius:8px; border:1px solid #2e2b26; color:var(--text2); background:transparent; display:inline-block; transition:border-color .2s; }
.btn-outline:hover { border-color:#5a5248; }
.btn-ghost { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.2em; padding:12px 22px; border-radius:8px; border:1px solid #1a1815; color:var(--text4); background:transparent; display:inline-block; }

/* Stat card */
.stat-card { background:var(--bg2); border:1px solid var(--border); border-radius:12px; padding:28px 24px; margin-top:4px; }
.stat-eyebrow { font-family:'Space Mono',monospace; font-size:8px; letter-spacing:.35em; color:var(--text5); margin-bottom:18px; }
.stat-number { font-family:'Space Mono',monospace; font-weight:700; font-size:clamp(52px,9vw,80px); color:var(--gold); line-height:1; letter-spacing:-.02em; }
.stat-label { font-family:'Space Mono',monospace; font-size:10px; color:#5a5248; margin-top:8px; letter-spacing:.15em; }
.stat-rows { margin-top:22px; border-top:1px solid var(--border2); padding-top:18px; display:flex; flex-direction:column; gap:9px; }
.stat-row { display:flex; justify-content:space-between; align-items:baseline; }
.stat-row-key { font-family:'Space Mono',monospace; font-size:8px; color:var(--text5); letter-spacing:.15em; }
.stat-row-val { font-family:'Space Mono',monospace; font-size:13px; color:var(--gold); }
.stat-footnote { margin-top:16px; border-top:1px solid var(--border2); padding-top:12px; font-family:'Space Mono',monospace; font-size:8px; color:#2e2b26; letter-spacing:.1em; line-height:1.7; }

/* How it works */
.feat-row { border-top:1px solid var(--border2); padding:30px 0; display:grid; grid-template-columns:180px 1fr; gap:48px; align-items:start; }
.feat-row:last-child { border-bottom:1px solid var(--border2); }
.feat-title { font-size:22px; font-weight:300; color:#e2d9cc; margin-bottom:12px; letter-spacing:-.01em; }
.feat-body { font-size:16px; line-height:1.85; color:var(--text3); }

/* Tier tabs */
.tier-tabs { display:flex; gap:8px; margin-bottom:28px; flex-wrap:wrap; }
.stab { font-family:'Space Mono',monospace; font-size:9px; letter-spacing:.2em; padding:8px 18px; border-radius:6px; border:1px solid #222018; background:transparent; color:var(--text3); cursor:pointer; transition:all .2s; }
.stab.on { background:rgba(201,184,154,.08); border-color:rgba(201,184,154,.27); color:var(--gold); }
.stab:hover:not(.on) { color:#a09080; border-color:#3a3530; }
.tier-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.card { background:var(--bg2); border:1px solid var(--border); border-radius:12px; padding:28px 24px; }
.card-flex { display:flex; flex-direction:column; gap:16px; }
.tier-qs { font-family:'Space Mono',monospace; font-weight:700; font-size:clamp(48px,8vw,68px); color:var(--gold); line-height:1; }
.tier-qs-unit { font-size:20px; color:#5a5248; }
.tier-ms { font-family:'Space Mono',monospace; font-size:13px; color:var(--text2); margin-top:8px; }
.tier-body { font-size:16px; line-height:1.85; color:var(--text2); flex:1; }
.tier-voices-label { font-family:'Space Mono',monospace; font-size:8px; color:var(--text5); letter-spacing:.2em; }
.tier-voices-val { font-family:'Space Mono',monospace; font-size:18px; color:var(--gold); margin-top:4px; }
.tier-note { font-family:'Space Mono',monospace; font-size:9px; color:var(--muted); letter-spacing:.15em; margin-top:16px; }

/* OSS tiles */
.oss-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.oss-intro { font-size:16px; line-height:1.85; color:var(--text3); margin-bottom:44px; max-width:580px; }
.oss-tile { background:var(--bg3); border:1px solid #1a1815; border-radius:10px; padding:22px 20px; display:flex; flex-direction:column; gap:12px; text-decoration:none; color:inherit; transition:border-color .25s,transform .25s; }
.oss-tile:hover { border-color:rgba(201,184,154,.33); transform:translateY(-2px); }
.oss-tile-header { display:flex; align-items:center; gap:14px; }
.oss-tile-name { font-size:18px; font-weight:300; color:#e2d9cc; letter-spacing:-.01em; }
.oss-tile-host { font-family:'Space Mono',monospace; font-size:8px; color:var(--text4); letter-spacing:.15em; margin-top:3px; }
.oss-tile-desc { font-size:14px; line-height:1.8; color:#5a5248; }
.oss-tile svg { flex-shrink:0; }

/* Systems CTA */
.systems-cta { background:linear-gradient(135deg,#111009,#1a1815); border:1px solid #2a2520; border-radius:16px; padding:48px 56px; display:flex; justify-content:space-between; align-items:center; text-decoration:none; color:inherit; transition:border-color .3s,transform .3s; }
.systems-cta:hover { border-color:rgba(201,184,154,.53); transform:translateY(-3px); }
.systems-cta-eyebrow { font-family:'Space Mono',monospace; font-size:9px; letter-spacing:.35em; color:var(--text4); margin-bottom:18px; }
.systems-cta-heading { font-size:clamp(24px,4vw,40px); font-weight:300; color:#ede8e0; letter-spacing:-.02em; margin-bottom:16px; }
.systems-cta-body { font-size:16px; line-height:1.85; color:var(--text2); }
.systems-cta-right { display:flex; flex-direction:column; align-items:flex-end; gap:14px; flex-shrink:0; }
.systems-cta-arrow { width:52px; height:52px; border-radius:50%; border:1px solid #3a3530; display:grid; place-items:center; font-size:22px; color:var(--gold); }
.systems-cta-label { font-family:'Space Mono',monospace; font-size:9px; letter-spacing:.2em; color:var(--gold); }

/* Footer */
.site-footer-inner { border-top:1px solid #0e0d0b; padding:24px 40px; display:flex; justify-content:space-between; align-items:center; max-width:1100px; margin:0 auto; }
.footer-text { font-family:'Space Mono',monospace; font-size:9px; color:var(--muted); letter-spacing:.2em; }

/* Responsive */
@media (max-width: 860px) {
  .hero-grid { grid-template-columns:1fr; gap:40px; }
  .oss-grid { grid-template-columns:repeat(2,1fr); }
  .feat-row { grid-template-columns:1fr; gap:12px; }
  .tier-grid { grid-template-columns:1fr; }
  .systems-cta { flex-direction:column; gap:28px; padding:36px 28px; }
  .site-nav { padding:16px 20px; }
  #hero, .section-inner { padding-left:20px; padding-right:20px; }
}
@media (max-width: 600px) {
  .oss-grid { grid-template-columns:1fr; }
  .hide-mobile { display:none; }
}
