:root{--cream:#FFF8F0;--warm:#FFE8CC;--accent:#FF6B6B;--accent2:#FFB347;--green:#6BCB77;--dark:#2D2D2D;--shadow:rgba(0,0,0,0.15)}
  *{box-sizing:border-box;margin:0;padding:0}
  body{background:var(--cream);font-family:'Nunito',sans-serif;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
  .screen{display:none;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:420px;padding:24px;gap:16px}
  .screen.active{display:flex}
  .title-big{font-family:'Fredoka One',cursive;font-size:2.8rem;color:var(--dark);text-align:center;line-height:1.1}
  .title-big span{color:var(--accent)}
  .title-sub{font-family:'Nunito',sans-serif;font-size:1rem;color:#aaa;font-style:italic;text-align:center;margin-top:-8px}
  .subtitle{font-size:1rem;color:#888;text-align:center;margin-top:12px}

  /* best score on home */
  .best-score-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:8px}
  .home-name-row{display:flex;justify-content:center;align-items:center;gap:6px}
  .home-name-edit-row{display:flex;gap:8px;align-items:center;justify-content:center}
  .home-bpm-row{display:flex;flex-direction:column;align-items:center;gap:2px}
  .home-bpm-val{font-family:'Fredoka One',cursive;font-size:3.5rem;color:var(--accent2);line-height:1}
  .home-bpm-label{font-family:'Fredoka One',cursive;font-size:1.1rem;color:var(--accent2);text-transform:uppercase;letter-spacing:1px}
  .best-score-rank{}

  .btn-start{background:var(--accent);color:white;border:none;font-family:'Fredoka One',cursive;font-size:1.4rem;padding:14px 48px;border-radius:50px;cursor:pointer;box-shadow:0 6px 0 #cc4444;transition:transform .1s,box-shadow .1s}
  .btn-start:active{transform:translateY(4px);box-shadow:0 2px 0 #cc4444}
  .preview-img{width:180px;height:180px;border-radius:50%;object-fit:cover;border:6px solid var(--warm);box-shadow:0 8px 24px var(--shadow);animation:float 3s ease-in-out infinite}
  @keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
  #screen-game,#screen-game *{cursor:none !important}
  #custom-cursor{position:fixed;pointer-events:none;z-index:9999;display:none;width:128px;opacity:1}
  .hud{width:100%;display:flex;align-items:center;gap:8px}
  .hud-spacer{flex:1}
  .hud-timer{font-family:'Fredoka One',cursive;font-size:1.6rem;color:var(--dark)}
  .hud-timer.urgent{color:var(--accent);animation:pulse .5s ease-in-out infinite}
  @keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
  .hud-streak{font-size:.9rem;font-weight:800;color:var(--accent2);background:#FFF3E0;padding:4px 12px;border-radius:20px;border:2px solid var(--accent2);min-width:60px;text-align:center}
  .hud-score{font-family:'Fredoka One',cursive;font-size:1.2rem;color:var(--dark)}
  .animal-card{position:relative;width:100%;max-width:360px;border-radius:28px;overflow:hidden;box-shadow:0 12px 40px var(--shadow);user-select:none;-webkit-tap-highlight-color:transparent}
  .animal-card img{width:100%;display:block;pointer-events:none}
  .animal-card img.hidden{display:none}
  .nose-zone{position:absolute;left:30%;top:45%;width:40%;height:28%;border-radius:50%;z-index:10;-webkit-tap-highlight-color:transparent}
  .boop-hint{font-size:.8rem;font-weight:800;color:var(--accent);text-align:center;letter-spacing:1px;text-transform:uppercase;opacity:0.7;animation:hintPulse 2s ease-in-out infinite}
  @keyframes hintPulse{0%,100%{opacity:0.5}50%{opacity:1}}
  .feedback-overlay{position:absolute;inset:0;border-radius:28px;opacity:0;pointer-events:none;transition:opacity .15s}
  .feedback-overlay.show{opacity:1}
  .feedback-overlay.correct{box-shadow:inset 0 0 0 6px rgba(107,203,119,0.9)}
  .feedback-overlay.wrong{box-shadow:inset 0 0 0 6px rgba(255,107,107,0.9)}
  .risky-flash{position:fixed;top:30%;left:50%;transform:translateX(-50%) scale(0);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;z-index:99;opacity:0}
  .risky-flash.show{animation:riskyAnim 1s ease-out forwards}
  @keyframes riskyAnim{0%{transform:translateX(-50%) scale(0);opacity:1}30%{transform:translateX(-50%) scale(1.15);opacity:1}70%{transform:translateX(-50%) scale(1);opacity:1}100%{transform:translateX(-50%) translateY(-30px) scale(1);opacity:0}}
  .risky-title{font-family:'Fredoka One',cursive;font-size:2.6rem;color:#FF6B6B;text-shadow:0 0 20px rgba(255,107,107,0.6);letter-spacing:2px}
  .close-flash{position:fixed;top:30%;left:50%;transform:translateX(-50%) scale(0);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;z-index:99;opacity:0}
  .close-flash.show{animation:riskyAnim 1s ease-out forwards}
  .close-title{font-family:'Fredoka One',cursive;font-size:2.6rem;color:#FFB347;text-shadow:0 0 20px rgba(255,179,71,0.6);letter-spacing:2px}
  .close-sub{font-family:'Fredoka One',cursive;font-size:1.1rem;color:#FFB347;opacity:0.8}
  .risky-sub{font-family:'Fredoka One',cursive;font-size:1.1rem;color:#FF6B6B;opacity:0.8}
  .progress-bar-wrap{width:100%;height:6px;background:var(--warm);border-radius:3px;overflow:hidden}
  .progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:3px;transition:width 1s linear}
  .btn-row{display:flex;gap:16px;width:100%}
  .btn-boop,.btn-nope{flex:1;border:none;border-radius:20px;font-family:'Fredoka One',cursive;font-size:1.3rem;padding:18px 0;cursor:pointer;transition:transform .1s,box-shadow .1s;display:flex;align-items:center;justify-content:center;gap:8px}
  .btn-boop:active{transform:translateY(3px);box-shadow:0 2px 0 #4a9e55}
  .btn-nope{background:var(--accent);color:white;box-shadow:0 5px 0 #cc4444}
  .btn-nope:active{transform:translateY(3px);box-shadow:0 2px 0 #cc4444}
  .combo-pop{position:fixed;top:30%;left:50%;transform:translateX(-50%) scale(0);font-family:'Fredoka One',cursive;font-size:2rem;color:var(--accent2);text-shadow:0 2px 8px rgba(0,0,0,.2);pointer-events:none;z-index:50}
  .combo-pop.show{animation:comboAnim .7s ease-out forwards}
  @keyframes comboAnim{0%{transform:translateX(-50%) scale(0);opacity:1}50%{transform:translateX(-50%) scale(1.3);opacity:1}100%{transform:translateX(-50%) translateY(-40px) scale(1);opacity:0}}
  .result-card{background:white;border-radius:28px;padding:28px 32px;width:100%;text-align:center;box-shadow:0 8px 32px var(--shadow);display:flex;flex-direction:column;gap:10px}
  .result-player-name{font-family:'Fredoka One',cursive;font-size:1.1rem;color:#aaa;text-transform:uppercase;letter-spacing:1px}
  .stats-row{display:flex;justify-content:center;gap:24px;margin-top:8px}
  .stat-item{display:flex;flex-direction:column;align-items:center;gap:2px}
  .stat-val{font-family:'Fredoka One',cursive;font-size:1.6rem;color:var(--dark)}
  .stat-lbl{font-size:.75rem;color:#aaa;text-transform:uppercase;letter-spacing:1px}
  .rank-badge{display:inline-block;font-family:'Nunito',sans-serif;font-size:.9rem;font-weight:800;padding:6px 18px;border-radius:3px;letter-spacing:1px;text-transform:uppercase}
  .rank-tier-1{background:#ede8e1;color:#aaa}
  .rank-tier-2{background:#fff3cd;color:#856404}
  .rank-tier-3{background:#FFB347;color:white}
  .rank-tier-4{background:#FF6B6B;color:white}
  .rank-tier-5{background:#2D2D2D;color:#FFB347}
  .verdict{margin-top:4px}
  /* auto-return countdown */
  .return-bar-wrap{width:100%;height:4px;background:#eee;border-radius:2px;overflow:hidden}
  .return-bar-fill{height:100%;background:var(--accent2);border-radius:2px;width:100%;transition:width 1s linear}
  .btn-row-end{display:flex;gap:12px;width:100%}
  .btn-retry{width:100%;background:var(--accent2);color:white;border:none;border-radius:16px;font-family:'Fredoka One',cursive;font-size:1.1rem;padding:14px 0;cursor:pointer;box-shadow:0 4px 0 #cc8800;transition:transform .1s}
  .btn-retry:active{transform:translateY(3px);box-shadow:none}
  .speed-badge{font-size:.75rem;font-weight:800;color:#888;text-align:center;letter-spacing:1px;text-transform:uppercase}
  .timesup-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
  .timesup-emoji{font-size:5rem;animation:timesup-pop .4s cubic-bezier(.17,.67,.3,1.4)}
  @keyframes timesup-pop{0%{transform:scale(0)}100%{transform:scale(1)}}
  .timesup-title{font-family:'Fredoka One',cursive;font-size:3rem;color:var(--dark)}
  .timesup-sub{font-size:1rem;color:#aaa;font-weight:700}
  .share-row{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}
  .share-label{font-size:.78rem;color:#bbb;text-transform:uppercase;letter-spacing:1px}
  .share-btns{display:flex;gap:10px}
  .share-btn{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;transition:transform .1s,opacity .1s;opacity:0.8}
  .share-btn:hover{opacity:1}
  .share-btn:active{transform:scale(0.9)}
  .share-btn img{width:32px;height:32px;object-fit:contain}
  /* Loader */
  .loader-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:320px}
  .loader-msg{font-size:.95rem;color:#aaa;font-style:italic;text-align:center;min-height:1.4em;transition:opacity .3s}
  .loader-bar-wrap{width:100%;height:8px;background:var(--warm);border-radius:4px;overflow:hidden}
  .loader-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:4px;transition:width .3s ease}
  /* Player name row on result card */
  .player-name-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:4px}
  #end-player-name{font-family:'Nunito',sans-serif;font-size:.95rem;font-weight:800;color:#888}
  .btn-update-name{background:none;border:none;font-size:.75rem;color:#ccc;cursor:pointer;padding:2px 4px;transition:color .15s}
  .btn-update-name:hover{color:#888}
  /* Inline name edit */
  .name-edit-row{display:flex;gap:8px;align-items:center;justify-content:center;margin-bottom:4px}
  .name-input-sm{font-family:'Nunito',sans-serif;font-size:.9rem;font-weight:800;padding:6px 12px;border:2px solid var(--warm);border-radius:12px;outline:none;width:140px;transition:border-color .2s}
  .name-input-sm:focus{border-color:var(--accent2)}
  .btn-name-save{background:var(--accent2);color:white;border:none;border-radius:12px;font-family:'Nunito',sans-serif;font-size:.85rem;font-weight:800;padding:6px 14px;cursor:pointer}
  /* Mute button */
  .btn-mute{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:4px;line-height:1;opacity:0.7;transition:opacity .15s;-webkit-tap-highlight-color:transparent}
  .btn-mute:hover{opacity:1}
  .btn-mute.muted{opacity:0.35}
  /* Confetti */
  .confetti-particle{position:fixed;pointer-events:none;z-index:999;top:-16px;animation:confettiFall linear forwards}
  @keyframes confettiFall{0%{transform:translateY(0) rotate(0deg);opacity:1}80%{opacity:1}100%{transform:translateY(105vh) rotate(720deg);opacity:0}}
  /* Language selector */
  .lang-select-wrap{display:flex;justify-content:center;margin-top:4px}
  .lang-select{font-family:'Nunito',sans-serif;font-size:.85rem;font-weight:700;color:#888;background:transparent;border:none;cursor:pointer;outline:none;padding:4px 8px;border-radius:8px;transition:background .15s}
  .lang-select:hover{background:var(--warm)}
  .lang-select option{background:white;color:var(--dark)}
  /* Share as image button */
  .btn-share-img{background:none;border:1.5px solid #FFE8CC;border-radius:20px;font-family:'Nunito',sans-serif;font-size:.78rem;font-weight:800;color:#ccc;padding:7px 18px;cursor:pointer;transition:all .15s;letter-spacing:.5px;margin-top:2px}
  .btn-share-img:hover{border-color:var(--accent2);color:var(--accent2)}
  .btn-share-img:active{transform:scale(0.97)}
  /* Compliance footer — visible only when scrolling down on home screen */
  #screen-start{overflow-y:auto;height:100vh;justify-content:flex-start;padding:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}
  #screen-start::-webkit-scrollbar{display:none}
  .start-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;min-height:100vh;padding:24px}
  .compliance-footer{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 24px 40px;width:100%;border-top:1px solid var(--warm)}
  .compliance-links{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}
  .compliance-link{font-size:.7rem;color:#ccc;text-decoration:none;letter-spacing:.5px;text-transform:uppercase;transition:color .15s}
  .compliance-link:hover{color:#888}
  .compliance-copy{font-size:.65rem;color:#ddd;letter-spacing:.5px}
  /* Dev mode */
  .btn-dev-reset{position:fixed;bottom:16px;left:16px;background:#fff3cd;border:2px dashed #ffc107;font-size:1.2rem;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0.5;transition:opacity .15s;z-index:50}
  .btn-dev-reset:hover{opacity:1}
