:root{--ink: #3b2f4a;--muted: #8a7f99;--pink: #ff8fab;--purple: #8e5cc5;--purple-dark: #6b3fa3;--yellow: #ffc94d;--green: #4fbf73;--red: #ef5b6b;--card: #ffffff;--line: #efe4f5;--radius: 22px;--shadow: 0 6px 0 rgba(142, 92, 197, .14), 0 12px 28px rgba(142, 92, 197, .12);--font-head: "Baloo 2", "Nunito", system-ui, sans-serif;--font-body: "Nunito", system-ui, -apple-system, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(circle at 8% 12%,#fff 0 46px,transparent 47px),radial-gradient(circle at 92% 18%,#fff8 0 70px,transparent 71px),radial-gradient(circle at 85% 88%,#fff9 0 56px,transparent 57px),radial-gradient(circle at 12% 80%,#fff7 0 36px,transparent 37px),linear-gradient(160deg,#fde9f3,#f3e8fb 55%,#e9effd);background-attachment:fixed;min-height:100vh;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}h1,h2,h3{font-family:var(--font-head);margin:0;line-height:1.15}img{display:block}.page{max-width:1040px;margin:0 auto;padding:16px 16px 48px}.center{display:grid;place-items:center;min-height:60vh;gap:16px}.center-text{text-align:center}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--red);font-weight:700}.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.btn{font-family:var(--font-head);font-weight:700;font-size:17px;padding:10px 22px 8px;border-radius:999px;color:#fff;background:var(--purple);box-shadow:0 5px 0 var(--purple-dark);transition:transform .08s,box-shadow .08s}.btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--purple-dark)}.btn.ghost{background:#fff;color:var(--purple);box-shadow:0 5px #e3d4f3}.btn.ghost:active{box-shadow:0 1px #e3d4f3}.btn-round{width:48px;height:48px;border-radius:50%;background:#fff;font-size:20px;display:grid;place-items:center;box-shadow:0 4px #e3d4f3;flex:none;transition:transform .08s,box-shadow .08s}.btn-round:active{transform:translateY(3px);box-shadow:0 1px #e3d4f3}.btn-round.big{width:62px;height:62px;font-size:24px}.btn-round.huge{width:110px;height:110px;font-size:48px}.btn-round.speak{background:var(--yellow);box-shadow:0 5px #e0a92b}.btn-round.huge.speak{animation:pulse 1.8s infinite}.pill{display:inline-block;background:#fff;border-radius:999px;padding:4px 12px;font-weight:800;font-size:15px;box-shadow:0 3px #e3d4f3}.hero{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border-radius:32px;padding:28px 32px;margin:8px 0 28px;box-shadow:var(--shadow);overflow:hidden}.hero h1{font-size:clamp(32px,6vw,52px);font-weight:800;color:var(--purple)}.hero p{font-size:17px;color:var(--muted);margin:8px 0 0}.rainbow{background:linear-gradient(90deg,#ff6b8b,#ffb03a,#4fbf73,#4a9cf0,#9a62d8);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-bomi{position:relative;flex:none}.hero-bomi img{width:clamp(110px,22vw,170px);aspect-ratio:1;border-radius:50%;border:6px solid var(--yellow);object-fit:cover}.bubble{position:absolute;top:-6px;left:-40px;background:var(--pink);color:#fff;font-weight:800;padding:6px 12px;border-radius:16px 16px 4px;font-family:var(--font-head)}.section-title{font-size:22px;font-weight:800;color:var(--purple);margin:26px 4px 12px}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.deck-card{text-align:left;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .15s}.deck-card:hover{transform:translateY(-4px) rotate(-.5deg)}.deck-cover{aspect-ratio:1181 / 827;background:#f6eefb}.deck-cover img{width:100%;height:100%;object-fit:cover}.deck-info{padding:14px 16px 16px;display:grid;gap:4px}.deck-info b{font-family:var(--font-head);font-size:20px}.deck-info span{color:var(--muted);font-size:14px}.chips{display:flex;gap:8px;margin-top:6px}.chip{background:#f3eafb;color:var(--purple);font-weight:800;font-size:13px;padding:3px 10px;border-radius:999px}.chip.star{background:#fff4d6;color:#c98a00}.topbar{display:flex;align-items:center;gap:12px;padding:10px 0}.topbar-title{flex:1;text-align:center;display:grid;min-width:0}.topbar-title b{font-family:var(--font-head);font-size:22px;color:var(--purple);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-title span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress{position:relative;height:14px;border-radius:99px;background:#fff;margin:4px 8px 18px;box-shadow:inset 0 2px #eadcf5}.progress>div{height:100%;border-radius:99px;background:linear-gradient(90deg,#ff9ab5,#b993ff);transition:width .4s cubic-bezier(.3,1.4,.6,1)}.progress-bomi{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:22px;transition:left .4s cubic-bezier(.3,1.4,.6,1)}.deck-head{display:grid;gap:16px}.deck-head-cover{width:100%;max-width:560px;margin:0 auto;border-radius:var(--radius);box-shadow:var(--shadow)}.word-strip{display:flex;gap:10px;overflow-x:auto;padding:4px 4px 10px;scroll-snap-type:x mandatory}.word-chip{flex:none;display:flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:4px 14px 4px 4px;box-shadow:0 3px #eadcf5;scroll-snap-align:start;text-align:left}.word-chip span{display:grid;line-height:1.1}.word-chip b{font-family:var(--font-head);font-size:16px}.word-chip small{color:var(--muted);font-size:12px}.settings{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;background:#fffa;border-radius:18px;padding:10px 16px;margin-top:12px;font-weight:700;font-size:14px}.settings label{display:flex;align-items:center;gap:6px}.settings input{width:18px;height:18px;accent-color:var(--purple)}.settings select{font:inherit;border-radius:10px;border:2px solid var(--line);padding:2px 6px;background:#fff}.mode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.mode-tile{position:relative;display:grid;justify-items:center;gap:2px;text-align:center;background:#fff;border-radius:var(--radius);padding:16px 10px 14px;border:3px solid transparent;box-shadow:0 5px color-mix(in srgb,var(--c) 45%,#fff),0 10px 20px #8e5cc514;transition:transform .12s,border-color .12s}.mode-tile:hover{transform:translateY(-3px);border-color:var(--c)}.mode-tile:active{transform:translateY(3px)}.mode-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:30px;background:color-mix(in srgb,var(--c) 22%,#fff);margin-bottom:6px}.mode-tile b{font-family:var(--font-head);font-size:17px}.mode-tile small{color:var(--muted);font-size:12.5px;line-height:1.3}.mode-stars{margin-top:4px;letter-spacing:2px}.mode-stars i{font-style:normal;color:#e8def0;font-size:16px}.mode-stars i.on{color:#ffbf1f}.mode{max-width:900px;margin:0 auto;padding:8px 16px 40px;min-height:100vh}.mode-body{display:grid;justify-items:center}.pic{aspect-ratio:1;border-radius:50%;overflow:hidden;flex:none;border:var(--bw, 6px) solid var(--c);background:color-mix(in srgb,var(--c) 12%,#fff)}.pic img{width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none}.fc-wrap{width:100%;display:grid;justify-items:center;gap:16px}.fc-wrap:fullscreen{background:linear-gradient(160deg,#fde9f3,#f3e8fb);padding:24px;align-content:center}.fc-counter{font-weight:800;color:var(--muted)}.fc{width:min(100%,640px);perspective:1400px;touch-action:pan-y}.fc-inner{position:relative;display:grid;transition:transform .55s cubic-bezier(.4,1.5,.5,1);transform-style:preserve-3d;animation:card-in .35s ease-out}.fc.open .fc-inner{transform:rotateY(180deg)}.fc-face{grid-area:1 / 1;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fff;border-radius:28px;border-top:14px solid var(--c);box-shadow:0 8px color-mix(in srgb,var(--c) 35%,#fff),0 18px 40px #5028781f;padding:24px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:420px}.fc-back{transform:rotateY(180deg)}.fc-hint{color:var(--muted);font-weight:700;margin:0}.fc-mystery{display:grid;place-items:center;gap:8px}.fc-mystery span{font-size:96px;animation:pulse 1.8s infinite}.fc-mystery p{font-family:var(--font-head);font-size:24px;color:var(--purple);margin:0}.fc.learn .fc-inner{transform:none}.fc.learn .fc-front{display:none}.fc.learn .fc-back{transform:none}.fc.learn .fc-back,.fc.flip .fc-back,.fc.listen .fc-back{flex-direction:row;flex-wrap:wrap;gap:20px 28px}.fc-text{display:grid;justify-items:center;text-align:center;gap:4px;min-width:200px}.fc-text h2{font-size:clamp(42px,9vw,68px);font-weight:800}.ipa{font-size:20px;color:#6d6378}.meaning{font-size:24px;font-weight:700;padding:2px 12px;border-radius:12px;cursor:pointer;transition:filter .2s}.sentence{display:grid;gap:2px;border-top:2px dashed var(--line);padding-top:10px;margin-top:6px;cursor:pointer}.sentence b{font-size:20px}.sentence small{color:var(--muted);font-size:15px}.blur{filter:blur(8px);background:#f3eafb}.fc-original{width:min(100%,720px);touch-action:pan-y}.fc-original img{width:100%;border-radius:18px;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none}.fc-controls{display:flex;gap:22px;align-items:center}.fc-tools{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.tool{background:#fff;border-radius:999px;padding:7px 14px;font-weight:800;font-size:14px;box-shadow:0 3px #eadcf5}.tool.on{background:var(--purple);color:#fff;box-shadow:0 3px 0 var(--purple-dark)}.fc-thumbs{display:flex;gap:6px;overflow-x:auto;max-width:100%;padding:6px}.fc-thumbs button{border-radius:50%;padding:2px;opacity:.6;transition:.15s}.fc-thumbs button.active{opacity:1;transform:scale(1.18);background:var(--yellow)}.quiz{width:100%;display:grid;justify-items:center;gap:18px}.quiz-prompt{display:grid;justify-items:center;gap:12px;text-align:center}.prompt-word{font-family:var(--font-head);font-weight:800;font-size:clamp(40px,9vw,60px);color:var(--purple);background:#fff;padding:6px 30px 0;border-radius:24px;box-shadow:var(--shadow)}.prompt-word span{font-size:.5em;vertical-align:middle}.prompt-word.vi{font-size:clamp(30px,7vw,46px);color:#e0661f}.prompt-sentence{font-family:var(--font-head);font-size:clamp(26px,6vw,36px);font-weight:700;background:#fff;padding:6px 24px 2px;border-radius:18px;box-shadow:var(--shadow)}.quiz-ask{font-weight:800;color:var(--muted);margin:0;font-size:16px;text-align:center}.quiz-options{width:min(100%,640px);display:grid;gap:14px}.quiz-options.images{grid-template-columns:repeat(2,1fr);max-width:460px}.quiz-options.words{grid-template-columns:repeat(2,1fr)}.opt-img{background:#fff;border-radius:26px;padding:12%;box-shadow:0 6px #eadcf5;transition:transform .12s}.opt-img:hover{transform:translateY(-3px)}.opt-word{font-family:var(--font-head);font-weight:800;font-size:clamp(22px,5vw,30px);background:#fff;color:var(--c);border-radius:20px;padding:14px 10px 10px;box-shadow:0 6px color-mix(in srgb,var(--c) 40%,#fff);transition:transform .12s}.opt-word:hover{transform:translateY(-3px)}.right{background:#e3f8e8!important;box-shadow:0 6px 0 var(--green)!important;animation:bounce .5s}.wrong{background:#fde6e9!important;box-shadow:0 6px 0 var(--red)!important;animation:shake .4s;opacity:.55}.spell{width:100%;display:grid;justify-items:center;gap:18px}.spell .pop-in{display:grid;justify-items:center;gap:10px}.meaning-hint{margin:0;font-weight:800;font-size:20px;color:var(--muted)}.slots{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.slots span{width:clamp(40px,10vw,54px);height:clamp(50px,12vw,64px);border-radius:14px;background:#fff;display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:clamp(26px,6vw,34px);color:var(--purple);box-shadow:inset 0 -4px #eadcf5;cursor:pointer}.slots span.filled{background:#f3eafb;animation:bounce .25s}.slots span.cursor{box-shadow:inset 0 -4px 0 var(--pink)}.slots.ok span{background:#e3f8e8;color:#24934a;box-shadow:inset 0 -4px 0 var(--green)}.spell-input{font:inherit;font-size:20px;font-weight:700;text-align:center;width:min(100%,340px);padding:10px 16px;border-radius:16px;border:3px solid var(--line);background:#fff;outline:none}.spell-input:focus{border-color:var(--pink)}.tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:520px}.tile{width:58px;height:62px;border-radius:16px;font-family:var(--font-head);font-weight:800;font-size:32px;background:var(--yellow);color:#7a4c00;box-shadow:0 5px #e0a92b;transition:transform .1s}.tile:active{transform:translateY(4px);box-shadow:0 1px #e0a92b}.tile.used{opacity:.25;transform:scale(.85)}.memory{width:min(100%,640px);display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.mem{aspect-ratio:1;perspective:800px;padding:0}.mem-inner{position:relative;display:block;width:100%;height:100%;transition:transform .4s;transform-style:preserve-3d}.mem.shown .mem-inner{transform:rotateY(180deg)}.mem-back,.mem-front{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:18px;display:grid;place-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden}.mem-back{background:repeating-linear-gradient(45deg,#b993ff,#b993ff 10px,#c7a8ff 10px,#c7a8ff 20px);font-size:34px;box-shadow:0 5px #8e6cd6}.mem-front{transform:rotateY(180deg);padding:8%;background:#fff;box-shadow:0 5px color-mix(in srgb,var(--c) 40%,#fff)}.mem-front b{font-family:var(--font-head);font-size:clamp(16px,4vw,24px);padding:4px;text-align:center}.mem.matched .mem-front{background:#e3f8e8;box-shadow:0 5px 0 var(--green)}.mem.matched{animation:bounce .5s}.missing{width:100%;display:grid;justify-items:center;gap:18px}.missing-grid{width:min(100%,640px);display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px}.missing-cell{background:#fff;border-radius:20px;padding:10px;display:grid;justify-items:center;gap:4px;box-shadow:0 5px #eadcf5;animation:card-in .3s}.missing-cell small{font-weight:800;font-family:var(--font-head);font-size:15px}.missing-cell.gone{background:#f3eafb;border:3px dashed #c7a8ff;box-shadow:none}.mystery{font-family:var(--font-head);font-size:64px;font-weight:800;color:var(--purple);align-self:center;animation:pulse 1.4s infinite}.pop-game{width:100%;display:grid;justify-items:center;gap:8px}.pop-speak{width:84px!important;height:84px!important;font-size:36px!important}.sky{position:relative;width:min(100%,720px);height:min(60vh,520px);border-radius:28px;overflow:hidden;background:linear-gradient(#bfe6ff,#e9f6ff 70%,#f5fff0);box-shadow:var(--shadow)}.balloon{position:absolute;bottom:-40%;width:22%;max-width:140px;padding:0;animation:float-up linear infinite}.balloon-body{display:grid;place-items:center;aspect-ratio:.85;background:radial-gradient(circle at 32% 28%,#fff9 0 12%,transparent 13%),var(--b);border-radius:50% 50% 48% 48%/55% 55% 45% 45%;box-shadow:inset -8px -10px #00000014}.balloon-body .pic{border-width:3px}.balloon-string{display:block;width:2px;height:40px;margin:0 auto;background:#9d8fb0}.balloon.popped{animation:popped .4s forwards!important}.balloon.wrong{animation-play-state:paused;filter:grayscale(.7);opacity:.5}.result{position:relative;width:min(100%,480px);margin-top:20px;background:#fff;border-radius:32px;padding:32px 24px;display:grid;justify-items:center;gap:12px;text-align:center;box-shadow:var(--shadow)}.result h2{font-size:34px;color:var(--purple)}.result p{margin:0;color:var(--muted);font-weight:700}.result-stars{display:flex;gap:8px;font-size:56px;line-height:1}.result-stars span{color:#eee2f5}.result-stars span.on{color:#ffbf1f;animation:star-in .5s both;text-shadow:0 4px 0 #e59c00}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:10}.confetti i{position:absolute;top:-20px;width:10px;height:14px;animation:fall linear forwards}.pop-in{animation:card-in .35s ease-out}.shake{animation:shake .4s}.wiggle{animation:wiggle 3s ease-in-out infinite}@keyframes card-in{0%{transform:scale(.85);opacity:0}to{transform:none;opacity:1}}@keyframes bounce{0%,to{transform:scale(1)}40%{transform:scale(1.12)}70%{transform:scale(.96)}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}@keyframes wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes star-in{0%{transform:scale(0) rotate(-90deg)}70%{transform:scale(1.3)}to{transform:none}}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}@keyframes float-up{0%{transform:translateY(0)}to{transform:translateY(-170%) translateY(-60vh)}}@keyframes popped{to{transform:scale(1.6);opacity:0}}@media(max-width:600px){.hero{padding:20px;border-radius:24px}.bubble{left:-20px;font-size:13px}.fc-face{min-height:360px;padding:20px 14px}.fc.learn .fc-back,.fc.flip .fc-back,.fc.listen .fc-back{flex-direction:column}.memory{grid-template-columns:repeat(3,1fr)}.mode-grid{grid-template-columns:repeat(2,1fr)}.balloon{width:24%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.home-foot{text-align:center;margin-top:32px}.home-foot a{color:var(--muted);font-weight:700;text-decoration:none;font-size:14px}.home-foot a:hover{color:var(--purple)}.timer{width:min(100%,460px);height:12px;border-radius:99px;background:#fff;overflow:hidden;box-shadow:inset 0 2px #eadcf5}.timer div{height:100%;background:linear-gradient(90deg,var(--green),var(--yellow),var(--red));background-size:300% 100%;animation:drain linear forwards;border-radius:99px}@keyframes drain{0%{width:100%;background-position:0 0}to{width:0;background-position:100% 0}}.selected{outline:4px solid var(--purple);outline-offset:2px;transform:translateY(-3px)}.small-btn{padding:6px 14px!important;font-size:14px!important;margin-top:-8px}.sentence-line{width:min(100%,640px);min-height:70px;padding:12px;border-radius:20px;background:#fff;box-shadow:inset 0 -4px #eadcf5;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}.sentence-line.ok{background:#e3f8e8;box-shadow:inset 0 -4px 0 var(--green)}.order-chip{padding:8px 16px 6px;border-radius:14px;font-family:var(--font-head);font-weight:800;font-size:clamp(20px,5vw,26px);background:var(--yellow);color:#7a4c00;box-shadow:0 5px #e0a92b;transition:transform .1s}.order-chip:active{transform:translateY(4px);box-shadow:0 1px #e0a92b}.order-chip.placed{background:#f3eafb;color:var(--purple);box-shadow:0 4px #d9c5ef;animation:bounce .25s}.order-chip.used{opacity:.25;transform:scale(.9)}.prompt-sentence.fill{max-width:640px;text-align:center;line-height:1.5}.prompt-sentence .gap{display:inline-block;min-width:4ch;padding:0 8px;margin:0 2px;border-bottom:4px solid var(--pink);color:var(--purple)}.prompt-sentence.ok .gap{color:#24934a;border-color:var(--green)}.tf-card{display:grid;justify-items:center;gap:12px;padding:16px 20px;border-radius:28px}.tf-card.right{background:#e3f8e8}.tf-card.wrong{background:#fde6e9}.tf-buttons{display:flex;gap:22px}.tf-btn{width:110px;height:96px;border-radius:28px;font-size:54px;font-weight:900;color:#fff;transition:transform .1s}.tf-btn.yes{background:var(--green);box-shadow:0 7px #2f9654}.tf-btn.no{background:var(--red);box-shadow:0 7px #c23c4c}.tf-btn:active{transform:translateY(5px);box-shadow:0 2px #0003}.blitz-clock{font-family:var(--font-head);font-weight:800;font-size:22px;color:var(--purple);background:#fff;padding:6px 12px 2px;border-radius:16px;min-width:70px;text-align:center}.blitz-clock.hurry{color:var(--red);animation:pulse .8s infinite}.blitz-score{margin:0;font-family:var(--font-head);font-weight:800;font-size:26px;color:#24934a}.blitz-imgs{max-width:380px!important}.whack{width:min(100%,480px);display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;border-radius:28px;background:linear-gradient(#a8e08f,#7cc767);box-shadow:var(--shadow)}.hole{position:relative;aspect-ratio:1;padding:0;overflow:hidden;border-radius:0 0 50% 50%/0 0 30% 30%}.hole:before{content:"";position:absolute;left:6%;right:6%;bottom:4%;height:32%;border-radius:50%;background:#5a3d2b;box-shadow:inset 0 8px #3b271b}.hole-front{position:absolute;left:0;right:0;bottom:0;height:16%;background:#7cc767;border-radius:50% 50% 0 0/100% 100% 0 0;pointer-events:none}.mole{position:absolute;left:12%;right:12%;bottom:10%;display:grid;justify-items:center;animation:mole-up .25s ease-out}.mole-face{font-size:clamp(26px,7vw,40px);line-height:1;margin-bottom:-8px;z-index:1}.mole .pic{border-width:3px}.mole.right{animation:bounce .4s;filter:drop-shadow(0 0 10px var(--green))}.mole.wrong{animation:shake .4s;filter:grayscale(.8);opacity:.6}@keyframes mole-up{0%{transform:translateY(100%)}to{transform:none}}.bingo{display:grid;gap:10px;width:min(100%,440px);padding:14px;border-radius:28px;background:#fff;box-shadow:var(--shadow)}.bingo.n3{grid-template-columns:repeat(3,1fr)}.bingo.n2{grid-template-columns:repeat(2,1fr);width:min(100%,340px)}.bingo-cell{position:relative;padding:8%;border-radius:20px;background:#faf5fe;box-shadow:0 4px #eadcf5;transition:transform .12s}.bingo-cell.marked .pic{opacity:.45}.bingo-cell.win{background:#fff3c4;box-shadow:0 4px 0 var(--yellow);animation:bounce .6s infinite}.bingo-stamp{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:clamp(34px,9vw,52px);animation:star-in .4s both}.match{width:min(100%,460px);display:grid;grid-template-columns:clamp(76px,22vw,104px) 1fr;gap:12px 28px;align-items:stretch}.match-pic{background:#fff;border-radius:22px;padding:8px;box-shadow:0 5px #eadcf5;transition:transform .12s}.match-word{display:grid;place-items:center}.match .right{pointer-events:none;opacity:.7}.mic{width:104px;height:104px;border-radius:50%;font-size:46px;color:#fff;background:var(--pink);box-shadow:0 7px #e06b8a;transition:transform .1s}.mic:active{transform:translateY(5px);box-shadow:0 2px #e06b8a}.mic.on{background:var(--red);animation:pulse .9s infinite;box-shadow:0 0 0 10px #ef5b6b33,0 7px #c23c4c}.mic.ok{background:var(--green);box-shadow:0 7px #2f9654;font-weight:900}.speak-heard{margin:0;font-weight:700;color:var(--muted)}.word-end{font-family:var(--font-head);font-size:26px;color:#24934a;margin-left:-6px}.progress-bomi i{display:inline-block;font-style:normal;animation:hop .5s ease-out}@keyframes hop{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-14px) scale(1.25) rotate(-15deg)}70%{transform:translateY(0) scale(.95)}to{transform:none}}.combo{position:fixed;top:92px;left:50%;z-index:20;pointer-events:none;font-family:var(--font-head);font-weight:800;font-size:clamp(22px,6vw,30px);color:#fff;background:linear-gradient(135deg,#ff9f43,#ff5e7e);padding:6px 20px 2px;border-radius:99px;box-shadow:0 6px #d9435f;animation:combo 1.4s ease-out forwards}@keyframes combo{0%{transform:translate(-50%,10px) scale(.5);opacity:0}15%{transform:translate(-50%) scale(1.15);opacity:1}30%{transform:translate(-50%) scale(1)}80%{opacity:1}to{transform:translate(-50%,-16px);opacity:0}}.album{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:12px}.sticker{position:relative;padding:8px;background:#fff;border-radius:50%;box-shadow:0 5px #eadcf5,0 0 0 4px #fff inset;transform:rotate(-4deg);transition:transform .15s}.sticker:nth-child(2n){transform:rotate(5deg)}.sticker:not(.locked):hover{transform:scale(1.08) rotate(0)}.sticker.locked{background:#f1eaf7;box-shadow:none;border:3px dashed #d9c5ef}.sticker.locked .pic{filter:grayscale(1) brightness(1.5) blur(3px);opacity:.35}.sticker.locked span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:34px;color:#c7a8ff}.sticker.big{padding:12px;transform:none;animation:sticker-in .7s cubic-bezier(.3,1.6,.5,1)}@keyframes sticker-in{0%{transform:scale(0) rotate(-200deg)}to{transform:none}}.album-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.album-head small{color:var(--muted);font-weight:700}.gift-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:16px;background:#3b2f4a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:card-in .3s}.gift-box{display:grid;justify-items:center;gap:6px;color:#fff}.gift-box span{font-size:130px;line-height:1;animation:gift-shake 1s ease-in-out infinite}.gift-box b{font-family:var(--font-head);font-size:26px}.gift-box small{font-weight:700;opacity:.85}@keyframes gift-shake{0%,60%,to{transform:rotate(0) scale(1)}70%{transform:rotate(-12deg) scale(1.05)}80%{transform:rotate(12deg) scale(1.08)}90%{transform:rotate(-8deg) scale(1.05)}}.gift-open{position:relative;display:grid;justify-items:center;gap:10px;text-align:center;background:#fff;border-radius:32px;padding:28px 24px;width:min(100%,380px);box-shadow:var(--shadow)}.gift-open h2{color:var(--purple);font-size:28px}.gift-open p{margin:0;color:var(--muted);font-weight:700}.gift-rays{position:absolute;top:20px;left:50%;width:300px;height:300px;margin-left:-150px;border-radius:50%;background:repeating-conic-gradient(#ffe7a0 0 10deg,transparent 10deg 20deg);opacity:.6;animation:spin 8s linear infinite;z-index:0;-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);mask:radial-gradient(circle,#000 30%,transparent 70%)}.gift-open>:not(.gift-rays){position:relative;z-index:1}@keyframes spin{to{transform:rotate(360deg)}}.play-now{width:min(100%,560px);margin:18px auto 4px;display:flex;align-items:center;gap:16px;padding:14px 22px;border-radius:28px;text-align:left;color:#fff;background:linear-gradient(135deg,#ff8fab,#b993ff);box-shadow:0 7px 0 var(--purple-dark),0 14px 30px #8e5cc54d;transition:transform .1s;animation:pulse 2.4s ease-in-out infinite}.play-now:active{transform:translateY(5px);box-shadow:0 2px 0 var(--purple-dark);animation:none}.play-now-icon{flex:none;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-size:26px;background:#fff;color:var(--pink);padding-left:4px}.play-now b{display:block;font-family:var(--font-head);font-size:28px;line-height:1.1}.play-now small{font-weight:700;opacity:.92}.play-summary .play-steps{display:grid;gap:8px;width:100%}.play-step{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;border-radius:16px;background:#faf5fe;font-weight:800}.play-step .stars{letter-spacing:2px}.play-step .stars i{color:#eee2f5;font-style:normal}.play-step .stars i.on{color:#ffbf1f}.install-bar{display:flex;align-items:center;gap:12px;margin:16px 0 0;padding:12px 14px;background:#fff;border-radius:22px;box-shadow:var(--shadow)}.install-bar img{width:52px;height:52px;border-radius:14px;flex:none}.install-bar div{flex:1;display:grid;gap:2px}.install-bar b{font-family:var(--font-head);font-size:18px;color:var(--purple)}.install-bar small{color:var(--muted);font-weight:700}.install-bar .btn{flex:none;padding:10px 16px}
