/* Toby belongs to the bottom edge, in front of the book. */
.home-page .hero-art{bottom:0;height:100%;overflow:visible}
.home-page .hero-book{z-index:1;bottom:-12px;width:64%;height:100%}
.home-page .hero-toby{z-index:4;bottom:-5px;width:61%;left:-1%}
/* A clear page edge makes the cropped illustration feel intentional. */
.games-menu-scene{min-height:740px}
.games-menu .menu-toby{bottom:-4px;height:425px;width:465px;max-height:none;object-fit:cover;object-position:top;left:-12px;z-index:2}
.games-menu #footer{position:relative;z-index:4;border-top:5px solid var(--gold);background:white}
.games-menu .footer{background:white;color:var(--deep);padding:22px 20px}
/* The Studio keeps the book's illustrated lettering and colour. */
.studio-banner{background:#004b37 url('/assets/evergreen.webp') center/cover;color:white;overflow:hidden;border-bottom:5px solid var(--gold)}
.studio-banner-inner{position:relative;min-height:335px;display:flex;align-items:center;padding-top:20px;padding-bottom:25px}
.studio-banner-copy{position:relative;z-index:2;width:70%}
.studio-title{width:100%;max-width:495px;margin:0 0 5px}
.studio-title>img{max-height:186px;object-position:left center}
.studio-banner .lead{font-family:Nunito,sans-serif;font-size:25px;font-weight:900;margin:7px 0 13px}
.studio-speed-key{display:flex;gap:25px;align-items:center}
.studio-speed-key>span{display:flex;align-items:center;gap:9px}
.studio-speed-key img{width:50px;height:49px;object-fit:contain}
.studio-speed-key b{font-size:18px;line-height:1.16}.studio-speed-key small{display:block;font-size:14px;color:#e0f1e8;margin-top:3px}
.studio-toby{position:absolute;bottom:-8px;right:34px;width:365px;height:322px;object-fit:cover;object-position:top}
.missing-song{padding:7px 12px;background:white;color:var(--deep);border-radius:8px;display:inline-block;margin:8px 0 0;font-weight:800}
.song-library{padding-top:10px}.studio-library .song-group{margin-top:22px}
/* Track labels explain the two simultaneous parts. */
.mode-help{font:600 14px/1.35 Nunito,sans-serif;color:#52645d;margin:10px 0 0;min-height:38px}
.both-tracks{display:grid;grid-template-columns:1.1fr 1fr;gap:14px;margin:4px 0 16px;align-items:stretch}
.both-tracks>.live-chord{width:100%;min-height:185px;grid-template-columns:1fr auto 1fr;gap:0 12px}
.both-tracks .chord-letter{font-size:100px;line-height:1.1}
.both-tracks .next-chord{font-size:17px;line-height:1.2;align-self:center}
.both-tracks .chord-name{font-size:15px}
.tune-track{border:2px solid #ecd567;background:#fff5c7;border-radius:19px;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:14px 12px;min-width:0}
.track-label{font-size:15px;font-weight:900;color:#00523d;margin-bottom:15px}
.note-position{white-space:nowrap;font-family:Nunito,sans-serif;font-size:clamp(21px,3vw,36px);font-weight:700}
.note-position b{font-size:1.4em;font-weight:1000;color:var(--green)}.note-position i{font-style:normal;color:#93a29b;padding:0 4px}
.compact-note .note-position{font-size:clamp(17px,1.8vw,24px)}.compact-note small{font-size:15px;margin-top:8px}
.tune-waiting{display:flex;flex-direction:column;gap:8px;font-size:17px;line-height:1.25}.tune-waiting strong{font-size:23px;color:var(--deep)}.tune-waiting span{font-size:15px}.note-rest{font-size:36px}
/* One readable guide. Button geometry stays identical on hover and focus. */
.clean-guide{padding:24px;overscroll-behavior:contain;background:#002c23ba;align-items:center}
.clean-guide .guide-dialog{width:min(100%,550px);max-height:calc(100dvh - 48px);overflow-y:auto;border:3px solid var(--gold);border-radius:25px;padding:27px;background:white;box-shadow:0 20px 65px #001f2766}
.clean-guide h2{font-family:Nunito,sans-serif;font-size:28px;font-weight:1000;line-height:1.15;margin:0 0 7px;color:var(--deep)}
.guide-intro{font-size:16px;color:#53635e;margin:0 0 20px}
.guide-steps{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-direction:column;gap:12px}
.guide-steps li{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:16px 12px;background:#f3f7f3;border-radius:15px;border:1px solid #dbe7de}
.guide-step-number{background:var(--gold);color:var(--deep);border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font:1000 22px Nunito,sans-serif}
.guide-steps strong{display:block;font-family:Nunito,sans-serif;font-size:19px;font-weight:1000;color:var(--deep);margin-bottom:5px}
.guide-steps p{font:600 16px/1.35 Nunito,sans-serif;margin:0;color:#263c35}.guide-steps li:last-child>div{grid-column:2/-1}
.guide-mini-play{width:49px;height:49px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:var(--green)}.guide-mini-play svg{width:25px;height:25px;margin-left:4px}
.guide-speed-pictures{width:53px;display:grid;gap:2px}.guide-speed-pictures img{width:49px;height:30px;object-fit:contain}
.clean-guide #got-it{width:100%;min-height:58px;font:1000 20px Nunito,sans-serif;position:static;transform:none!important;transition:background .15s,box-shadow .15s;flex:none}
.clean-guide #got-it:hover{background:#006e4e;filter:none}.clean-guide #got-it:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.guided-target{border-radius:17px}.guide-number{left:auto;right:-12px;top:-13px;padding:0;width:34px;height:34px;display:grid;place-items:center;font:1000 21px Nunito,sans-serif;border:2px solid white}
@media(min-width:1000px){.guide-beside-controls{justify-content:flex-end;padding-right:clamp(25px,7vw,130px)}.guide-beside-controls .guide-dialog{width:520px}}
/* A correct answer produces a short, positive visual response. */
.quiz-shell{position:relative}.round-progress{display:flex;justify-content:center;gap:10px;margin:14px 0 0;font-family:Nunito,sans-serif;font-size:26px;line-height:1;color:#a8b7af}
.round-progress .earned{color:#d79900;animation:star-earned .35s ease-out}.round-progress .try-again{color:#638678}
.quiz-diagram{position:relative;border-radius:24px;transition:background .2s,box-shadow .2s}
.quiz-diagram.answer-success{background:#e5f7df;box-shadow:0 0 0 3px #3ca867;animation:diagram-win .45s ease-out}
.quiz-diagram.answer-learn{background:#fff8dc;box-shadow:0 0 0 2px #e5c857}
.answer.correct{animation:answer-win .45s ease-out}.answer.wrong{animation:answer-nudge .25s ease-out}
.answer-effects{position:absolute;inset:0;pointer-events:none}.burst-star{position:absolute;left:50%;top:45%;font:900 30px Nunito,sans-serif;color:#ffc918;text-shadow:0 2px white,0 -1px #b98900;opacity:0;animation:star-burst .9s var(--delay) ease-out both;pointer-events:none}
.feedback{min-height:52px;display:flex;justify-content:center;align-items:center;gap:8px;font-family:Nunito,sans-serif;font-size:21px;font-weight:900;border-radius:14px;padding:8px 12px;margin-top:16px;line-height:1.25}
.feedback-success{background:#e5f7df;color:#006342}.feedback-success>span{color:#e3a800;font-size:30px}.feedback-learn{background:#fff3c9;color:#5e480b;font-size:18px;flex-wrap:wrap}
/* A reward card makes finishing a round feel different from leaving it. */
.game-results #main{position:relative;overflow:hidden;background:var(--green) url('/assets/evergreen.webp') center/cover;min-height:calc(100vh - 140px)}
.result-scene{padding:18px 0 45px;position:relative}.result-wrap{max-width:900px}.result-back{display:inline-flex;color:white;font-size:17px;margin:0 0 18px;padding:7px 0}
.result-card{position:relative;background:#fffdf7;border:3px solid #f4d353;border-radius:30px;padding:22px 38px 28px;text-align:center;box-shadow:0 14px 40px #00251d44;overflow:hidden}
.result-art{position:relative;height:180px;max-width:345px;margin:0 auto 8px}.reward-image{height:165px;width:170px;object-fit:contain;margin:0 auto;position:relative;z-index:2;animation:reward-arrive .55s ease-out both}

.perfect-result .result-art{height:208px}.perfect-result .reward-image{height:215px;width:235px}
.result-kicker{display:inline-block;color:var(--green);font:1000 19px Nunito,sans-serif;margin:1px 0 12px}
.result-card h1{font:1000 clamp(27px,3.4vw,39px)/1.12 Nunito,sans-serif;margin:0 0 10px;color:var(--ink)}.result-card h1 strong{display:block;color:var(--green);font:clamp(44px,6vw,66px)/1.2 TobyDisplay,sans-serif;margin-top:4px}
.result-stars{display:flex;justify-content:center;gap:9px;font:1000 35px Nunito,sans-serif;color:#d4dbd4;margin:0 0 12px}.result-stars .lit{color:#e8b10c;text-shadow:0 2px #b77b0b}
.result-best{display:inline-block;padding:6px 17px;border-radius:30px;background:#e6f2e6;color:#00513b;font-size:17px;font-weight:950;margin:0 0 14px}
.result-encouragement{font-size:18px;line-height:1.4;max-width:505px;margin:0 auto 20px}.result-pair{font:35px TobyDisplay,sans-serif;margin:2px 0 13px}
.result-card .result-actions{justify-content:center;gap:13px;margin:0;display:flex;flex-wrap:wrap}.result-card .result-actions .btn{font-size:19px;min-width:180px;min-height:56px}
.result-practice{border-top:1px solid #d7dfd4;margin-top:25px;padding-top:20px}.result-practice h2{font:1000 21px Nunito,sans-serif;margin:0 0 5px}.result-practice p{font-size:16px;margin:0 0 13px;color:#53635a}
.practice-chords{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.practice-chords>div{padding:10px 5px;background:#edf3e8;border:1px solid #d6e4d4;border-radius:12px}.practice-chords strong{display:block;font-size:17px}.practice-chords small{display:block;font-size:14px;margin-top:3px;color:#4e6758}
.game-results .footer{background:white;color:var(--deep);border-top:4px solid var(--gold)}
.celebration-rain{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}.celebration-rain>span{position:absolute;top:-65px;left:var(--x);font:1000 var(--size) Nunito,sans-serif;color:#ffd429;text-shadow:0 2px #c48b0c;animation:star-rain var(--duration) var(--delay) linear both}.celebration-rain>span:nth-child(3n){color:#fff39b}.celebration-rain>span:nth-child(5n){color:#ef2939;text-shadow:0 2px #c31127}
@keyframes star-rain{0%{transform:translateY(-20px) rotate(0);opacity:0}8%{opacity:1}85%{opacity:1}100%{transform:translateY(calc(100vh + 100px)) rotate(var(--turn));opacity:0}}
@keyframes star-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.35)}15%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--turn)) scale(.85)}}
@keyframes star-earned{50%{transform:scale(1.4)}100%{transform:scale(1)}}
@keyframes diagram-win{50%{transform:scale(1.025)}100%{transform:scale(1)}}
@keyframes answer-win{45%{transform:translateY(-3px)}100%{transform:translateY(0)}}
@keyframes answer-nudge{30%{transform:translateX(-3px)}65%{transform:translateX(3px)}100%{transform:translateX(0)}}
@keyframes reward-arrive{0%{opacity:0;transform:translateY(18px) scale(.7)}75%{transform:translateY(-5px) scale(1.07)}100%{opacity:1;transform:none}}
@media(max-width:1150px) and (min-width:761px){.home-page .hero-art{bottom:0}.studio-toby{right:8px;width:310px;height:282px}.studio-title{max-width:440px}.both-tracks{grid-template-columns:1fr 1fr;gap:8px}.both-tracks .chord-letter{font-size:82px}.both-tracks>.live-chord{gap:0 7px}.both-tracks .next-chord{font-size:14px}.tune-track{padding:10px}.compact-note .note-position{font-size:17px}}
@media(max-width:760px){.home-page .hero-art{height:350px;bottom:auto;margin-bottom:0}.home-page .hero-toby{bottom:-8px;width:66%;left:-5%;z-index:4}.home-page .hero-book{bottom:-10px;width:64%;height:100%;right:-7px}.games-menu-scene{min-height:0}.games-menu .menu-toby{position:relative;bottom:-5px;left:0;height:290px;width:340px;max-width:92%;object-fit:cover;object-position:top;margin:8px auto 0}.games-menu .footer{padding:19px 20px;font-size:12px}.studio-banner-inner{min-height:294px;padding:18px 22px 19px;align-items:flex-start}.studio-banner-copy{width:100%}.studio-title{max-width:345px;width:100%;margin:0 auto 6px}.studio-title>img{max-height:138px;object-position:center}.studio-banner .lead{font-size:20px;margin:7px 0 12px}.studio-speed-key{gap:15px;position:relative;z-index:2;display:inline-flex;padding:7px 10px 7px 0;border-radius:15px;background:#004e3bf2}.studio-speed-key>span{gap:4px}.studio-speed-key img{width:37px;height:37px}.studio-speed-key b{font-size:15px}.studio-speed-key small{font-size:14px}.studio-toby{right:-25px;bottom:-7px;height:160px;width:186px}.song-library{padding-top:0}.studio-library .song-group{margin-top:19px}.mode-help{min-height:0;margin-top:8px;font-size:14px}.both-tracks{gap:9px;grid-template-columns:1fr 1fr;margin-bottom:9px}.both-tracks>.live-chord{min-height:155px;grid-template-columns:1fr auto;gap:0 6px}.both-tracks .chord-now{grid-column:1/-1;font-size:14px}.both-tracks .chord-letter{font-size:76px;grid-column:1;grid-row:2}.both-tracks .chord-name{grid-column:1/-1;font-size:14px}.both-tracks .next-chord{grid-column:2;grid-row:2;font-size:14px}.tune-track{padding:11px 7px;border-radius:16px}.track-label{font-size:14px;margin-bottom:12px}.compact-note .note-position{font-size:14px;white-space:normal}.compact-note .note-position b{font-size:25px}.compact-note .note-position i{padding:0 1px}.compact-note small{font-size:14px;margin-top:9px}.tune-waiting strong{font-size:19px}.tune-waiting span{font-size:14px;line-height:1.3}.note-position{font-size:26px}.clean-guide{padding:15px}.clean-guide .guide-dialog{padding:22px 18px;max-height:calc(100dvh - 30px);border-radius:23px}.clean-guide h2{font-size:26px}.guide-intro{font-size:15px;margin-bottom:16px}.guide-steps{gap:10px;margin-bottom:18px}.guide-steps li{padding:13px 10px;grid-template-columns:31px 1fr auto;gap:9px}.guide-step-number{width:30px;height:30px;font-size:19px}.guide-steps strong{font-size:18px}.guide-steps p{font-size:16px;line-height:1.3}.guide-mini-play{width:36px;height:36px}.guide-speed-pictures{width:38px}.guide-speed-pictures img{width:35px;height:26px}.clean-guide #got-it{font-size:19px;min-height:55px}.round-progress{gap:8px;font-size:23px;margin-top:13px}.quiz-diagram .chord-diagram{max-height:278px}.feedback{font-size:20px;min-height:51px}.feedback-learn{font-size:17px}.result-scene{padding:10px 0 24px}.result-wrap{padding:0 15px}.result-back{margin-bottom:10px;font-size:16px}.result-card{padding:19px 17px 23px;border-radius:25px}.result-art{height:151px;max-width:270px}.perfect-result .result-art{height:177px}.perfect-result .reward-image{height:182px;width:205px}.result-kicker{font-size:17px;margin-bottom:10px}.result-card h1{font-size:27px}.result-card h1 strong{font-size:48px}.result-stars{font-size:29px;margin-bottom:10px}.result-best{font-size:15px}.result-encouragement{font-size:17px;margin-bottom:18px}.result-card .result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-card .result-actions .btn{font-size:16px;min-width:0;min-height:53px;padding:12px 9px}.practice-chords{grid-template-columns:repeat(2,1fr);gap:8px}.result-practice{margin-top:22px;padding-top:18px}.result-practice h2{font-size:20px}}
@media(max-width:380px){.home-page .hero-art{height:310px}.studio-toby{width:165px;height:147px;right:-23px}.studio-speed-key{gap:10px}.studio-speed-key img{width:30px}.guide-steps li{grid-template-columns:28px 1fr;gap:9px}.guide-mini-play,.guide-speed-pictures{display:none}.clean-guide h2{font-size:24px}.guide-intro{font-size:14px}.round-progress{gap:7px}.both-tracks .chord-letter{font-size:63px}.both-tracks .next-chord{font-size:14px}.result-card h1 strong{font-size:44px}}
@media(prefers-reduced-motion:reduce){.burst-star,.celebration-rain{display:none!important}.answer,.quiz-diagram,.round-progress span,.reward-image{animation:none!important;transition:none!important}}
/* Keep the Studio title and Toby in one compact composition. */
.studio-banner-inner{max-width:950px;display:grid;grid-template-columns:1.24fr 1fr;gap:18px;min-height:315px;padding:18px 28px 0;align-items:end}
.studio-banner-copy{width:100%;padding-bottom:22px}
.studio-title{width:100%;max-width:475px;margin:0 0 6px}
.studio-title>img{max-height:none;width:100%;object-position:left center}
.studio-banner .lead{font-size:23px;margin:9px 0 12px}
.studio-toby{position:relative;right:auto;bottom:-8px;width:100%;height:302px;max-width:385px;object-fit:cover;object-position:top;align-self:end}
.studio-speed-key img{width:43px;height:43px}.studio-speed-key b{font-size:17px}
/* A cheering pose belongs to Games; the phone stays in Studio. */
.games-menu .menu-toby{width:420px;height:420px;left:8px;bottom:-5px;object-fit:cover;object-position:top;max-width:100%}
/* Player hierarchy: controls, count, and two clearly separated musical parts. */
.studio-player #main{background:#f0f5ef}.studio-player .player-wrap{max-width:1320px;padding:20px 30px 35px}.studio-player .player-top{margin-bottom:19px}
.studio-player .player-layout{grid-template-columns:258px minmax(0,1fr);gap:24px;align-items:start}
.studio-player .player-controls{background:white;border:1px solid #d0e0d4;border-radius:22px;padding:21px 17px 8px;box-shadow:0 3px 0 #dce6dc}
.studio-player .player-controls legend{font:1000 20px Nunito,sans-serif;color:var(--deep)}
.studio-player .player-display{border:2px solid #96b9a1;background:#fffef8;border-radius:24px;padding:24px 26px 20px;min-height:0;box-shadow:0 4px 0 #d9e4d7}
.studio-player .song-heading{margin-bottom:17px}.studio-player .song-heading h1{font-size:clamp(35px,4vw,52px);line-height:1.08;margin:0 0 9px}.studio-player .song-heading .page-line{font-size:15px;line-height:1.4;color:#536a5d}
.playback-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;min-height:30px}
.playback-meta .live-status{margin:0;min-height:0;flex-shrink:0;background:#e5f1df;color:#07593e;border-radius:20px;padding:5px 11px;font:900 14px/1.25 Nunito,sans-serif}
.playback-meta .bar-meta{font:800 14px/1.35 Nunito,sans-serif;text-align:right;color:#536a5d}
.studio-player .beat-row{display:grid;grid-template-columns:repeat(var(--counts,4),minmax(0,1fr));gap:9px;max-width:none;width:100%;margin:0 0 18px}
.studio-player .beat-row .beat{width:auto;max-width:none;min-width:0;min-height:0;height:82px;aspect-ratio:auto;flex:none;padding:0;border:2px solid #bfd0c1;border-radius:16px;box-shadow:0 2px #dce3d6;font:51px/1 TobyDisplay,sans-serif;display:grid;place-items:center;background:#fff;color:#00543e}
.studio-player .beat-row .beat.active{background:var(--gold);border-color:#006449;box-shadow:0 2px #008357;color:#003f2a}.studio-player .beat-row.six .beat{height:77px;font-size:44px}
.studio-player #live-music{margin:0}.studio-player #live-music.both-tracks{grid-template-columns:1fr 1fr;gap:14px;margin:0;align-items:stretch}
.studio-player .chord-track{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:0;width:100%;max-width:510px;min-height:252px;margin:0 auto;background:#edf6e8;border:2px solid #b6d3b7;border-radius:19px;padding:13px 14px 0;overflow:hidden;text-align:center}
.track-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:31px;margin-bottom:9px}
.track-heading .chord-now,.track-heading .track-label{font:1000 15px Nunito,sans-serif;color:var(--deep);margin:0;text-align:left;white-space:nowrap}
.strum-action,.note-action{font:850 14px/1.15 Nunito,sans-serif;color:#305941;border-radius:15px;padding:5px 9px;background:#dcebd5;white-space:nowrap;min-height:26px;transition:background .12s,color .12s}
.striking .strum-action{background:#006746;color:white}.note-action{background:#fae899;color:#735708}.picking .note-action{background:#dfb211;color:#362d07}.note-action:empty{display:none}
.studio-player .chord-track .chord-letter{font:92px/1.03 TobyDisplay,sans-serif;color:#00553c;margin:0}
.studio-player .chord-track .chord-name{font:900 15px/1.3 Nunito,sans-serif;color:#335c44;margin:3px 0 0}
.strum-strings{font:700 14px/1.3 Nunito,sans-serif;color:#4a6752;margin:5px 0 10px}
.studio-player .chord-track .next-chord{display:flex;justify-content:center;align-items:center;gap:10px;width:calc(100% + 28px);margin:0 -14px;padding:8px 10px;background:#f6faf1;border-top:1px solid #c4d9bd;font:800 14px Nunito,sans-serif;color:#637967;align-self:auto;white-space:normal;text-align:center;margin-top:auto}
.next-chord>b{font:25px TobyDisplay,sans-serif;color:#5d7663}.later-note{padding:4px;font-size:14px}
.studio-player .tune-track{min-height:252px;padding:13px 14px 15px;border:2px solid #e6cf73;border-radius:19px;background:#fff3bc;display:flex;flex-direction:column;justify-content:flex-start;align-items:center}
.studio-player .live-note{margin:auto;width:100%;text-align:center}
.studio-player .note-position{display:flex;justify-content:center;align-items:center;gap:17px;font:800 17px/1.25 Nunito,sans-serif;white-space:normal}
.studio-player .note-position>span{display:flex;flex-direction:column;align-items:center;gap:4px}
.studio-player .note-position b{font:1000 58px/1.1 Nunito,sans-serif;letter-spacing:-2px;color:#00563f}
.studio-player .note-position i{font:35px Nunito,sans-serif;color:#b99e44;padding:9px 0 0}
.studio-player .live-note small{font:800 15px/1.3 Nunito,sans-serif;color:#685d37;margin-top:12px;min-height:20px}
.studio-player .tune-waiting{margin:auto;gap:10px;max-width:220px}.studio-player .tune-waiting strong{font:1000 22px/1.2 Nunito,sans-serif}.studio-player .tune-waiting span{font:700 15px/1.35 Nunito,sans-serif}
.studio-player .words{min-height:43px;margin:18px 0 0;gap:6px;border-top:1px solid #e1e6d9;padding-top:15px}.studio-player .word{font-size:30px}
.count-in-message{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:220px;border:2px dashed #b8ceb3;border-radius:20px;color:var(--deep);background:#f1f7e9;text-align:center}.count-in-message strong{font:34px TobyDisplay,sans-serif}.count-in-message span{font:800 20px Nunito,sans-serif}
/* Explain the race's real guitar task and the meaning of each highlighted card. */
.race-rules-summary{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:5px 0 24px}.race-rules-summary>span{padding:7px 13px;background:#eff5e9;border:1px solid #cfdfc8;border-radius:24px;color:#29533a;font-size:15px;font-weight:800}
.race-card-cue{display:block;text-align:center;min-height:25px;font:900 15px/1.3 Nunito,sans-serif;border-radius:20px;padding:4px 10px;margin:0 auto 8px;background:#e7eede;color:#52664c;max-width:165px}
.race-chord.selected .race-card-cue{background:var(--gold);color:#00492f}.race-chords .race-chord{position:relative}.race-chords .race-chord h2{margin-top:0}
.race-how{padding:20px 22px;margin:18px auto 20px;background:#f0f6e9;border:1px solid #cdddc4;border-radius:20px;max-width:530px;text-align:left}
.race-how h2{font:1000 24px Nunito,sans-serif;margin:0 0 14px;color:var(--green)}.race-how ol{list-style:none;padding:0;margin:0;display:grid;gap:12px}.race-how li{display:flex;align-items:flex-start;gap:10px;font:700 17px/1.35 Nunito,sans-serif}.race-how li>b{display:grid;place-items:center;background:var(--gold);color:var(--deep);border-radius:50%;width:27px;height:27px;flex:none;font:1000 18px Nunito,sans-serif}.race-how p{margin:16px 0 0;padding-top:13px;border-top:1px solid #ccdcc3;font:700 15px/1.45 Nunito,sans-serif;color:#4c6350}
.race-next-instruction{text-align:center;font:750 19px/1.4 Nunito,sans-serif;margin:17px 0 3px}.race-next-instruction strong{font-weight:1000;color:var(--green)}.race-count-note{text-align:center;font:700 15px/1.35 Nunito,sans-serif;color:#53624f;margin:15px 0 0}
.race-shell .timer{margin:10px 0 16px}.race-shell .timer b{font-size:78px}.race-shell .tap-change{min-height:220px}.race-shell .tap-change>small{font:800 17px/1.35 Nunito,sans-serif;margin-top:13px}
@media(max-width:1100px) and (min-width:761px){.studio-player .player-wrap{padding-left:23px;padding-right:23px}.studio-player .player-layout{grid-template-columns:228px minmax(0,1fr);gap:18px}.studio-player .player-controls{padding:18px 13px 6px}.studio-player .player-display{padding:21px 19px 17px}.studio-player .track-heading{flex-wrap:wrap;justify-content:center;gap:5px}.studio-player .chord-track,.studio-player .tune-track{min-height:263px}.studio-player .track-heading .chord-now,.studio-player .track-heading .track-label{font-size:14px}.studio-player .note-position{gap:11px;font-size:16px}.studio-player .note-position b{font-size:51px}.studio-player .song-heading h1{font-size:41px}.playback-meta{align-items:flex-start}.playback-meta .bar-meta{font-size:14px}.studio-player .word{font-size:27px}}
@media(max-width:760px){.studio-banner-inner{display:block;padding:16px 22px 0;min-height:296px;max-width:550px;margin:auto}.studio-banner-copy{padding-bottom:16px}.studio-title{max-width:325px;margin:0 auto 5px}.studio-title>img{max-height:138px;object-position:center}.studio-banner .lead{font-size:20px;margin:8px 0 9px}.studio-speed-key img{width:36px;height:36px}.studio-speed-key b{font-size:15px}.studio-toby{position:absolute;right:-18px;bottom:-8px;width:178px;height:156px;max-width:none}.games-menu .menu-toby{width:315px;height:330px;max-width:93%;left:0;bottom:-6px;object-fit:cover;object-position:top;margin:12px auto 0}.studio-player .player-wrap{padding:12px 15px 25px}.studio-player .player-top{margin-bottom:12px}.studio-player .player-layout{display:flex;gap:15px}.studio-player .player-controls{width:100%;padding:16px 14px 5px;border-radius:20px}.studio-player .player-controls legend{font-size:18px}.studio-player .player-mobile-heading{margin-bottom:16px}.studio-player .player-mobile-heading h1{font-size:35px;line-height:1.1}.studio-player .player-mobile-heading p{font-size:14px;line-height:1.4;color:#4f6959}.studio-player .player-display{width:100%;padding:14px 12px 16px;border:1px solid #a9c4ae;border-radius:20px;background:#fffef8}.playback-meta{align-items:center;margin-bottom:12px;gap:8px}.playback-meta .live-status{font-size:14px;padding:4px 8px;flex-shrink:1;max-width:48%}.playback-meta .bar-meta{font-size:14px;max-width:54%}.studio-player .beat-row{gap:6px;margin-bottom:13px}.studio-player .beat-row .beat{height:63px;border-radius:12px;font-size:39px}.studio-player .beat-row.six .beat{height:57px;font-size:32px}.studio-player #live-music.both-tracks{gap:8px;grid-template-columns:1fr 1fr}.studio-player .chord-track,.studio-player .tune-track{padding:10px 8px 0;min-height:239px;border-radius:16px;max-width:100%}.studio-player .tune-track{padding-bottom:11px}.studio-player .track-heading{min-height:46px;flex-wrap:wrap;justify-content:center;gap:5px;margin-bottom:5px}.track-heading .chord-now,.track-heading .track-label{font-size:14px;text-align:center}.strum-action,.note-action{font-size:14px;min-height:23px;padding:3px 7px}.studio-player .chord-track .chord-letter{font-size:77px}.studio-player .chord-track .chord-name{font-size:14px}.strum-strings{font-size:14px;margin:5px 0 8px}.studio-player .chord-track .next-chord{font-size:14px;width:calc(100% + 16px);margin:0 -8px;margin-top:auto;padding:7px 6px;gap:7px}.next-chord>b{font-size:22px}.studio-player .note-position{font-size:15px;gap:9px}.studio-player .note-position b{font-size:44px}.studio-player .note-position i{font-size:26px}.studio-player .live-note small{font-size:14px;margin-top:12px}.studio-player .tune-waiting strong{font-size:18px;line-height:1.2}.studio-player .tune-waiting span{font-size:14px}.studio-player .words{padding-top:11px;margin:13px 0 0;min-height:36px;gap:4px}.studio-player .word{font-size:25px}.count-in-message{min-height:190px;padding:10px}.count-in-message strong{font-size:29px}.count-in-message span{font-size:18px}.race-card-cue{font-size:14px;padding:4px 8px;margin-bottom:7px}.race-how{padding:17px 15px;margin-top:16px}.race-how h2{font-size:23px}.race-how li{font-size:16px}.race-how p{font-size:15px}.race-next-instruction{font-size:17px;margin-top:14px}.race-count-note{font-size:14px}.race-shell .timer b{font-size:70px}.race-shell .timer{margin:8px 0 13px}.race-shell .tap-change{min-height:202px}.race-shell .tap-change>small{font-size:16px;margin-top:11px}}
@media(max-width:380px){.studio-banner .lead{font-size:18px}.studio-toby{width:159px;height:142px;right:-22px}.studio-player .player-wrap{padding-left:11px;padding-right:11px}.studio-player .player-display{padding-left:9px;padding-right:9px}.studio-player .note-position{gap:5px;font-size:14px}.studio-player .note-position b{font-size:38px}.studio-player .chord-track .chord-letter{font-size:68px}.studio-player .chord-track .next-chord{font-size:14px;gap:6px}.strum-strings{font-size:14px;max-width:130px}.studio-player .word{font-size:23px}.race-shell .tap-change>small{font-size:15px}}
/* Keep the book's QR crisp and encode the final printed address exactly. */
.home-page .spread .book-preview{position:relative;width:109%;margin-left:-5%;line-height:0}
.home-page .spread .book-preview .interior-open-book{width:100%;max-width:100%;margin:0}
.book-studio-code{position:absolute;display:block;line-height:0;background:white;aspect-ratio:1;left:67.55%;top:49.73%;width:10.7%}
.book-studio-code>img{display:block;width:100%;height:100%;margin:0;filter:none;border:0;box-shadow:none}
.book-studio-code:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.certificate-controls .printer-link{display:block;text-align:left;line-height:1.4}
@media(max-width:760px){.home-page .spread .book-preview{width:108%;margin-left:-4%}.home-page .spread .book-preview .interior-open-book{width:100%;margin:0}}
.home-page .spread .book-studio-code>img{width:100%;height:100%;max-width:none;transform:none;transform-origin:center;position:static;filter:none;border:0;border-radius:0;box-shadow:none;background:white}

/* Practice feels encouraging; the gold celebration belongs to a win. */
.result-card.practice-result{border-color:#9fbda4}
.result-coach{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:23px;max-width:560px;margin:0 auto 23px;padding:16px 26px 13px 18px;background:#e7f1e3;border:1px solid #bed3b7;border-radius:24px;text-align:left;animation:coach-arrive .4s ease-out both}
.result-coach .practice-toby{display:block;width:150px;height:188px;max-width:100%;object-fit:contain;object-position:center bottom;align-self:end;margin:0;border-radius:0}
.result-coach-copy{min-width:0;padding:0 0 5px}
.result-coach-copy>span{display:block;font:900 14px/1.3 Nunito,sans-serif;letter-spacing:.04em;color:#41634a;margin:0 0 7px}
.result-coach-copy .coach-title{font:clamp(26px,3.2vw,34px)/1.08 TobyDisplay,sans-serif;color:var(--green);margin:0 0 10px;text-wrap:balance}
.result-coach-copy>p:last-child{font:700 17px/1.4 Nunito,sans-serif;margin:0;color:#254932}
.result-round{display:flex;justify-content:center;gap:6px;max-width:390px;margin:15px auto 17px}
.result-round>span{display:grid;place-items:center;flex:1;min-width:0;max-width:31px;aspect-ratio:1;border-radius:50%;font:900 18px/1 Nunito,sans-serif}
.result-round .recognised{background:#006446;color:white;border:1px solid #006446}
.result-round .to-practise{background:#edf0e8;color:#6b7c69;border:1px solid #c3cdbb}
.perfect-result .result-art{display:grid;place-items:center;width:250px;height:213px;max-width:100%;margin:0 auto 12px;background:radial-gradient(ellipse at center,#fff0a7 0,rgba(255,240,167,.65) 36%,transparent 71%)}
.perfect-result .reward-image{width:215px;height:208px;display:block}
.result-card .result-actions{flex-direction:row}
@keyframes coach-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:760px){
 .result-coach{grid-template-columns:minmax(90px,37%) minmax(0,1fr);gap:12px;padding:13px 13px 10px 8px;margin-bottom:19px;border-radius:19px}
 .result-coach .practice-toby{width:100%;height:auto;aspect-ratio:4/5}
 .result-coach-copy>span{font-size:14px;margin-bottom:6px;letter-spacing:0}
 .result-coach-copy .coach-title{font-size:26px;margin-bottom:8px}
 .result-coach-copy>p:last-child{font-size:16px;line-height:1.3}
 .result-round{gap:5px;margin-top:13px;margin-bottom:15px}
 .result-round>span{font-size:16px}
 .perfect-result .result-art{width:210px;height:174px;margin-bottom:9px}
 .perfect-result .reward-image{width:182px;height:174px}
}
@media(max-width:350px){.result-coach{grid-template-columns:1fr;text-align:center;gap:9px;padding:12px 15px 16px}.result-coach .practice-toby{width:105px;justify-self:center}.result-coach-copy{padding:0}.result-coach-copy .coach-title{font-size:27px}}
@media(prefers-reduced-motion:reduce){.result-coach{animation:none}}
