@font-face{font-family:Archivo;src:url('/fonts/archivo-latin.woff2') format('woff2');font-weight:400 900;font-display:swap}
:root{font-family:Archivo,Arial,sans-serif;color:#fff;background:#2543e8;font-synthesis:none;color-scheme:light;--peach:#ffd29e;--ease-out:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--peach);outline-offset:5px}[hidden]{display:none!important}h1,h2,p{margin:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
main{margin:0;padding:0}

/* The large stage is the page's only layout; no fullscreen permission is needed. */
.party {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  grid-template-rows: minmax(0, 1fr) auto auto minmax(0, 1fr);
  gap: 14px 24px;
  width: 100%;
  height: 100dvh;
  padding: 20px;
  overflow: auto;
}
.dance-floor{display:contents}
.stage{grid-column:1;grid-row:1 / -1;position:relative;height:100%;min-height:0;min-width:0;isolation:isolate}
.stage:before{content:'';position:absolute;inset:15% 12% 11%;border:1px solid #a6b5ff26;border-radius:50%;z-index:-1}
.stage:after{content:'';position:absolute;inset:10% 18% 17%;border:1px solid #a6b5ff13;border-radius:50%;z-index:-1}
.stage canvas{display:block;width:100%;height:100%}
.cue{position:absolute;bottom:24px;left:10px;right:10px;text-align:center;color:var(--peach);font-size:clamp(23px,2.1vw,36px);font-weight:500;letter-spacing:-.75px;pointer-events:none}
.loading{position:absolute;inset:0;display:flex;flex-direction:column;gap:15px;align-items:center;justify-content:center;text-align:center;padding:35px;background:#2543e8;font-size:14px;line-height:1.6}
.loading-paw{font-size:60px;color:var(--peach)}

.jukebox{grid-column:2;grid-row:2;min-width:0}
.picker-heading{margin-bottom:12px}
.picker-heading h2{font-size:16px;font-weight:500;letter-spacing:-.3px}
.songs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.song{border:2px solid transparent;border-radius:10px;min-height:72px;padding:10px;display:flex;align-items:center;gap:8px;text-align:left;color:#17213c;background:#f3eedf;box-shadow:0 4px 0 #132ca42b;transition:transform 150ms var(--ease-out),border-color 150ms ease,background-color 150ms ease}
.song.farm{background:#ffe0ad}.song.bunnies{background:#e7defb}.song.stars{background:#e1edff}.song.bus{background:#d9f1d2}
.song.fight{background:#ffcca4}
.song.cookie{background:#f6e4c7}
.song.dinosaurs{background:#dcebb9}
.song.walking{background:#c9eaf1}
.song.shake{background:#cde5ff}
.song.pikachu{background:#ffe982}
.song.fight small{display:block;margin-top:3px;font-size:9px;line-height:1.3;color:#57402f}
.song[aria-pressed=true]{border-color:#fff;box-shadow:0 0 0 3px #ffffff30,0 4px 0 #132ca42b}
.song-art{height:32px;width:28px;flex-shrink:0;background:#ffffff66;border-radius:7px;display:grid;place-items:center;font-size:23px}
.stars .song-art{color:#de9c29;font-size:27px}
.song-copy{flex:1}.song-copy strong{font-size:12px;line-height:1.35;font-weight:650;letter-spacing:-.3px}
.song-copy small,.song-mark{display:none}
.song:active,.play:active,.restart:active{transform:scale(.97)}
.character-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}
.partner-control{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;color:#e0e7ff;font-size:11px}
.partner-control select{width:100%;min-width:0;min-height:44px;padding:8px;border:1px solid #9bb0ff77;border-radius:8px;background:#1938ca;color:#fff;font-size:12px}
.transport{margin-top:18px}
.track-info{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#c5d1ff}
.track-info #time{font-variant-numeric:tabular-nums;letter-spacing:.2px}
.progress{height:3px;background:#738bfa66;margin:9px 0 12px;overflow:hidden;border-radius:3px}
.progress span{height:100%;width:100%;display:block;background:var(--peach);transform:scaleX(0);transform-origin:left}
.play-row{display:flex;gap:10px}
.play{flex:1;min-height:52px;border:0;border-radius:11px;background:#fff;color:#1932b3;font-size:17px;font-weight:600;display:flex;gap:13px;align-items:center;justify-content:center;transition:transform 150ms var(--ease-out)}
#play-icon{font-size:17px}
.restart{width:52px;flex-shrink:0;min-height:52px;border:1px solid #9bb0ff77;border-radius:11px;background:#1531c744;color:#fff;font-size:29px;transition:transform 150ms var(--ease-out)}
.volume-row{display:flex;align-items:center;gap:13px;margin-top:8px;color:#d1dcff;font-size:10px;min-height:38px}
#mute{padding:10px 0;color:inherit;border:0;background:none;font-size:10px;min-width:55px;text-align:left}
#volume{width:86px;min-width:45px;flex:1;height:26px;accent-color:var(--peach);cursor:pointer}
.repeat{display:flex;align-items:center;gap:5px;cursor:pointer;margin-left:8px}
.repeat input{accent-color:var(--peach);width:15px;height:15px;margin:0}
.speed-control{display:flex;align-items:center;justify-content:space-between;margin-top:9px;font-size:11px;color:#d1dcff}
.speed-control select{border:1px solid #9bb0ff77;border-radius:7px;background:#1938ca;color:#fff;min-height:36px;padding:5px 9px}
.audio-status{font-size:12px;line-height:1.5;color:#ffe0ad;margin-top:12px}
.audio-status:empty{display:none}
.choreography-readout{display:block;margin-top:10px;padding:9px 10px;border:1px solid #ffffff30;border-radius:8px;color:#ffe0ad;font:11px/1.6 monospace;font-variant-numeric:tabular-nums}
.move-preview{display:grid;grid-template-columns:auto minmax(0,1fr) 40px;align-items:center;gap:8px;margin-top:12px;color:#d1dcff;font-size:11px}
.move-preview select,.move-preview button{min-height:40px;min-width:0;border:1px solid #9bb0ff77;border-radius:7px;background:#1938ca;color:#fff;padding:5px}
.move-preview button{font-size:22px}

/* Keep the complete YouTube player visible beside the tiger and its captions. */
.video-card{grid-column:2;grid-row:3;width:100%;max-width:100%;margin:0;padding:0;background:#1835b955;border:1px solid #ffffff26;border-radius:10px;overflow:hidden}
.video-heading{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;font-size:9px;letter-spacing:.5px;color:#d4dfff}
.video-heading a{text-decoration:none;letter-spacing:0}
.video-card iframe{display:block;width:100%;height:200px;min-width:200px;min-height:200px;border:0}
.video-loading{height:200px;display:grid;place-items:center;font-size:12px;color:#d4dfff;background:#13276a}
.video-card>p{padding:7px 10px;font-size:9px;color:#c8d4ff}
.dance-utility-footer{padding:20px 34px;border-top:1px solid #ffffff24;display:flex;justify-content:space-between;align-items:start;gap:24px;color:#c2d0ff;font-size:10px;line-height:1.6}
.dance-utility-footer p{color:#e1e8ff}
.parent-note{max-width:420px;font-size:10px;color:#c8d4ff;line-height:1.6}
.parent-note summary{cursor:pointer;min-height:30px;padding-block:8px}
.parent-note p{margin:6px 0}

@media (min-width:701px) and (max-height:820px) {
  .party{padding:12px 18px;gap:10px 16px}
  .picker-heading{display:none}
  .songs{gap:7px}
  .song{min-height:44px;padding:5px 8px}
  .song-copy,.song-copy strong{font-size:12px;line-height:1.2}
  .partner-control select{min-height:40px}
  .video-heading{padding-block:6px}
  .video-card>p{padding-block:5px}
  .transport{margin-top:12px}
  .play,.restart{min-height:44px}
  .restart{width:44px}
  .volume-row{margin-top:3px;min-height:32px}
  .speed-control{margin-top:3px}
  .speed-control select{min-height:32px}
}
@media (min-width:701px) and (max-height:560px) {
  .party{grid-template-rows:minmax(0,1fr) auto}
  .jukebox{grid-row:1;align-self:end}
  .video-card{grid-row:2}
  .volume-row,.video-heading,.video-card>p{display:none}
}
@media (max-width:700px) {
  .party{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(350px,60dvh) auto auto;height:auto;min-height:100dvh;gap:16px;padding:12px 18px 24px;overflow:visible}
  .stage{grid-column:1;grid-row:1}
  .cue{bottom:20px}
  .jukebox{grid-column:1;grid-row:2}
  .video-card{grid-column:1;grid-row:3;width:300px;justify-self:center}
  .dance-utility-footer{padding:18px;flex-direction:column;gap:10px}
}
@media(hover:hover) and (pointer:fine){.song:hover{transform:translateY(-2px)}#mute:hover{color:var(--peach)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}.song:hover{transform:none}}
