:root{--font-main:'Orbitron',sans-serif;--guitar-gold:#f5c76b;--guitar-copper:#e66f4f;--guitar-mint:#72f6c7;--guitar-ink:#080a10;--guitar-panel:rgba(11,14,24,.86);--guitar-line:rgba(245,199,107,.22)}
.guitar-hero{position:relative;overflow:hidden;min-height:78vh;padding:82px clamp(22px,8vw,132px) 58px;background:linear-gradient(145deg,#080a10 0%,#15110d 48%,#061914 100%);border-bottom:1px solid var(--line)}
.guitar-hero:before{content:"";position:absolute;inset:auto -18% -45% -18%;height:70%;background:linear-gradient(90deg,transparent,rgba(245,199,107,.14),transparent);transform:skewY(-8deg);pointer-events:none}
.guitar-hero>*{position:relative;z-index:1}.guitar-hero h1{max-width:940px;margin:16px 0 24px;font-size:clamp(54px,9vw,126px);line-height:.86;letter-spacing:0}.guitar-hero h1 em{color:var(--guitar-gold);font-style:normal}.guitar-copy{max-width:660px;color:#c9c1b2;line-height:1.78}.guitar-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.guitar-actions a{padding:13px 16px;background:var(--guitar-gold);color:#130d07;font:700 10px var(--font-main)}.guitar-actions a.secondary{background:transparent;color:#fff;border:1px solid var(--guitar-line)}
.guitar-orbit{position:absolute;right:clamp(18px,7vw,115px);bottom:52px;width:min(32vw,340px);aspect-ratio:1;border:1px solid rgba(245,199,107,.22);border-radius:50%;display:grid;place-items:center;opacity:.86}.guitar-orbit:before,.guitar-orbit:after{content:"";position:absolute;border:1px solid rgba(114,246,199,.18);border-radius:50%;transform:rotate(-18deg)}.guitar-orbit:before{inset:10%}.guitar-orbit:after{inset:23%}.guitar-pick{width:34%;aspect-ratio:.76;background:linear-gradient(160deg,var(--guitar-gold),var(--guitar-copper));clip-path:polygon(50% 0,82% 30%,95% 67%,50% 100%,5% 67%,18% 30%);filter:drop-shadow(0 18px 40px rgba(245,199,107,.28));animation:pickSpin 11s linear infinite}@keyframes pickSpin{to{transform:rotateY(360deg) rotateZ(360deg)}}
.guitar-shell{display:grid;grid-template-columns:minmax(240px,.42fr) minmax(0,1fr);gap:18px;align-items:start}.guitar-console,.guitar-stage,.guitar-panel{border:1px solid var(--guitar-line);background:var(--guitar-panel);backdrop-filter:blur(16px)}.guitar-console{padding:20px;position:sticky;top:92px}.guitar-console h2,.guitar-stage h2{font-size:clamp(26px,4vw,48px);letter-spacing:0;line-height:.98;margin:8px 0 18px}.control-stack{display:grid;gap:13px}.control-stack label{display:grid;gap:8px;color:var(--guitar-gold);font:10px var(--font-main)}.control-stack select{min-height:44px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.segmented button{min-height:38px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#c9c1b2;font:10px var(--font-main);cursor:pointer}.segmented button.active{background:var(--guitar-gold);color:#130d07;border-color:var(--guitar-gold)}.listen-scale{width:100%;min-height:46px;margin-top:14px;border:0;background:var(--guitar-mint);color:#05120e;font:800 10px var(--font-main);cursor:pointer}
.guitar-stage{padding:clamp(20px,4vw,42px)}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.metric{padding:15px;border-left:2px solid var(--guitar-gold);background:rgba(245,199,107,.07)}.metric small{display:block;color:var(--guitar-gold);font:10px var(--font-main);margin-bottom:8px}.metric strong{display:block;font-size:18px;line-height:1.35}.metric span{display:block;color:#c9c1b2;font-size:13px;line-height:1.55}.note-row{display:flex;flex-wrap:wrap;gap:8px}.note-pill{min-width:42px;padding:10px 9px;border:1px solid rgba(245,199,107,.28);text-align:center}.note-pill b{display:block;color:#fff}.note-pill small{display:block;color:var(--guitar-gold);font:10px var(--font-main);margin-top:4px}
.visual-grid{display:grid;gap:18px;margin-top:18px}.guitar-panel{padding:18px;overflow:hidden}.guitar-panel h3{margin:0 0 14px;font-size:22px;letter-spacing:0}.fretboard{min-width:680px;display:grid;grid-template-rows:repeat(6,38px);border-left:5px solid #d8d0bf;background:linear-gradient(90deg,rgba(245,199,107,.08),rgba(230,111,79,.05))}.fret-row{display:grid;grid-template-columns:54px repeat(13,1fr);position:relative}.string-name{display:grid;place-items:center;color:var(--guitar-gold);font:10px var(--font-main);background:rgba(0,0,0,.2);border-right:1px solid rgba(255,255,255,.16);position:relative;z-index:2}.fret-cell{position:relative;border-left:1px solid rgba(255,255,255,.14);display:grid;place-items:center}.fret-cell::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(230,230,230,.48);transform:translateY(-50%);z-index:0}.fret-row:nth-child(1) .fret-cell::before,.fret-row:nth-child(6) .fret-cell::before{height:2px}.fret-row:nth-child(2) .fret-cell::before,.fret-row:nth-child(5) .fret-cell::before{height:1.6px}.marker{position:relative;z-index:2;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:rgba(114,246,199,.88);border:2px solid rgba(220,255,245,.92);color:#06110d;font:800 10px var(--font-main);box-shadow:0 0 0 2px rgba(6,10,16,.82),0 0 16px rgba(114,246,199,.22)}.marker.root{background:var(--guitar-gold);border-color:var(--guitar-gold);color:#130d07;box-shadow:0 0 24px rgba(245,199,107,.35)}.fret-numbers{display:grid;grid-template-columns:54px repeat(13,1fr);min-width:680px;color:#8d877c;font:10px var(--font-main)}.fret-numbers span{text-align:center;padding-top:8px}
.staff-wrap,.tab-wrap{overflow:auto}.staff-svg{min-width:680px;width:100%;height:185px;background:rgba(255,255,255,.03)}.tab-lines{min-width:680px;display:grid;gap:7px;color:#d8d0bf;font:13px var(--font-main);white-space:pre}.explain{margin-top:18px;padding:18px;border-left:2px solid var(--guitar-mint);background:rgba(114,246,199,.06);color:#c9c1b2;line-height:1.7}
.chord-section{background:linear-gradient(135deg,rgba(230,111,79,.09),rgba(114,246,199,.05) 55%,transparent)}.chord-board{display:grid;grid-template-columns:minmax(240px,.36fr) minmax(0,1fr);gap:18px}.chord-result{display:grid;grid-template-columns:minmax(260px,.52fr) minmax(0,1fr);gap:18px}.chord-name{font-size:clamp(34px,5vw,72px);line-height:.92;margin:8px 0 18px;letter-spacing:0}.chord-diagram{padding:18px;border:1px solid rgba(245,199,107,.22);background:rgba(5,7,12,.58);overflow:auto}.chord-grid{position:relative;display:grid;grid-template-columns:34px repeat(6,44px);grid-template-rows:28px repeat(5,46px) 30px;width:max-content;margin:auto;color:#c9c1b2;font:10px var(--font-main)}.chord-cell{position:relative;border-top:1px solid rgba(255,255,255,.25);display:grid;place-items:center}.chord-cell::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:rgba(230,230,230,.48);transform:translateX(-50%);z-index:0}.chord-cell:nth-child(7n + 2)::before,.chord-cell:nth-child(7n + 7)::before{width:2px}.chord-grid .nut{border-top:5px solid #d8d0bf}.chord-string-label{display:grid;place-items:center;color:var(--guitar-gold)}.chord-dot{position:relative;z-index:2;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--guitar-gold);border:2px solid #fff1c9;color:#130d07;font:800 10px var(--font-main);box-shadow:0 0 0 2px rgba(5,7,12,.86),0 0 18px rgba(245,199,107,.32)}.chord-dot.root{background:var(--guitar-mint);color:#05120e}.chord-muted{color:#e66f4f;font-weight:800}.chord-open{color:var(--guitar-mint);font-weight:800}.chord-fret-label{color:#8d877c}.chord-audio-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.chord-audio-row button{min-height:42px;padding:0 14px;border:1px solid rgba(245,199,107,.28);background:transparent;color:#fff;font:700 10px var(--font-main);cursor:pointer}.chord-audio-row .listen-scale{width:auto;margin:0;border:0}
.harmony-section{background:linear-gradient(145deg,rgba(245,199,107,.08),rgba(230,111,79,.07) 42%,rgba(114,246,199,.04))}.harmony-grid{display:grid;grid-template-columns:minmax(240px,.34fr) minmax(0,1fr);gap:18px}.circle-wrap{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(260px,1.2fr);gap:18px}.harmony-circle{position:relative;min-height:430px;border:1px solid rgba(245,199,107,.22);background:radial-gradient(circle at 50% 50%,rgba(245,199,107,.11),transparent 38%),rgba(5,7,12,.58);overflow:hidden}.degree-node{position:absolute;width:92px;min-height:72px;padding:10px;border:1px solid rgba(245,199,107,.28);background:rgba(11,14,24,.92);display:grid;place-items:center;text-align:center;transform:translate(-50%,-50%)}.degree-node b{display:block;color:var(--guitar-gold);font:800 18px var(--font-main)}.degree-node span{display:block;color:#fff;font-size:13px}.degree-node small{display:block;color:#8d877c;font:9px var(--font-main)}.degree-node.tonic{border-color:var(--guitar-mint);box-shadow:0 0 26px rgba(114,246,199,.18)}.progression-strip{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.progression-step{min-width:104px;padding:13px;border:1px solid rgba(245,199,107,.26);background:rgba(245,199,107,.07);text-align:center}.progression-step b{display:block;color:#fff;font-size:20px}.progression-step small{display:block;color:var(--guitar-gold);font:10px var(--font-main);margin-top:5px}.progression-list{display:grid;gap:8px;max-height:360px;overflow:auto}.progression-choice{padding:12px;border:1px solid rgba(245,199,107,.17);background:transparent;color:#c9c1b2;text-align:left;font:10px var(--font-main);cursor:pointer}.progression-choice.active,.progression-choice:hover{border-color:var(--guitar-mint);background:rgba(114,246,199,.08);color:#fff}.function-list{display:grid;gap:8px;margin-top:16px}.function-item{padding:11px;border-left:2px solid rgba(245,199,107,.55);background:rgba(255,255,255,.035);color:#c9c1b2;font-size:13px}.function-item b{color:#fff}
.exercise-section{background:linear-gradient(150deg,rgba(114,246,199,.07),rgba(245,199,107,.07) 45%,rgba(230,111,79,.06))}.exercise-output{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.42fr);gap:18px}.exercise-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.exercise-chip{padding:12px;border:1px solid rgba(114,246,199,.24);background:rgba(114,246,199,.06)}.exercise-chip small{display:block;color:var(--guitar-mint);font:10px var(--font-main);margin-bottom:5px}.exercise-chip b{display:block;color:#fff;font-size:15px}.exercise-notes{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.exercise-tab{min-width:680px;color:#d8d0bf;font:13px var(--font-main);white-space:pre}.practice-card{padding:16px;border-left:2px solid var(--guitar-mint);background:rgba(114,246,199,.06);color:#c9c1b2;line-height:1.65}.practice-card h3{margin:0 0 10px;font-size:22px}.practice-card ol{padding-left:18px;margin:0;display:grid;gap:8px}.range-row{display:grid;gap:8px}.range-row input{width:100%}
@media(max-width:930px){.guitar-shell{grid-template-columns:1fr}.guitar-console{position:static}.guitar-orbit{opacity:.18;right:-70px}.result-grid{grid-template-columns:1fr}}
@media(max-width:930px){.chord-board,.chord-result,.harmony-grid,.circle-wrap,.exercise-output{grid-template-columns:1fr}.harmony-circle{min-height:380px}.exercise-meta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.guitar-hero{min-height:70vh}.guitar-hero h1{font-size:clamp(48px,17vw,82px)}.segmented{grid-template-columns:1fr}.guitar-panel{padding:12px}.fretboard,.fret-numbers,.staff-svg,.tab-lines,.exercise-tab{min-width:620px}.result-grid{gap:10px}.exercise-meta{grid-template-columns:1fr}}

.guitar-audio-note{margin:-4px 0 4px;color:#8fa5b3;font-size:11px;line-height:1.55}

.study-section{background:linear-gradient(145deg,rgba(53,215,232,.05),rgba(211,43,255,.04),rgba(245,199,107,.05))}
.study-grid{display:grid;grid-template-columns:minmax(240px,.34fr) minmax(0,1fr);gap:18px}
.study-source{margin:-8px 0 18px;color:#8fa5b3;font:10px var(--font-main);line-height:1.6}
.study-tab{margin:0}
.tab-legend{margin:12px 0 0;color:#8fa5b3;font-size:12px;line-height:1.65}
.tab-legend strong{color:var(--guitar-gold)}
@media(max-width:930px){.study-grid{grid-template-columns:1fr}}

.chord-theory-section{background:linear-gradient(145deg,rgba(245,199,107,.06),rgba(114,246,199,.035),transparent)}
.chord-theory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.chord-reading-guide{margin-top:18px}
.diagram-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.diagram-guide-grid>div{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:12px;border:1px solid rgba(245,199,107,.16);background:rgba(255,255,255,.025)}
.diagram-guide-grid b{min-width:44px;color:var(--guitar-gold);font:800 13px var(--font-main)}
.diagram-guide-grid span{color:#c9c1b2;font-size:12px;line-height:1.5}
.chord-root-family{margin:0 0 12px;color:var(--guitar-mint);font:700 10px var(--font-main);letter-spacing:.08em}
.diagram-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;color:#9aa3ad;font-size:11px}
.diagram-legend span{padding:8px 10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025)}
.diagram-warning{display:grid;gap:8px;padding:18px;border:1px solid rgba(230,111,79,.35);background:rgba(230,111,79,.07)}
.diagram-warning strong{color:#ff9a7f}
.diagram-warning span{color:#c9c1b2;line-height:1.6}
@media(max-width:930px){.chord-theory-grid{grid-template-columns:1fr 1fr}.diagram-guide-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.chord-theory-grid,.diagram-guide-grid,.diagram-legend{grid-template-columns:1fr}}

.song-lab-section{background:linear-gradient(145deg,rgba(53,215,232,.055),rgba(211,43,255,.045),rgba(245,199,107,.035))}
.song-search-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:18px 0 8px}
.song-search-bar input{min-height:48px;padding:0 14px;border:1px solid rgba(255,255,255,.13);background:#09111c;color:#fff;font:13px var(--font-main);outline:none}
.song-search-bar input:focus{border-color:rgba(53,215,232,.65);box-shadow:0 0 0 3px rgba(53,215,232,.08)}
.song-search-status{margin:0 0 14px;color:#8fa5b3;font-size:12px}
.song-results{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.song-result-card{display:grid;gap:9px;text-align:left;padding:0;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.025);overflow:hidden;cursor:pointer}
.song-result-card:hover{border-color:rgba(53,215,232,.55);transform:translateY(-2px)}
.song-result-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#070b12}
.song-result-card span{display:grid;gap:5px;padding:0 10px 12px}
.song-result-card b{color:#f3f7fb;font-size:12px;line-height:1.4}
.song-result-card small{color:#8794a0;font-size:10px}
.song-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:18px;margin-top:22px}
.song-video-panel{padding:16px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.2)}
.song-video-frame{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.song-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.song-video-panel h3{margin:14px 0 5px;color:#fff;font-size:16px;line-height:1.35}
.song-video-panel p{margin:0;color:#8fa5b3;font-size:12px}
.song-generator-controls{height:max-content}
.song-practice-output{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.song-practice-output>.guitar-panel:last-child{grid-column:1/-1}
.song-chord-step{cursor:pointer}
.song-practice-steps{margin:0;padding-left:20px;color:#c9d2da;line-height:1.8}
@media(max-width:1000px){.song-results{grid-template-columns:repeat(2,minmax(0,1fr))}.song-workspace{grid-template-columns:1fr}.song-practice-output{grid-template-columns:1fr}.song-practice-output>.guitar-panel:last-child{grid-column:auto}}
@media(max-width:600px){.song-search-bar{grid-template-columns:1fr}.song-results{grid-template-columns:1fr}}

.song-resource-workbench{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.resource-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.resource-panel-head h3{margin:4px 0 0}
.resource-song-label{max-width:320px;color:#8fa5b3;font-size:11px;line-height:1.45;text-align:right}
.resource-search-grid{display:grid;gap:12px}
.resource-search-grid label{display:grid;gap:8px;color:var(--guitar-gold);font:10px var(--font-main)}
.resource-search-grid input{min-height:44px;padding:0 12px;border:1px solid rgba(255,255,255,.12);background:#09111c;color:#fff}
.resource-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.resource-actions button,.pdf-toolbar button,.pdf-upload-button{min-height:40px;padding:0 12px;border:1px solid rgba(245,199,107,.24);background:rgba(245,199,107,.06);color:#fff;font:700 9px var(--font-main);cursor:pointer;display:grid;place-items:center;text-align:center}
.resource-actions button:hover,.pdf-toolbar button:hover,.pdf-upload-button:hover{border-color:var(--guitar-mint);background:rgba(114,246,199,.08)}
.pdf-toolbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.pdf-toolbar button:disabled{opacity:.4;cursor:not-allowed}
.pdf-drop-zone{min-height:180px;border:1px dashed rgba(114,246,199,.38);background:rgba(114,246,199,.04);display:grid;place-items:center;align-content:center;text-align:center;gap:8px;padding:24px;cursor:pointer}
.pdf-drop-zone.dragging{border-color:var(--guitar-gold);background:rgba(245,199,107,.08)}
.pdf-drop-zone strong{color:#fff;font-size:15px}
.pdf-drop-zone span{max-width:520px;color:#8fa5b3;font-size:12px;line-height:1.6}
.pdf-viewer-shell{background:#05070b;border:1px solid rgba(255,255,255,.1)}
.pdf-file-meta{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.08);background:#0a0f18}
.pdf-file-meta b{color:#fff;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdf-file-meta span{color:#7f8b98;font-size:10px;text-align:right}
#guitarPdfViewer{display:block;width:100%;height:720px;border:0;background:#111}
.pdf-viewer-shell:fullscreen{width:100vw;height:100vh;background:#000}
.pdf-viewer-shell:fullscreen #guitarPdfViewer{height:calc(100vh - 42px)}
@media(max-width:1000px){.song-resource-workbench{grid-template-columns:1fr}}
@media(max-width:700px){.resource-panel-head{display:grid}.resource-song-label{text-align:left}.resource-actions{grid-template-columns:1fr}.pdf-toolbar{justify-content:flex-start}#guitarPdfViewer{height:560px}}
