:root{--ink:#f1e6d3;--ink-dim:#b8a888;--gold:#d9a84e;--gold-light:#f4dfae;--stage-bg:#14100d}body{color:var(--ink);background:radial-gradient(ellipse 65% 55% at 50% 34%, #d9a84e29, transparent 70%), var(--stage-bg);min-height:100vh;margin:0;padding:1.5rem;font-family:system-ui,sans-serif;line-height:1.6}main{max-width:54rem;margin:0 auto}.site-header nav{justify-content:center;gap:1.75rem;padding-bottom:1rem;display:flex}.site-header nav a{color:var(--ink-dim);letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;font-weight:600;text-decoration:none;transition:color .15s}.site-header nav a:hover,.site-header nav a:focus-visible,.site-header nav a[aria-current=page]{color:var(--gold-light)}.hero{text-align:center;margin-bottom:1.5rem}.hero h1{letter-spacing:.01em;background:linear-gradient(120deg, var(--gold-light), var(--gold) 60%, var(--gold-light));color:#0000;background-clip:text;margin:0;font-family:Fraunces,ui-serif,Georgia,serif;font-size:clamp(2.1rem,6vw,3.4rem);font-weight:600}.tagline{color:var(--ink-dim);letter-spacing:.02em;margin:.5rem 0 0;font-size:1rem}.stage{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem 2rem;padding:.5rem 0 1rem;display:flex;position:relative}a{color:var(--gold-light)}.key{color:#1a1a1a;cursor:pointer;user-select:none;border:none;font-size:1rem;font-weight:600;transition:background-color 80ms,transform 80ms}.key:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.music-book{perspective:1200px;grid-template-columns:minmax(0,1fr);width:min(92vw,21rem);margin:0 auto;display:grid}.book-cover,.book-pages{grid-area:1/1}.book-cover{aspect-ratio:5/3;cursor:pointer;transform-origin:top;background:linear-gradient(100deg,#1c1210 0%,#3a2420 8%,#5c342b 50%,#3a2420 92%,#1c1210 100%);border:none;border-radius:.4rem .9rem .9rem .4rem;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;width:100%;transition:transform .12s,box-shadow .12s,opacity .22s;display:flex;box-shadow:inset .3rem 0 .5rem #00000080,0 .5rem 1.25rem #00000040}.book-cover:hover{transform:translateY(-2px);box-shadow:inset .3rem 0 .5rem #00000080,0 .75rem 1.5rem #0000004d}.book-cover.is-opening{opacity:0;pointer-events:none;transform:rotateX(-35deg)scaleY(.9)}@media (prefers-reduced-motion:reduce){.book-cover{transition:none}}.book-cover-title{letter-spacing:.03em;color:#f4dfae;text-shadow:0 1px 1px #0009;font-family:Fraunces,ui-serif,Georgia,serif;font-size:clamp(1.1rem,4vw,1.6rem);font-weight:700}.book-cover-hint{color:#d8c9a8;opacity:.85;font-size:.85rem}.book-pages{transform-origin:top;animation:.2s book-open;position:relative}@keyframes book-open{0%{opacity:0;transform:scaleY(.85)}to{opacity:1;transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.book-pages{animation:none}}.close-book{z-index:1;color:#f4dfae;cursor:pointer;background:#1a1a1a;border:none;border-radius:50%;width:2rem;height:2rem;font-size:1.1rem;line-height:1;position:absolute;top:-.5rem;right:-.5rem}.book-page{background:#faf3e3;border-radius:.5rem;min-height:14rem;padding:1.5rem;position:relative;box-shadow:0 1rem 2.5rem #00000073,inset 0 0 0 1px #0000000f}.book-page .tune{animation:.18s page-settle}@keyframes page-settle{0%{opacity:0;transform:translate(.75rem)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.book-page .tune{animation:none}}.book-nav{justify-content:center;align-items:center;gap:1rem;margin-top:.75rem;display:flex}.book-nav-btn{width:2.25rem;height:2.25rem;color:var(--gold-light);cursor:pointer;background:#3a2420;border:none;border-radius:50%;font-size:1.1rem;transition:background-color .12s}.book-nav-btn:hover:not(:disabled){background:#5c342b}.book-nav-btn:disabled{opacity:.35;cursor:default}.book-page-indicator{text-align:center;min-width:3.5rem;color:var(--gold-light);font-size:.9rem;font-weight:600}.notepad{width:min(92vw,36rem);margin:0 auto}.notepad-page{min-height:4rem;padding:.85rem 1.25rem}.notepad-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.notepad-title{color:var(--gold-light);margin:0;font-family:Fraunces,ui-serif,Georgia,serif;font-size:1.05rem}.notepad-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.notepad-clear{color:var(--gold-light);cursor:pointer;background:#3a2420;border:none;border-radius:.4rem;padding:.35rem .8rem;font-size:.8rem;font-weight:600;transition:background-color .12s}.notepad-clear:hover:not(:disabled){background:#5c342b}.notepad-clear:disabled{opacity:.35;cursor:default}.notepad-notes{margin:0;line-height:1.6}.notepad-empty{color:#8a6a45;margin:0;font-style:italic}.tune h3{color:#3a2410;margin:0 0 .35rem;font-family:Fraunces,ui-serif,Georgia,serif}.tune-notes{color:#6b4a2a;margin:0 0 .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tune-controls{gap:.5rem;display:flex}.tune-play,.tune-stop{color:#4a3423;background:#ecdfc4;border:none;border-radius:.5rem;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:0;transition:background-color .12s;display:flex}.tune-play svg,.tune-stop svg{width:1rem;height:1rem}.tune-play:hover:not(:disabled),.tune-stop:hover:not(:disabled){background:#dfcda0}.tune-play:disabled,.tune-stop:disabled{opacity:.6;cursor:default}.handpan{aspect-ratio:1;touch-action:none;filter:drop-shadow(0 1rem 2.5rem #0000008c);width:min(70vw,15rem);margin:0 auto;position:relative}.handpan-shell{width:100%;height:100%;position:absolute;inset:0}.note-key{color:#e8ebf0;transform:translate(-50%, -50%) scale(var(--press-scale,1));background:radial-gradient(circle at 38% 32%,#8a94a3,#4a5261 55%,#2a2f38 100%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.05em;font-size:clamp(.85rem,3.6vw,1.2rem);display:flex;position:absolute;box-shadow:inset 0 .15rem .35rem #00000073,inset 0 -.1rem .2rem #ffffff14}.note-name,.note-key-letter{opacity:1;font-size:1em;font-weight:700}.handpan:not(.show-letters) .note-key-letter,.handpan.show-letters .note-name{opacity:.75;font-size:.6em;font-weight:500}.handpan:not(.show-letters) .note-key-letter:before,.handpan.show-letters .note-name:before{content:"("}.handpan:not(.show-letters) .note-key-letter:after,.handpan.show-letters .note-name:after{content:")"}.legend{color:var(--ink);opacity:.6;text-align:center;margin:.75rem 0 0;font-size:.78rem}.toggle-row{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.label-toggle{color:var(--ink);cursor:pointer;background:#f4dfae14;border:1px solid #f4dfae40;border-radius:999px;padding:.5rem 1.1rem;font-size:.85rem;font-weight:600;transition:background-color .12s,border-color .12s}.label-toggle:hover{background:#f4dfae29;border-color:#f4dfae66}.note-key:hover{background:radial-gradient(circle at 38% 32%,#9aa4b3,#565f6f 55%,#333944 100%)}.note-key.held{--press-scale:.92;color:#10131a;background:radial-gradient(circle at 38% 32%,#cdd6e6,#7885a0 55%,#454e5f 100%)}.video-grid{grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:2rem;max-width:54rem;margin:0 auto;display:grid}.video-card{background:#f4dfae0a;border:1px solid #f4dfae26;border-radius:.75rem;flex-direction:column;gap:.75rem;margin:0;padding:1rem;display:flex;box-shadow:0 1rem 2.5rem #00000059}.video-frame{aspect-ratio:16/9;background:#000;border-radius:.5rem;position:relative;overflow:hidden}.video-frame iframe{border:none;width:100%;height:100%;position:absolute;inset:0}.video-title{color:var(--gold-light);margin:0;font-family:Fraunces,ui-serif,Georgia,serif;font-size:1.05rem;font-weight:600}.video-author{color:var(--ink-dim);margin:0;font-size:.85rem}.video-author a{color:var(--gold)}
