@font-face{font-family:Andika;src:url('../assets/fonts/Andika.ttf')}@font-face{font-family:Fredoka;src:url('../assets/fonts/Fredoka.ttf')}*{box-sizing:border-box}body{margin:0;color:#254657;background:#9edfe9;font-family:Andika,system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,select:focus-visible{outline:4px solid #ffbb44;outline-offset:4px}button[hidden],[hidden]{display:none!important}button{border:0}header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:#fffcf0;position:relative;z-index:5;border-bottom:2px solid #e1e5ce}.brand{font:600 27px Fredoka,sans-serif;color:#286453;text-decoration:none;display:flex;gap:10px;align-items:center}.header-right{display:flex;gap:15px;align-items:center}.wallet{display:flex;gap:9px;align-items:center;font-size:22px}.wallet i{font-style:normal;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#ffcd58;border:3px solid #e9a634;color:#996023;font-size:19px}.round-button{width:44px;height:44px;border-radius:50%;background:#e7ede0;font-size:25px}.quiet{background:transparent;font-size:14px;padding:12px}#game{position:relative;height:calc(100svh - 72px);min-height:540px;overflow:hidden;isolation:isolate}#world{width:100%;height:100%;display:block;touch-action:none;outline:none}.panel{position:absolute;z-index:2}.menu{left:6%;top:9%;width:330px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:900;color:#34766c}.menu h1{font-family:Fredoka,sans-serif;font-size:82px;line-height:.9;font-weight:650;letter-spacing:-3px;margin:17px 0 16px;color:#fff9db;text-shadow:0 4px 0 #277775,0 7px 0 #194e5a,0 12px 25px #20727850;transform:rotate(-3deg)}.menu h1 em{font-style:normal;display:block;color:#ffce60}.tagline{font-size:20px;font-weight:bold;margin:26px 0 20px;color:#234f58}.mode-switch{display:flex;gap:6px;background:#faffecba;border:2px solid #d6ebd8;border-radius:18px;padding:5px}.mode-switch button{background:transparent;border-radius:12px;padding:10px 16px;flex:1;font-size:20px;font-weight:bold;display:flex;justify-content:center;align-items:center;gap:8px}.mode-switch button[aria-pressed=true]{background:#347e71;color:white;box-shadow:0 3px 0 #255a58}.mode-switch small{font-size:10px;line-height:1.1;max-width:35px}.primary{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:64px;margin:15px 0;padding:12px 24px;border-radius:18px;background:#ffd16a;color:#244c51;border:2px solid #dea33e;box-shadow:0 5px 0 #bd8b3e;font-family:Fredoka,sans-serif;font-weight:600;font-size:29px}.primary:hover{background:#ffdf8a}.primary:active{transform:translateY(3px);box-shadow:0 2px 0 #bd8b3e}.secondary{display:flex;align-items:center;justify-content:center;gap:14px;min-height:56px;border:2px solid #b7d8cf;border-radius:17px;background:#fffdf0ed;padding:10px 22px;font-size:20px;font-weight:bold;box-shadow:0 3px 0 #92bdb3}.secondary svg{width:40px;height:40px}.secondary b{margin-left:auto;font-size:24px}#shop-button{width:100%;justify-content:flex-start}.control-primer{display:flex;justify-content:space-between;margin-top:22px;font-size:12px}.control-primer span{display:flex;align-items:center;gap:7px}.control-primer b{font:700 21px Andika;background:#f6fff0c9;padding:3px 7px;border-radius:8px}.input-note{font-size:11px;color:#3e6f75;text-align:center}.intro-word{position:absolute;right:6%;top:16%;width:230px;background:#fffcdfed;border:2px solid #fffff3;border-radius:24px;padding:22px;transform:rotate(5deg);box-shadow:0 7px 0 #579ba65e;text-align:center;display:grid;gap:13px}.word-star{font-size:43px;color:#ac6ed5}.intro-word b{font-family:Fredoka;font-size:23px;line-height:1.2}.mini-word{font-size:29px;font-weight:bold}.mini-word i{font-style:normal;font-size:17px;color:#b6ab8d}#hud{position:absolute;z-index:2;inset:18px 3.5% auto;pointer-events:none}.top-hud{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.word-card{display:flex;align-items:center;gap:14px;padding:12px 20px 14px 12px;background:#fffcf0f2;border:2px solid white;box-shadow:0 5px 0 #468ba746;border-radius:22px;pointer-events:auto}.word-card>button{font-size:32px;min-width:46px;height:54px;background:#e1eece;border-radius:14px;color:#356854}.word-card>div{display:grid;gap:7px}#word-cue{font-size:17px;font-weight:bold;color:#426d75}#word-slots{display:flex;gap:7px}.letter-slot{width:50px;height:55px;display:grid;place-items:center;border-radius:12px;border:2px solid #d4d7c1;background:#f2eedf;font-size:35px;font-weight:bold;color:#9a9d8e}.letter-slot.next{color:#2f5362;background:#ffdf7d;border-color:#d89b35;box-shadow:0 3px 0 #c39042}.letter-slot.collected{color:#245b50;background:#c8ebc8;border-color:#7fbaa2}.letter-slot.collected:after{content:'✓';font-size:12px;position:absolute;transform:translate(18px,-22px);color:#25744f}#word-picture{font-size:36px}.run-stats{display:flex;align-items:center;gap:12px;pointer-events:auto}.run-stats>span,.run-stats>button{background:#fff9e9f0;box-shadow:0 3px 0 #599caf50;border:2px solid white;padding:8px 17px;border-radius:16px;font-size:25px;font-weight:bold}.run-stats .run-coins{color:#9b6427}.run-stats button{width:56px;height:56px;font-size:26px;padding:0}.finish-track{display:flex;align-items:center;gap:9px;width:min(300px,30%);position:absolute;top:73px;right:0;color:#386575;font-size:22px}progress{appearance:none;border:0;overflow:hidden;border-radius:10px;height:10px;background:#f3f3dfb0;width:100%}progress::-webkit-progress-bar{background:#f3f3dfb0}progress::-webkit-progress-value{background:#459b8a;border-radius:10px}progress::-moz-progress-bar{background:#459b8a;border-radius:10px}#power{position:absolute;right:0;top:120px;background:#7758bddd;color:#fff8de;border:2px solid #e5c6ff;border-radius:17px;padding:10px 15px;width:210px;display:grid;gap:7px;font-size:20px;font-weight:bold}#power progress::-webkit-progress-value{background:#ffdc7d}.toast{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);z-index:3;background:#fffbe6ed;box-shadow:0 4px 0 #7aa2a25c;padding:10px 24px;border-radius:20px;font-family:Fredoka;font-size:28px;pointer-events:none;text-align:center}#hero-flash{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) rotate(-8deg);font:800 clamp(55px,8vw,105px) Fredoka;color:#ffde78;text-shadow:0 5px 0 #7f4daf,0 10px 0 #553e81;pointer-events:none;animation:burst .6s ease-out both;z-index:4}@keyframes burst{from{transform:translate(-50%,-50%) scale(.5) rotate(-10deg);opacity:0}to{transform:translate(-50%,-50%) scale(1) rotate(-8deg);opacity:1}}#controls{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:3.5%;right:3.5%;display:flex;gap:12px;pointer-events:none;z-index:3}#controls button{pointer-events:auto;width:78px;min-height:79px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:22px;border:2px solid white;background:#fff8e5ee;box-shadow:0 5px 0 #5d929c85;color:#315969;user-select:none}#controls button:nth-child(3){margin-left:auto;background:#fbd16c}#controls button:nth-child(4){background:#cbb8ee}#controls b{font-size:37px;line-height:1}#controls span{font-size:13px;font-weight:bold}#controls .pressed{transform:translateY(4px);box-shadow:0 1px 0 #5d929c85;background:#b8e7c3!important}#controls .guide{outline:4px solid #ffea91;outline-offset:5px}.results{top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;width:360px;padding:26px 32px;background:#fffbed;border:3px solid white;border-radius:28px;box-shadow:0 10px 0 #518b9e55}.results .trophy{font-size:50px}.results h2{font:600 38px Fredoka;margin:8px 0}.results .result-coins{font-size:29px;color:#a56f27;margin:15px 0}.result-words{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.result-words span{border-radius:10px;padding:5px 12px;background:#d4edce;font-size:25px;font-weight:bold}.results .secondary{width:100%;margin-top:14px}dialog{width:calc(100% - 32px);max-width:650px;max-height:88svh;overflow:auto;border:0;border-radius:27px;background:#fffbed;color:#264c59;padding:28px;box-shadow:0 12px 0 #173f5238}dialog::backdrop{background:#18495b9e;backdrop-filter:blur(5px)}dialog h2{font:600 34px Fredoka;margin:7px 0 18px}dialog h3{font-size:19px;margin-bottom:8px}dialog p{font-size:15px;line-height:1.65}dialog select{width:100%;font:inherit;border:2px solid #a7c9bf;border-radius:12px;padding:12px;background:#fffdf4;margin-top:8px}dialog label{font-weight:bold}#pause-dialog{max-width:350px;text-align:center}#pause-dialog .secondary{width:100%}.dialog-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.close{width:46px;height:46px;border-radius:50%;background:#e8eedf;font-size:30px;flex-shrink:0}.skin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.skin-card{border:2px solid #d9dfcb;border-radius:19px;background:#f3f1df;display:grid;justify-items:center;gap:4px;padding:9px 7px;position:relative}.skin-card[aria-pressed=true]{border-color:#8b6bca;box-shadow:0 0 0 3px #c2abe7}.skin-card svg{width:80px;height:80px}.skin-card .skin-name{font-weight:bold;font-size:15px}.skin-card .tier{font-size:10px;text-transform:uppercase;letter-spacing:.9px;color:#748d7e}.skin-card .price{font-weight:bold;color:#9b6c32;font-size:13px}.skin-card[data-tier=Heroic]{background:#ffedab;border-color:#dba445}.skin-card[data-tier=Heroic] .tier{color:#9b6325}.skin-card[data-tier=Epic]{background:#eee5fa}.skin-card[data-tier=Rare]{background:#e4f1f5}.skin-detail{margin-top:22px;padding-top:18px;border-top:2px solid #e4e4ce;display:flex;align-items:center;gap:15px}.skin-detail svg{width:80px;height:80px;flex-shrink:0}.skin-detail h3{margin:0}.skin-detail p{margin:4px 0}.skin-detail button{margin-left:auto;min-width:130px;width:auto;font-size:20px;min-height:54px}.small-note{font-size:12px!important;color:#70857a;text-align:center}.graphics-error{position:absolute;inset:15%;z-index:9;background:#fffbed;border-radius:28px;padding:35px;text-align:center}.graphics-error a{color:#276b62;font-weight:bold}.coin-pop{animation:coinpop .2s ease-out}@keyframes coinpop{50%{transform:scale(1.16)}}
@media(max-width:850px){.menu{left:5%;width:290px;top:9%}.menu h1{font-size:72px}.intro-word{right:4%;width:180px;padding:18px;top:17%}.intro-word b{font-size:21px}.mini-word{font-size:25px}.word-card{gap:10px;padding:10px}.word-card>button{min-width:40px}.letter-slot{width:43px;height:49px;font-size:31px}.run-stats{gap:7px}.run-stats>span{font-size:20px;padding:10px}.word-card #word-picture{font-size:28px}.finish-track{top:70px}.skin-grid{gap:8px}.skin-card svg{width:65px;height:65px}}
@media(max-width:600px){header{height:60px;padding:0 15px}.brand{font-size:23px}.header-right{gap:8px}.quiet{font-size:11px;padding:8px 0}.wallet{font-size:17px;gap:5px}.wallet i{width:27px;height:27px;font-size:15px}.round-button{width:36px;height:36px;font-size:22px}#game{height:calc(100svh - 60px);min-height:540px}.menu{left:22px;top:28px;width:235px}.menu .eyebrow{font-size:9px}.menu h1{font-size:66px;margin-top:12px}.tagline{font-size:16px;margin:22px 0 16px}.primary{font-size:24px;min-height:58px;padding:10px 18px}.mode-switch button{font-size:18px;padding:8px}.secondary{font-size:18px;min-height:52px}.control-primer{font-size:11px;gap:8px;margin-top:18px}.control-primer b{font-size:17px;padding:3px 4px}.input-note{font-size:10px}.intro-word{right:15px;top:auto;bottom:25px;width:155px;padding:14px;gap:8px}.intro-word b{font-size:18px}.word-star{display:none}.mini-word{font-size:25px}#hud{inset:12px 12px auto}.top-hud{gap:8px}.word-card{padding:8px;gap:7px;border-radius:17px}.word-card>div{gap:4px}.word-card>button{min-width:30px;width:30px;font-size:25px;height:47px}#word-cue{font-size:13px}.letter-slot{width:36px;height:43px;font-size:29px;border-radius:9px}#word-slots{gap:4px}#word-picture{display:none}.run-stats{display:grid;grid-template-columns:1fr 42px;gap:5px}.run-stats>span{padding:4px 8px;font-size:18px;border-radius:12px}.run-stats>button{grid-column:2;grid-row:1/3;width:42px;height:48px;font-size:22px;border-radius:12px}#rank{font-size:13px;padding:3px 6px;text-align:center}.finish-track{top:105px;width:100%;height:18px;font-size:19px}.finish-track progress{height:7px}#power{top:134px;width:145px;font-size:16px;padding:8px 10px}#controls{left:12px;right:12px;gap:9px;bottom:22px}#controls button{width:64px;min-height:73px;border-radius:18px}#controls b{font-size:32px}#controls span{font-size:11px}.toast{top:35%;font-size:24px;padding:8px 15px;max-width:90%;width:max-content}.results{width:calc(100% - 42px);max-width:360px;padding:22px}.skin-grid{grid-template-columns:repeat(2,1fr)}dialog{padding:22px}dialog h2{font-size:28px}.skin-card svg{width:75px;height:75px}.skin-detail{flex-wrap:wrap;gap:10px}.skin-detail svg{width:55px;height:55px}.skin-detail .primary{width:100%;margin:4px 0}.skin-detail p{font-size:13px}}
@media(max-height:620px) and (min-width:601px){header{height:54px}#game{height:calc(100svh - 54px);min-height:400px}.menu{top:20px;width:250px}.menu h1{font-size:57px;display:flex;gap:12px;margin:10px 0}.tagline{margin:15px 0;font-size:17px}.primary{min-height:52px;font-size:25px;margin:10px 0}.control-primer{margin-top:15px}.intro-word{top:30px;width:180px}#controls button{min-height:61px;width:65px}.word-card{transform:scale(.9);transform-origin:top left}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.menu h1,.intro-word{transform:none}#hero-flash{font-size:50px}}

/* Four clear collections, fixed prices and one explicit unlock action. */
.skin-grid{display:block}.tier-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tier-group{--tier:#ffffff;--edge:#c7d1ce;margin-bottom:24px}.tier-group[data-tier=Rare]{--tier:#d1f0cb;--edge:#4f9858}.tier-group[data-tier=Epic]{--tier:#e9d9ff;--edge:#9460cc}.tier-group[data-tier=Legendary]{--tier:#ffce91;--edge:#d4772a}.tier-group h3{display:flex;align-items:center;gap:10px;font:600 23px Fredoka;margin:16px 0 12px}.tier-group h3:before{content:'';width:18px;height:18px;background:var(--tier);border:2px solid var(--edge);border-radius:5px}.skin-card[data-tier]{background:var(--tier);border-color:var(--edge)}.skin-card .tier{color:#465647}.skin-card .price{color:#70491f}.skin-card[aria-pressed=true]{outline:3px solid #254f60;outline-offset:2px;box-shadow:none}.collection-count{margin:0;color:#527566}.skin-detail{position:sticky;bottom:-28px;background:#fffbed;padding-bottom:18px;z-index:2;box-shadow:0 -8px 15px #fffbed}.skin-detail svg{width:64px;height:64px}.skin-detail button{font-size:18px}.skin-detail p{font-size:13px}
@media(max-width:600px){.tier-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.skin-detail{gap:9px}.skin-detail svg{display:none}.skin-detail button{min-width:120px;padding:10px;font-size:16px}.skin-detail h3{font-size:17px}}

#word-slots[data-speaking=word] .letter-slot,#word-slots[data-speaking=target] .letter-slot.next{outline:3px solid #357f70;outline-offset:2px}#shop .dialog-heading{position:sticky;top:-28px;z-index:3;background:#fffbed;padding-top:14px;padding-bottom:8px;margin-top:-14px;box-shadow:0 7px 12px #fffbed}

/* Race difficulty is separate from the parent's player-pace setting. */
#race-levels{border:0;margin:15px 0 0;padding:0;min-width:0}#race-levels legend{font-weight:bold;font-size:16px;margin-bottom:7px}.race-level-buttons{display:flex;gap:7px}.race-level-buttons button{min-height:58px;flex:1;min-width:0;background:#fffbed;border:2px solid #8bb8ae;border-radius:13px;display:grid;justify-items:center;align-content:center;gap:3px;font-size:17px;font-weight:bold}.race-level-buttons span{font-size:10px;letter-spacing:2px}.race-level-buttons button[aria-pressed=true]{background:#275e57;border-color:#275e57;color:#fffbed;box-shadow:0 3px 0 #193d3a}#race-level-hint{font-size:13px;font-weight:bold;margin:8px 0 0;min-height:20px}.run-stats{position:relative}.run-stats #race-label{position:absolute;right:0;top:100%;font-size:12px;background:none;border:0;box-shadow:none;padding:3px 0;white-space:nowrap}.race-result-label{font-size:16px;margin:0}
@media(max-width:600px){.menu[data-race=true]{width:calc(100% - 44px);max-width:310px}.menu[data-race=true]~.intro-word{display:none}.menu[data-race=true] h1{font-size:55px}.menu[data-race=true] .tagline{margin:16px 0 12px}.race-level-buttons button{font-size:16px;min-height:54px}#race-levels{margin-top:12px}.run-stats #race-label{top:100%;font-size:11px}}
@media(max-height:700px){.menu[data-race=true] h1{display:flex;gap:12px;font-size:49px}.menu[data-race=true] .tagline{margin:12px 0}.menu[data-race=true] .control-primer,.menu[data-race=true] .input-note{display:none}}
@media(max-height:850px) and (min-width:601px){.menu[data-race=true] h1{display:flex;gap:12px;font-size:57px}.menu[data-race=true] .tagline{margin:15px 0}.menu[data-race=true] .control-primer{margin-top:14px}}

/* One clear invitation, then a finite celebration of the animal just unlocked. */
.skin-detail .unlock-ready{border-color:#278454;background:#d7f29b;box-shadow:0 5px 0 #4a8148,0 0 0 5px #8de8a24d;animation:unlock-invite 2.4s ease-in-out infinite}
.skin-detail .unlock-ready:hover{background:#e5ffb6}.skin-detail .unlock-ready:active{animation:none;box-shadow:0 2px 0 #4a8148}
@keyframes unlock-invite{50%{box-shadow:0 5px 0 #4a8148,0 0 0 9px #8de8a23d,0 0 25px #56c77980}}
#shop-message:empty{display:none}#shop-message{font-size:15px;margin:12px 0}
#shop.revealing{max-width:500px;padding:24px;overflow-x:hidden;background:#fffbed}
#unlock-celebration{--unlock:#ffffff;--unlock-edge:#829e98;position:relative;text-align:center;isolation:isolate;padding:12px 20px 6px}
#unlock-celebration[data-tier=Rare]{--unlock:#a1df8c;--unlock-edge:#357943}
#unlock-celebration[data-tier=Epic]{--unlock:#c69aef;--unlock-edge:#7c45ac}
#unlock-celebration[data-tier=Legendary]{--unlock:#ffc371;--unlock-edge:#b26220}
#unlock-celebration>.close{position:absolute;right:-10px;top:-10px;z-index:4}
.unlock-kicker{font:600 46px/1.1 Fredoka,sans-serif;margin:12px 0 0;color:#265d52}
.unlock-stage{height:250px;position:relative;display:grid;place-items:center;margin:0 auto;max-width:330px}
.unlock-halo{position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,var(--unlock) 0 58%,#fffbed00 70%);box-shadow:inset 0 0 0 2px var(--unlock-edge);opacity:.75;animation:unlock-halo .8s ease-out both}
.unlock-portrait{position:relative;z-index:1;width:195px;height:195px;filter:drop-shadow(0 9px 0 #25465720);animation:unlock-pop 850ms cubic-bezier(.16,.7,.3,1) both}
.unlock-portrait svg{display:block;width:100%;height:100%;overflow:visible}
.unlock-stars{position:absolute;inset:50%;z-index:0;pointer-events:none}
.unlock-stars i{position:absolute;left:-10px;top:-10px;width:20px;font:normal 26px/1 Fredoka;color:var(--unlock-edge);opacity:0;animation:unlock-burst 1.8s ease-out var(--delay) both}
.unlock-stars i:nth-child(3n){color:#e5af43}.unlock-stars i:nth-child(3n + 1){color:#459982}
.unlock-spark{position:absolute;color:var(--unlock-edge);font-size:31px}.spark-left{left:10px;top:65px;transform:rotate(-15deg)}.spark-right{right:4px;bottom:50px;font-size:42px;transform:rotate(12deg)}
.unlock-tier{display:inline-block;background:var(--unlock);border:2px solid var(--unlock-edge);color:#294b48;border-radius:30px;padding:4px 18px;font-size:15px;font-weight:bold}
#unlock-title{font:600 42px/1.15 Fredoka,sans-serif;margin:9px 0 0}.unlock-ready-note{font-size:18px;margin:8px 0 19px}
#unlock-done{max-width:300px;margin:0 auto 8px;min-height:62px;justify-content:center;gap:25px}
@keyframes unlock-pop{0%{opacity:0;transform:translateY(25px) scale(.55) rotate(-9deg)}55%{opacity:1;transform:translateY(-8px) scale(1.08) rotate(4deg)}78%{transform:translateY(3px) scale(.97) rotate(-2deg)}100%{opacity:1;transform:none}}
@keyframes unlock-halo{from{opacity:0;transform:scale(.55)}to{opacity:.75;transform:scale(1)}}
@keyframes unlock-burst{0%{opacity:0;transform:translate(0,0) scale(.4)}12%{opacity:1}72%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--turn)) scale(.7)}}
.page-hidden .unlock-ready,.page-hidden #unlock-celebration *{animation-play-state:paused!important}
@media(max-width:600px),(max-height:650px){#shop.revealing{padding:20px}#unlock-celebration{padding:10px 8px 4px}.unlock-kicker{font-size:39px}.unlock-stage{height:220px}.unlock-halo{width:188px;height:188px}.unlock-portrait{width:170px;height:170px}#unlock-title{font-size:36px}.unlock-ready-note{margin:6px 0 14px;font-size:16px}#unlock-done{min-height:58px}}
@media(prefers-reduced-motion:reduce){.unlock-stars{display:none}.unlock-portrait{transform:none;opacity:1}.unlock-halo{opacity:.75}.skin-detail .unlock-ready{box-shadow:0 5px 0 #4a8148,0 0 0 5px #8de8a260}}
