/* Original Lingo-mouth officer: cap + dangling cartoon cuffs. */
.word-police{max-width:245px;margin:0 auto 22px;position:relative}.police-character{display:block;width:190px;height:auto;overflow:visible;filter:drop-shadow(4px 5px 0 #02081755)}.police-title{position:relative;margin-top:-13px;z-index:1;font:900 25px/.95 'Barlow Condensed',sans-serif;letter-spacing:.05em;color:#ffff29;-webkit-text-stroke:.3px #020817;text-shadow:2px 3px #020817;transform:rotate(-4deg)}.police-caption{margin-top:12px;font-size:7px}.officer-mouth{animation:officer-bop 3.5s ease-in-out infinite;transform-origin:100px 130px}.officer-cuffs{animation:cuff-swing 2.5s ease-in-out infinite;transform-origin:160px 110px}
/* The app cannot be clicked behind this overlay. Skip is always reachable. */
#intro-root{z-index:1000;position:fixed;inset:0;width:100%;height:100dvh;background:#005dff;isolation:isolate}.immersive-intro{width:100%;height:100%;min-height:0;max-height:100%;padding:max(82px,calc(env(safe-area-inset-top) + 62px)) max(20px,env(safe-area-inset-right)) max(38px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));overflow:hidden;box-sizing:border-box}.intro-controls{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(17px,env(safe-area-inset-left));right:max(17px,env(safe-area-inset-right));display:flex;justify-content:space-between;gap:12px;z-index:10}.immersive-intro .skip-intro{position:static;min-height:44px;padding:10px 14px}.intro-sound{background:#082756;color:#fff;border:2px solid #020817;border-radius:25px;box-shadow:3px 3px #020817;padding:10px 14px;min-height:44px;font-size:9px;font-weight:800}.intro-sound[aria-pressed="false"]{color:#baceee;background:#0e2350}.immersive-intro .lingo-logo{width:min(650px,87vw);position:relative;z-index:3;flex:0 0 auto}.immersive-intro .intro-eyebrow{font-size:10px;margin:0 0 15px;flex:0 0 auto}.intro-waiting .logo-piece{opacity:1;animation:none!important;transform:none}.intro-waiting .intro-stickers b{opacity:1;animation:none!important}.intro-waiting .intro-progress{display:none}.intro-waiting .immersive-intro:before{animation-play-state:paused}.intro-waiting .intro-orbits i{animation:none!important}.immersive-intro .intro-go{font-size:12px;min-width:300px;min-height:56px;flex:0 0 auto;z-index:8}.immersive-intro .intro-go[hidden]{display:none!important}.immersive-intro .intro-stickers{margin:12px 0 23px;z-index:4;flex:0 0 auto}.immersive-intro .intro-audio-note{margin:15px 0 0;font-size:10px;max-width:330px;min-height:30px;text-align:center;line-height:1.6;z-index:6;flex:0 0 auto}.intro-waiting .intro-police-cameo,.intro-waiting .intro-finale,.intro-waiting .intro-beat-bars{display:none}.intro-police-cameo{position:absolute;bottom:13%;right:8%;z-index:5;opacity:0;transform:translateX(130vw) rotate(20deg)}.intro-police-cameo .word-police{margin:0}.intro-police-cameo .police-character{width:180px}.intro-police-cameo .police-caption{font-size:7px}.intro-playing .intro-police-cameo{animation:officer-driveby 2.35s 2.7s cubic-bezier(.2,.85,.25,1) both}.intro-playing .intro-progress i{animation:intro-timer 6.8s linear forwards}.intro-playing .lingo-logo{animation:intro-logo-encore 6.8s ease-in-out both}.intro-playing .intro-stickers{animation:sticker-encore 6.8s ease-in-out both}.intro-playing .intro-orbits i{animation:beat-doodle .8s ease-in-out infinite alternate}.intro-playing .intro-orbits i:nth-child(even){animation-delay:-.4s}.intro-beat-bars{display:flex;align-items:center;justify-content:center;gap:6px;height:42px;z-index:6;position:relative;margin:0 auto 5px}.intro-beat-bars i{width:6px;height:10px;background:#ffff29;border:1px solid #020817;border-radius:2px;box-shadow:2px 2px #020817;animation:beat-meter .4s calc(var(--beat)*-.07s) ease-in-out infinite alternate}.intro-beat-bars i:nth-child(3n){background:#ff58bd}.intro-finale{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:7;pointer-events:none;color:#fff8ee;font:900 clamp(55px,10vw,110px)/.88 'Barlow Condensed',sans-serif;-webkit-text-stroke:2px #020817;text-shadow:6px 7px #020817;opacity:0;transform:scale(.4) rotate(-8deg)}.intro-finale strong{font:inherit;color:#ffff29;font-size:1.7em}.intro-playing .intro-finale{animation:lingo-finale 1.1s 5.65s cubic-bezier(.17,.8,.3,1.1) both}.intro-playing .intro-audio-note{animation:audio-note-exit .3s 5.5s forwards}
@keyframes officer-bop{0%,60%,100%{transform:rotate(-3deg)}70%{transform:rotate(3deg)}80%{transform:rotate(-4deg)}}@keyframes cuff-swing{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(12deg)}}@keyframes officer-driveby{0%{opacity:0;transform:translateX(110vw) rotate(20deg)}25%,65%{opacity:1;transform:translateX(0) rotate(-8deg)}100%{opacity:0;transform:translateX(-120vw) rotate(-15deg)}}@keyframes intro-logo-encore{0%,30%{transform:rotate(-4deg) scale(1);opacity:1}35%{transform:rotate(2deg) scale(1.03)}41%{transform:rotate(-4deg) scale(.98)}48%,70%{transform:rotate(-4deg) scale(1)}80%{transform:rotate(4deg) scale(1.07);opacity:1}88%,100%{transform:rotate(-9deg) scale(1.3);opacity:0}}@keyframes sticker-encore{0%,72%{transform:none;opacity:1}80%{transform:translateY(10px) rotate(4deg)}88%,100%{transform:translateY(120px) rotate(-5deg);opacity:0}}@keyframes beat-doodle{to{translate:0 -17px;rotate:10deg;scale:1.12}}@keyframes beat-meter{to{height:40px}}@keyframes lingo-finale{0%{opacity:0;transform:scale(.4) rotate(-8deg)}40%{opacity:1;transform:scale(1.06) rotate(4deg)}65%,100%{opacity:1;transform:scale(1) rotate(-4deg)}}@keyframes audio-note-exit{to{opacity:0}}
@media(max-width:700px){.police-character{width:170px}.police-title{font-size:23px;margin-top:-13px}.word-police{margin-bottom:19px}.immersive-intro .lingo-logo{width:95vw}.immersive-intro .intro-eyebrow{font-size:8px;margin-bottom:18px}.immersive-intro .intro-stickers{margin:16px 0 28px;gap:7px}.immersive-intro .intro-go{min-width:0;width:290px;max-width:90vw;min-height:56px;font-size:11px;padding:14px 16px}.immersive-intro .intro-audio-note{font-size:9px;max-width:280px}.intro-controls{left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));gap:9px}.intro-sound{font-size:8px;padding:10px 11px}.immersive-intro .skip-intro{font-size:8px;padding:10px 12px}.intro-police-cameo{bottom:13%;right:6%}.intro-police-cameo .police-character{width:155px}.intro-police-cameo .police-title{font-size:21px}.intro-police-cameo .police-caption{font-size:6px}.intro-playing .intro-beat-bars{margin-top:20px}.intro-finale{font-size:65px}.intro-finale strong{font-size:1.55em}}
@media(max-height:700px) and (orientation:portrait){.immersive-intro{padding-top:75px;padding-bottom:28px}.immersive-intro .lingo-logo{width:min(87vw,340px)}.immersive-intro .intro-eyebrow{font-size:7px;margin-bottom:10px}.immersive-intro .intro-stickers{margin:9px 0 18px}.immersive-intro .intro-stickers b{font-size:14px;padding:7px 9px}.immersive-intro .intro-go{min-height:49px}.immersive-intro .intro-audio-note{font-size:8px;margin-top:11px}.intro-police-cameo{bottom:9%;right:5%}.intro-police-cameo .police-character{width:125px}.intro-police-cameo .police-title{font-size:18px}.intro-police-cameo .police-caption{display:none}.intro-finale{font-size:55px}}
@media(orientation:landscape) and (max-height:600px){.immersive-intro{padding:56px 20px 20px;min-height:0}.immersive-intro .lingo-logo{width:min(43vw,345px)}.immersive-intro .intro-eyebrow{font-size:7px;margin:0 0 5px}.immersive-intro .intro-stickers{margin:5px 0 12px;gap:8px}.immersive-intro .intro-stickers b{font-size:13px;padding:5px 9px}.immersive-intro .intro-go{min-height:44px;min-width:250px;font-size:10px;padding:10px 15px}.immersive-intro .intro-audio-note{font-size:8px;margin-top:7px;min-height:12px}.intro-controls{top:max(9px,env(safe-area-inset-top));left:max(15px,env(safe-area-inset-left));right:max(15px,env(safe-area-inset-right))}.intro-sound,.immersive-intro .skip-intro{font-size:8px;min-height:40px;padding:9px 12px}.intro-police-cameo{bottom:9%;right:8%}.intro-police-cameo .police-character{width:130px}.intro-playing .intro-beat-bars{position:absolute;bottom:40px;left:18%;height:27px}.intro-beat-bars i{width:4px;max-height:27px}.intro-finale{font-size:62px}.intro-finale strong{font-size:1.5em}}
@media(prefers-reduced-motion:reduce){.officer-mouth,.officer-cuffs{animation:none!important;transform:none}.intro-beat-bars i{animation:none!important}.police-character{filter:none}#intro-root{display:none}}
html.intro-open,body.intro-open{overflow:hidden!important;overscroll-behavior:none}
