:root{--bg-deepest: #0d0b09;--bg-dark: #1a1612;--bg-surface: #252017;--bg-elevated: #332a21;--accent-amber: #f59e0b;--accent-gold: #d97706;--accent-cream: #fef3c7;--text-primary: #f5f0e6;--text-secondary: #a89f8c;--text-muted: #6b6356;--section-verse: #a78bfa;--section-chorus: #fb923c;--section-bridge: #4ade80;--border-subtle: rgba(255, 255, 255, .06);--border-medium: rgba(255, 255, 255, .1);--shadow-glow: 0 0 20px rgba(245, 158, 11, .15);--shadow-lift: 0 4px 12px rgba(0, 0, 0, .4);--font-display: "Space Grotesk", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Monaco", "Menlo", monospace;--font-body: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg-deepest);min-height:100vh;color:var(--text-primary);line-height:1.5}.app{position:relative;max-width:900px;margin:0 auto;padding:2rem;min-height:100vh}.app:before{content:"";position:fixed;top:-200px;left:50%;transform:translate(-50%);width:800px;height:600px;background:radial-gradient(ellipse,rgba(245,158,11,.08) 0%,transparent 70%);pointer-events:none;z-index:0}.app:after{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:0}.app>*{position:relative;z-index:1}header{position:relative;text-align:center;margin-bottom:2.5rem}.logo-group{display:inline-flex;align-items:center;gap:.75rem;margin-bottom:.5rem}header h1{font-family:var(--font-display);font-size:2.75rem;font-weight:700;color:var(--accent-cream);text-shadow:0 2px 20px rgba(245,158,11,.3);letter-spacing:-.02em}.studio-badge{display:inline-block;padding:.25rem .6rem;font-family:var(--font-mono);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--bg-deepest);background:linear-gradient(135deg,var(--accent-amber),var(--accent-gold));border-radius:var(--radius-sm)}header .tagline{font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em}.song-input{background:var(--bg-surface);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem;border:1px solid var(--border-subtle)}.input-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.led-indicator{width:8px;height:8px;border-radius:50%;background:var(--text-muted);box-shadow:inset 0 1px 2px #00000080;transition:all .3s ease}.led-indicator.active{background:var(--accent-amber);box-shadow:inset 0 1px 2px #0000004d,0 0 8px var(--accent-amber),0 0 16px #f59e0b66}.song-input label{display:block;font-family:var(--font-mono);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.song-input textarea{width:100%;padding:1rem;border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-dark);color:var(--text-primary);font-family:var(--font-body);font-size:1rem;resize:vertical;transition:border-color .2s,box-shadow .2s}.song-input textarea:focus{outline:none;border-color:var(--accent-amber);box-shadow:0 0 0 3px #f59e0b26}.song-input textarea::placeholder{color:var(--text-muted)}.dropdown-controls{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.5rem}.dropdown-controls--single{grid-template-columns:1fr}.mode-toggle{display:inline-flex;gap:.5rem;margin-bottom:1rem}.dropdown-group{display:flex;flex-direction:column;gap:.5rem}.dropdown-label{font-family:var(--font-mono);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.dropdown-group select{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-dark);color:var(--text-primary);font-family:var(--font-body);font-size:.95rem;cursor:pointer;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23a89f8c' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}.dropdown-group select:focus{outline:none;border-color:var(--accent-amber);box-shadow:0 0 0 3px #f59e0b26}.dropdown-group select:disabled{opacity:.5;cursor:not-allowed}.dropdown-group select option{background:var(--bg-dark);color:var(--text-primary);padding:.5rem}@media (max-width: 600px){.dropdown-controls{grid-template-columns:1fr}.mode-toggle{display:grid;grid-template-columns:1fr;width:100%}}.input-footer{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}.char-count{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted)}.advanced-toggle{display:flex;align-items:center;gap:.5rem;margin-top:4px;padding:0;border:none;background:transparent;color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:color .2s ease}.advanced-toggle:hover{color:var(--text-secondary)}.advanced-arrow{font-size:.6rem;transition:transform .2s ease}.advanced-toggle.open .advanced-arrow{transform:rotate(90deg)}.advanced-content{margin-top:1rem;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.chord-style-control{margin-top:0}.chord-style-control--guitar-voicing,.chord-style-control--section-style{margin-bottom:.65rem}.chord-style-control--visual-builder{margin-top:1rem;margin-bottom:.65rem}.chord-style-label{display:block;font-family:var(--font-mono);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.5rem}.chord-style-buttons{display:inline-flex;gap:.5rem}.style-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-dark);color:var(--text-secondary);font-family:var(--font-mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .2s ease}.style-button:hover:not(:disabled):not(.active){border-color:var(--accent-amber);color:var(--text-primary)}.style-button.active{border-color:var(--accent-amber);background:#f59e0b1a;color:var(--accent-cream)}.style-button:disabled{opacity:.5;cursor:not-allowed}.style-led{width:6px;height:6px;border-radius:50%;background:var(--text-muted);box-shadow:inset 0 1px 2px #00000080;transition:all .3s ease}.style-led.active{background:var(--accent-amber);box-shadow:inset 0 1px 2px #0000004d,0 0 6px var(--accent-amber),0 0 12px #f59e0b66}.movement-control{margin-top:1rem}.movement-label{display:block;font-family:var(--font-mono);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.5rem}.movement-buttons{display:inline-flex;gap:.5rem}.generate-button{margin-top:1rem;width:100%;padding:1rem 2rem;font-family:var(--font-display);font-size:1rem;font-weight:600;border:none;border-radius:var(--radius-md);background:linear-gradient(180deg,#3d3428,#2a2318);color:var(--text-primary);cursor:pointer;transition:all .15s ease;box-shadow:inset 0 1px #ffffff14,inset 0 -2px #0000004d,0 2px 4px #0000004d;position:relative;overflow:hidden}.generate-button:before{content:"";position:absolute;top:8px;right:12px;width:6px;height:6px;border-radius:50%;background:var(--text-muted);transition:all .3s ease}.generate-button:hover:not(:disabled):before{background:var(--accent-amber);box-shadow:0 0 6px var(--accent-amber)}.generate-button:hover:not(:disabled){background:linear-gradient(180deg,#4a4030,#332a21)}.generate-button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px #ffffff0d,inset 0 2px 4px #0000004d}.generate-button:disabled{opacity:.5;cursor:not-allowed}.loading{text-align:center;padding:3rem}.vu-meter{display:flex;justify-content:center;align-items:flex-end;gap:6px;height:60px;margin-bottom:1.5rem}.vu-bar{width:10px;background:linear-gradient(to top,var(--accent-amber),var(--accent-gold));border-radius:2px;animation:vuBounce .8s ease-in-out infinite}.vu-bar:nth-child(1){animation-delay:0s}.vu-bar:nth-child(2){animation-delay:.1s}.vu-bar:nth-child(3){animation-delay:.2s}.vu-bar:nth-child(4){animation-delay:.3s}.vu-bar:nth-child(5){animation-delay:.4s}.vu-bar:nth-child(6){animation-delay:.5s}@keyframes vuBounce{0%,to{height:15px;opacity:.6}50%{height:50px;opacity:1}}.loading p{font-family:var(--font-mono);font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em}.error-message{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171;padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem;font-family:var(--font-mono);font-size:.9rem}.results{animation:resultsReveal .5s ease-out}@keyframes resultsReveal{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.song-info{text-align:center;margin-bottom:2rem}.song-info h2{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--accent-cream);margin-bottom:.5rem}.song-meta{display:flex;justify-content:center;gap:2rem;font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.song-meta span{display:flex;align-items:center;gap:.5rem}.sections{display:flex;flex-direction:column;gap:1.25rem}.section-card{background:var(--bg-surface);border-radius:var(--radius-lg);padding:1.25rem;padding-left:calc(1.25rem + 6px);border:1px solid var(--border-subtle);position:relative;overflow:hidden;animation:cardEntrance .4s ease-out backwards}.section-card:nth-child(1){animation-delay:.1s}.section-card:nth-child(2){animation-delay:.2s}.section-card:nth-child(3){animation-delay:.3s}@keyframes cardEntrance{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.section-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--section-accent, var(--section-verse));animation:stripPulse 2s ease-in-out infinite}.section-card.section-verse:before{background:var(--section-verse)}.section-card.section-chorus:before{background:var(--section-chorus)}.section-card.section-bridge:before{background:var(--section-bridge)}@keyframes stripPulse{0%,to{opacity:.8}50%{opacity:1}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-title-group{display:flex;align-items:center;gap:.75rem}.section-header h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.section-controls{display:flex;align-items:center;gap:.5rem}.control-button,.regenerate-button,.download-button,.play-button{display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:36px;height:36px;padding:0 .75rem;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-dark);color:var(--text-secondary);font-family:var(--font-mono);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s ease}.regenerate-button,.play-button{padding:0;width:36px}.control-button:hover,.regenerate-button:hover:not(:disabled),.download-button:hover,.play-button:hover:not(:disabled){border-color:var(--accent-amber);color:var(--accent-cream);box-shadow:0 0 8px #f59e0b33}.regenerate-button:disabled,.play-button:disabled{cursor:not-allowed;opacity:.5}.play-button.playing{border-color:var(--accent-amber);background:#f59e0b26;color:var(--accent-amber)}.regenerate-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--accent-amber);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.section-card.regenerating{opacity:.7;pointer-events:none}.section-card.regenerating .regenerate-button{pointer-events:auto;opacity:1}.chord-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.chord-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:linear-gradient(180deg,var(--bg-elevated) 0%,var(--bg-dark) 100%);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:var(--text-primary);transition:all .2s ease}.chord-badge:hover:not(.skeleton){transform:translateY(-2px) scale(1.02);border-color:var(--accent-amber);box-shadow:0 4px 8px #0000004d,0 0 12px #f59e0b26}.chord-name{color:var(--accent-cream)}.chord-duration{font-size:.7rem;color:var(--text-muted);text-transform:uppercase}.piano-roll{width:100%;height:auto;border-radius:var(--radius-md);display:block;background:var(--bg-dark)}footer{text-align:center;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-subtle)}footer p{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.results.streaming .song-info h2{animation:fadeInTitle .4s ease-out}@keyframes fadeInTitle{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.section-card.generating{opacity:.85}.section-card.generating:before{animation:stripPulseActive .8s ease-in-out infinite}@keyframes stripPulseActive{0%,to{opacity:.4}50%{opacity:1}}.generating-indicator{display:flex;align-items:center;gap:4px;margin-left:8px}.generating-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-amber);animation:dotPulse 1.2s ease-in-out infinite}.generating-dot:nth-child(2){animation-delay:.2s}.generating-dot:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.chord-progress-inline{font-family:var(--font-mono);font-size:.85rem;color:var(--text-secondary);text-transform:lowercase;letter-spacing:.02em;margin-left:.75rem;animation:progressPulse 2s ease-in-out infinite}@keyframes progressPulse{0%,to{opacity:.6}50%{opacity:1}}.chord-progress-dots{display:flex;align-items:center;gap:4px;margin-left:.75rem}.progress-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:dotPulseWait 1.4s ease-in-out infinite}.progress-dot:nth-child(1){animation-delay:0s}.progress-dot:nth-child(2){animation-delay:.2s}.progress-dot:nth-child(3){animation-delay:.4s}@keyframes dotPulseWait{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.skeleton-chords{pointer-events:none}.chord-badge.skeleton{background:var(--bg-elevated);min-width:70px;height:38px;position:relative;overflow:hidden}.chord-badge.skeleton .skeleton-text{display:block;width:40px;height:14px;background:var(--bg-dark);border-radius:2px}.chord-badge.skeleton:after,.piano-roll-skeleton .skeleton-shimmer:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.04) 50%,transparent 100%);animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(200%)}}.piano-roll-skeleton{width:100%;height:120px;background:var(--bg-dark);border-radius:var(--radius-md);position:relative;overflow:hidden}.piano-roll-skeleton .skeleton-shimmer{position:absolute;top:0;left:0;right:0;bottom:0}.section-card.section-arrived{animation:sectionArrival .5s ease-out}@keyframes sectionArrival{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.results.streaming:after{content:"";position:absolute;bottom:-20px;left:50%;transform:translate(-50%);width:40px;height:4px;background:var(--accent-amber);border-radius:2px;animation:streamPulse 1s ease-in-out infinite}@keyframes streamPulse{0%,to{opacity:.5;width:40px}50%{opacity:1;width:60px}}@media (max-width: 600px){.app{padding:1rem}header h1{font-size:2rem}.logo-group{flex-direction:column;gap:.5rem}.section-header{flex-direction:column;align-items:flex-start;gap:.75rem}.section-title-group{width:100%;justify-content:space-between}.section-controls{width:100%;justify-content:flex-end}.song-meta{flex-direction:column;gap:.5rem}.chord-list{gap:.4rem}.chord-badge{padding:.4rem .6rem;font-size:.8rem}.settings-sidebar{width:90%}}.settings-icon{position:absolute;top:1rem;right:1rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.settings-icon:hover{border-color:var(--accent-amber);color:var(--accent-amber);box-shadow:0 0 12px #f59e0b33}.settings-icon svg{width:20px;height:20px}.sidebar-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1000;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-sidebar{position:fixed;top:0;right:0;width:320px;height:100vh;background:var(--bg-surface);border-left:1px solid var(--border-medium);box-shadow:-4px 0 24px #00000080;z-index:1001;display:flex;flex-direction:column;animation:slideInFromRight .3s ease-out}@keyframes slideInFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-subtle)}.sidebar-title-group{display:flex;align-items:center;gap:.75rem}.sidebar-title-group h3{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.sidebar-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.sidebar-close:hover{border-color:var(--accent-amber);color:var(--accent-amber);background:#f59e0b0d}.sidebar-section{padding:1.5rem;display:flex;flex-direction:column;gap:.6rem}.sidebar-section-label{font-family:var(--font-mono);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.55rem}.model-options{display:flex;flex-direction:column;gap:.75rem}.model-button{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-dark);border:1px solid var(--border-medium);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.model-button:hover:not(:disabled){border-color:var(--accent-amber);background:#f59e0b0d}.model-button.active{border-color:var(--accent-amber);background:#f59e0b1a;box-shadow:0 0 12px #f59e0b33}.model-button:disabled{opacity:.5;cursor:not-allowed}.model-info{display:flex;flex-direction:column;gap:.25rem;text-align:left}.model-name{font-family:var(--font-mono);font-size:.9rem;font-weight:600;color:var(--text-primary);letter-spacing:.02em}.model-button.active .model-name{color:var(--accent-cream)}.model-description{font-family:var(--font-body);font-size:.8rem;color:var(--text-muted)}.sidebar-nav-link{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;font-family:var(--font-mono);font-size:.8rem;color:var(--text-secondary);text-decoration:none;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);transition:color .2s,border-color .2s,background .2s}.sidebar-nav-link:hover{color:var(--accent-amber);border-color:var(--accent-amber);background:var(--bg-elevated)}.harmonic-function-badge{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border-radius:999px;font-family:var(--font-mono);font-size:.72rem;font-weight:700;line-height:1;border:1px solid color-mix(in srgb,currentColor 35%,transparent);box-shadow:inset 0 0 0 1px #ffffff0a;flex-shrink:0}.harmonic-function-badge--1{background:#34d3992e;color:#86efac}.harmonic-function-badge--2{background:#86efac29;color:#bef264}.harmonic-function-badge--3{background:#facc1529;color:#fde047}.harmonic-function-badge--4{background:#fb923c29;color:#fdba74}.harmonic-function-badge--5{background:#f8717129;color:#fca5a5}.piano-view{position:relative;max-width:1400px;margin:0 auto;padding:1rem 1.5rem;min-height:100vh}.piano-view:before{content:"";position:fixed;top:-200px;left:50%;transform:translate(-50%);width:800px;height:600px;background:radial-gradient(ellipse,rgba(245,158,11,.08) 0%,transparent 70%);pointer-events:none;z-index:0}.piano-view>*{position:relative;z-index:1}.piano-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.piano-header__left{display:flex;align-items:center;gap:.75rem}.piano-header__back{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);text-decoration:none;letter-spacing:.05em;transition:color .2s;white-space:nowrap}.piano-header__back:before{content:"←"}.piano-header__back:hover{color:var(--accent-amber)}.piano-header__center{display:flex;align-items:center;gap:.5rem}.piano-header__title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--accent-cream)}.piano-header__badge{display:inline-block;padding:.15rem .5rem;font-family:var(--font-mono);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--bg-deepest);background:linear-gradient(135deg,var(--accent-amber),var(--accent-gold));border-radius:var(--radius-sm)}.piano-header__right{width:60px}.piano-controls{margin-bottom:1rem}.piano-controls .song-input{max-width:600px;margin:0 auto}.piano-song-info{text-align:center;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.piano-song-info__title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--accent-cream);margin-bottom:.25rem}.piano-song-info__meta{display:flex;justify-content:center;gap:1.25rem;font-family:var(--font-mono);font-size:.8rem;color:var(--text-secondary)}.piano-sections{display:flex;flex-direction:column;gap:1.25rem}.piano-section__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.piano-section__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.piano-section__dot--verse{background:var(--section-verse)}.piano-section__dot--chorus{background:var(--section-chorus)}.piano-section__dot--bridge{background:var(--section-bridge)}.piano-section__title{font-family:var(--font-mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.piano-section__generating{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);animation:pulse-fade 1s ease-in-out infinite}@keyframes pulse-fade{0%,to{opacity:.4}50%{opacity:1}}.piano-section__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.6rem}.piano-chord{display:flex;align-items:center;justify-content:center;padding:.75rem .5rem;font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:center;min-height:60px;transition:border-color .2s}.piano-chord__content{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-width:0}.piano-chord__name{min-width:0}.piano-chord--verse{border-top:2px solid var(--section-verse)}.piano-chord--chorus{border-top:2px solid var(--section-chorus)}.piano-chord--bridge{border-top:2px solid var(--section-bridge)}@media (max-height: 500px),(orientation: landscape) and (max-height: 600px){.piano-view{padding:.5rem 1rem}.piano-header{margin-bottom:.35rem;padding-bottom:.35rem}.piano-controls{margin-bottom:.5rem}.piano-song-info{margin-bottom:.4rem;padding-bottom:.3rem}.piano-song-info__title{font-size:1rem}.piano-song-info__meta{font-size:.7rem;gap:.75rem}.piano-sections{gap:.35rem}.piano-section__header{margin-bottom:.2rem}.piano-section__title{font-size:.6rem}.piano-section__dot{width:6px;height:6px}.piano-section__grid{grid-template-columns:repeat(4,1fr);gap:.25rem}.piano-chord{font-size:.95rem;padding:.2rem .15rem;min-height:20px;border-radius:var(--radius-sm)}.piano-chord__content{gap:.3rem}}@media (min-width: 768px) and (max-height: 700px){.piano-section__grid{grid-template-columns:repeat(4,1fr);gap:.5rem}.piano-chord{font-size:1.5rem;padding:.4rem .3rem;min-height:36px}.piano-song-info__title{font-size:1.25rem}}@media (min-width: 1024px) and (max-height: 800px){.piano-sections{flex-direction:row;gap:1.5rem}.piano-section{flex:1;min-width:0}.piano-section__grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.piano-chord{font-size:2rem;padding:.5rem .3rem;min-height:44px}}@media (max-width: 480px){.piano-view{padding:.75rem 1rem}.piano-header__title{font-size:1rem}.piano-header__right{width:30px}.piano-section__grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.piano-chord{font-size:1.5rem;min-height:55px}.piano-song-info__title{font-size:1.2rem}.piano-song-info__meta{font-size:.7rem;gap:.75rem}}.guitar-view{position:relative;max-width:1400px;margin:0 auto;padding:1rem 1.5rem;min-height:100vh}.guitar-view:before{content:"";position:fixed;top:-200px;left:50%;transform:translate(-50%);width:800px;height:600px;background:radial-gradient(ellipse,rgba(245,158,11,.08) 0%,transparent 70%);pointer-events:none;z-index:0}.guitar-view>*{position:relative;z-index:1}.guitar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.guitar-header__left{display:flex;align-items:center;gap:.75rem}.guitar-header__back{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);text-decoration:none;letter-spacing:.05em;transition:color .2s;white-space:nowrap}.guitar-header__back:before{content:"←"}.guitar-header__back:hover{color:var(--accent-amber)}.guitar-header__center{display:flex;align-items:center;gap:.5rem}.guitar-header__title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--accent-cream)}.guitar-header__badge{display:inline-block;padding:.15rem .5rem;font-family:var(--font-mono);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--bg-deepest);background:linear-gradient(135deg,var(--accent-amber),var(--accent-gold));border-radius:var(--radius-sm)}.guitar-header__right{width:60px}.guitar-controls{margin-bottom:1rem}.guitar-controls__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.guitar-controls .song-input,.tab-generator-card{max-width:none;margin:0}.tab-generator-card{padding:1.5rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.tab-generator-card .input-header label{display:block;font-family:var(--font-mono);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.tab-generator-card__intro{margin:0 0 1rem;color:var(--text-secondary);font-size:.95rem;line-height:1.5}.tab-generator-card__target{margin-top:1rem;min-height:3.75rem;padding:.9rem 1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-dark)}.tab-generator-card__chords,.tab-generator-card__empty{margin:0;font-family:var(--font-mono);font-size:.8rem;line-height:1.6}.tab-generator-card__chords{color:var(--accent-cream)}.tab-generator-card__empty{color:var(--text-muted)}.tab-generator-card__error{margin-top:.75rem}.tab-generator-card__button{width:100%;margin-top:1rem}.custom-chord-tool{max-width:600px;margin:1rem auto 0;padding:1.25rem 1.5rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.custom-chord-tool__header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.custom-chord-tool__header label{display:block;font-family:var(--font-mono);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.custom-chord-tool__form{display:flex;flex-direction:column;gap:1rem}.custom-chord-tool__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem}.custom-chord-tool__field{display:flex;flex-direction:column;gap:.35rem}.custom-chord-tool__field--small{max-width:140px}.custom-chord-tool__field input{width:100%;padding:.8rem .9rem;border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-dark);color:var(--text-primary);font-family:var(--font-body);font-size:.95rem;transition:border-color .2s,box-shadow .2s}.custom-chord-tool__field input:focus{outline:none;border-color:var(--accent-amber);box-shadow:0 0 0 3px #f59e0b26}.custom-chord-tool__field input::placeholder{color:var(--text-muted)}.custom-chord-tool__accent-group{display:flex;gap:.5rem;flex-wrap:wrap}.custom-chord-tool__hint{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}.custom-chord-tool__actions{display:flex;align-items:center;gap:.75rem}.custom-chord-tool__button{margin:0;flex:1}.custom-chord-tool__clear{min-width:110px;justify-content:center}.custom-chord-error{font-family:var(--font-mono);font-size:.72rem;color:#fca5a5}.custom-chord-preview{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.custom-chord-preview__header{margin-bottom:.6rem}.custom-chord-tool__voicing-controls{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-bottom:.75rem}.custom-chord-tool__voicing-count{min-width:72px;text-align:center;font-family:var(--font-mono);font-size:.72rem;color:var(--text-secondary)}.custom-chord-preview__grid{display:flex;justify-content:center}.custom-chord-preview__grid .guitar-diagram{width:min(100%,180px)}.guitar-song-info{text-align:center;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.guitar-song-info__title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--accent-cream);margin-bottom:.25rem}.guitar-song-info__meta{display:flex;justify-content:center;gap:1.25rem;font-family:var(--font-mono);font-size:.8rem;color:var(--text-secondary)}.guitar-tab-band{margin-bottom:1.5rem}.guitar-tab-band__header{display:flex;align-items:center;justify-content:flex-start;margin-bottom:.6rem}.guitar-tab-band__eyebrow{font-family:var(--font-mono);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-secondary)}.guitar-tab-band__stack{display:grid;grid-template-columns:1fr;gap:1rem}.guitar-sections{display:grid;grid-template-columns:1fr;gap:1.25rem}.guitar-section-stack{display:grid;gap:.85rem}.guitar-section{min-width:0}.guitar-section__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.guitar-section__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.guitar-section__dot--verse{background:var(--section-verse)}.guitar-section__dot--chorus{background:var(--section-chorus)}.guitar-section__dot--bridge{background:var(--section-bridge)}.guitar-section__title{font-family:var(--font-mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.guitar-section__generating{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);animation:guitar-pulse 1s ease-in-out infinite}@keyframes guitar-pulse{0%,to{opacity:.4}50%{opacity:1}}.guitar-section__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem}.guitar-diagram{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:.25rem .08rem .05rem;transition:border-color .2s}.guitar-diagram--verse{border-top:2px solid var(--section-verse)}.guitar-diagram--chorus{border-top:2px solid var(--section-chorus)}.guitar-diagram--bridge{border-top:2px solid var(--section-bridge)}.guitar-diagram__header{width:100%;display:flex;align-items:center;justify-content:center;gap:.36rem;padding-top:.22rem;margin-bottom:.08rem;min-height:1.62rem}.guitar-diagram__svg{width:100%;max-width:184px;height:auto}.guitar-diagram--empty{padding:1rem .5rem;text-align:center}.guitar-diagram__name{font-family:var(--font-display);font-size:1.08rem;font-weight:700;color:var(--text-primary);line-height:1.1;text-align:center}.guitar-diagram__approx{margin-left:.12rem;color:var(--text-muted);font-size:.85rem}.guitar-diagram__no-data{font-family:var(--font-mono);font-size:1.5rem;color:var(--text-muted)}.guitar-tab-section{padding:1rem 1rem 1.1rem;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--tab-accent) 30%,var(--border-subtle));background:linear-gradient(180deg,color-mix(in srgb,var(--tab-accent) 9%,transparent),transparent 48%),var(--bg-surface);box-shadow:inset 0 1px #ffffff05;width:100%}.guitar-tab-section__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.guitar-tab-section__eyebrow{margin-bottom:.35rem;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.guitar-tab-section__title{margin:0;font-family:var(--font-display);font-size:1.15rem;color:var(--text-primary)}.guitar-tab-section__meta{display:grid;gap:.35rem;justify-items:end;font-family:var(--font-mono);font-size:.72rem;color:var(--text-secondary);text-align:right}.guitar-tab-section__source{margin-top:.8rem;font-family:var(--font-mono);font-size:.78rem;line-height:1.5;color:var(--accent-cream)}.guitar-tab-section__instructions{margin-top:.9rem;padding:.8rem .9rem;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#ffffff05}.guitar-tab-section__instructions-title{margin-bottom:.45rem;font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.guitar-tab-section__instructions-list{margin:0;padding-left:1rem;color:var(--text-secondary);font-size:.9rem;line-height:1.5}.guitar-tab-section__instructions-item+.guitar-tab-section__instructions-item{margin-top:.25rem}.guitar-tab-section__measures{display:grid;gap:.75rem;margin-top:.9rem}@media (min-width: 900px){.guitar-tab-section__measures{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start}}.guitar-tab-measure{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated);overflow:hidden}.guitar-tab-measure__label{padding:.45rem .75rem;border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.guitar-tab-measure__grid{padding:.55rem .75rem .75rem;display:grid;gap:.28rem}.guitar-tab-measure__row{display:grid;grid-template-columns:1.25rem 1fr;gap:.55rem;align-items:center}.guitar-tab-measure__string{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted)}.guitar-tab-measure__cells{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.2rem}.guitar-tab-measure__cell{min-height:2rem;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#ffffff08;color:var(--accent-cream);font-family:var(--font-mono);font-size:.8rem;border:1px solid rgba(255,255,255,.03)}@media (min-width: 900px){.guitar-sections{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1.5rem}}@media (max-height: 500px),(orientation: landscape) and (max-height: 600px){.guitar-view{padding:.5rem 1rem}.guitar-header{margin-bottom:.35rem;padding-bottom:.35rem}.guitar-controls{margin-bottom:.5rem}.guitar-controls__grid{gap:.6rem}.guitar-song-info{margin-bottom:.4rem;padding-bottom:.3rem}.guitar-tab-band{margin-bottom:.75rem}.guitar-song-info__title{font-size:1rem}.guitar-song-info__meta{font-size:.7rem;gap:.75rem}.guitar-tab-band{margin-bottom:1rem}.guitar-sections{gap:.35rem}.guitar-tab-section{padding:.75rem}.guitar-tab-measure__cell{min-height:1.5rem;font-size:.68rem}.guitar-section__header{margin-bottom:.2rem}.guitar-section__title{font-size:.6rem}.guitar-section__dot{width:6px;height:6px}.guitar-section__grid{grid-template-columns:repeat(4,1fr);gap:.25rem}.guitar-diagram{padding:.15rem .06rem .04rem;border-radius:var(--radius-sm)}.guitar-diagram__header{gap:.24rem;padding-top:.12rem;min-height:1.28rem;margin-bottom:0}.guitar-diagram__name{font-size:.78rem}.guitar-diagram__svg{max-width:112px}}@media (max-width: 480px){.guitar-view{padding:.75rem 1rem}.custom-chord-tool{padding:1rem}.guitar-controls__grid,.custom-chord-tool__fields{grid-template-columns:1fr}.custom-chord-tool__field--small{max-width:none}.custom-chord-tool__actions{flex-direction:column}.custom-chord-tool__button,.custom-chord-tool__clear{width:100%}.guitar-header__title{font-size:1rem}.guitar-header__right{width:30px}.guitar-song-info__title{font-size:1.2rem}.guitar-song-info__meta{font-size:.7rem;gap:.75rem}.guitar-tab-section__header{grid-template-columns:1fr;display:grid}.guitar-tab-section__meta{justify-items:start;text-align:left}.guitar-tab-measure__row{grid-template-columns:1rem 1fr;gap:.35rem}.guitar-tab-measure__cells{gap:.15rem}.guitar-tab-measure__cell{min-height:1.7rem;font-size:.66rem;padding:0 .1rem}.guitar-tab-section__instructions-list{font-size:.82rem}}
