@font-face{font-family:Jua;src:url('/Jua-Regular.ttf') format('truetype');font-display:swap}
:root{font-family:'Segoe UI','Malgun Gothic',sans-serif;color:#285667;background:#d8f1f3}
body{min-height:100svh;background:radial-gradient(ellipse at 50% 10%,#f5ffff 0,transparent 58%),linear-gradient(155deg,#d7f3ef,#d8eefa 65%,#e6e4fa);background-attachment:fixed;overflow-x:hidden}
body::before,body::after{content:'';position:fixed;z-index:-1;pointer-events:none;width:80vw;height:45vw;border-radius:50%;bottom:-25vw;background:#83ccd129;box-shadow:0 -10px 0 #ffffff30}body::before{left:-25vw;rotate:12deg}body::after{right:-25vw;rotate:-12deg;background:#90b6e42b}
.shell{width:100%;max-width:500px;margin:auto;padding:14px 18px 18px;box-sizing:border-box}.site-header{height:38px;margin-bottom:14px}.site-header nav{display:flex;gap:10px;align-items:center}.back{font-size:12px;color:#507c8f}.languages{display:flex;border:2px solid #ffffffc9;background:#ffffff60;border-radius:12px;padding:3px;gap:1px}.languages a{text-decoration:none;font:700 10px 'Segoe UI',sans-serif;color:#608393;padding:6px;border-radius:7px}.languages a[aria-current]{background:#209899;color:#fff;box-shadow:0 2px 0 #16767e}.icon{background:#f9ffff;border:2px solid white;border-radius:13px;box-shadow:0 3px 0 #afcfd9;width:36px;height:36px;font-size:20px}
.lobby-title{text-align:center;padding-top:8px}.lobby-badge{font-size:11px;color:#568f9b;letter-spacing:1.6px}.lobby-title h1{font:76px Jua,sans-serif;letter-spacing:-4px;margin:12px 0 5px;color:#26a5a1;-webkit-text-stroke:1.5px #f3ffff;text-shadow:0 3px 0 #fff,0 7px 0 #157a82,0 12px 12px #378d9b30;rotate:-5deg;line-height:1.1}.lobby-title h1 span{display:inline-block;margin-left:5px;color:#8a92dc;text-shadow:0 3px 0 #fff,0 7px 0 #5b6eb0;rotate:15deg}.lobby-title p{font-size:15px;color:#5f8e9c;letter-spacing:1px;margin:18px 0 0}
.mascot-stage{position:relative;height:228px;max-width:440px;margin:0 auto}.jelly-mascot{position:absolute;width:112px;height:113px;left:50%;top:46px;margin-left:-56px;border-radius:48% 48% 44% 16%;background:linear-gradient(140deg,#d5fff6 0%,#78ddd0 65%,#56c1b5);border:3px solid #f0fffb;box-shadow:inset 0 5px 5px white,inset 0 -7px 3px #1f998625,0 7px 0 #56aea6,0 15px 25px #3a9f9930;animation:jelly-float 3s ease-in-out infinite}.jelly-shine{position:absolute;width:30px;height:13px;left:18px;top:14px;background:#ffffffe0;border-radius:50%;rotate:-35deg}.jelly-eyes{position:absolute;display:flex;gap:26px;top:43px;left:28px}.jelly-eyes i{width:8px;height:13px;border-radius:50%;background:#23706d;box-shadow:inset 1px 2px #144e55}.jelly-smile{position:absolute;left:47px;top:63px;width:15px;height:10px;border:3px solid #23706d;border-top:0;border-radius:0 0 15px 15px}.jelly-cheeks{position:absolute;top:62px;left:18px;width:17px;height:7px;background:#e29bd18f;border-radius:50%;box-shadow:53px 0 #e29bd18f}.jelly-plus{position:absolute;right:-15px;top:-14px;font-size:36px;color:#8891d8;-webkit-text-stroke:1px white;rotate:15deg}.mascot-shadow{position:absolute;left:50%;top:175px;transform:translateX(-50%);width:98px;height:13px;border-radius:50%;background:#4c9d9d20;filter:blur(2px)}
.stage-orbit{position:absolute;display:grid;place-items:center;width:45px;height:46px;color:#4b7aa2;background:linear-gradient(140deg,#f0fcff,#a3d6ee);border:2px solid white;border-radius:48% 48% 44% 16%;font-size:26px;box-shadow:0 4px 0 #80b8d0}.stage-orbit.one{left:6%;top:58px;rotate:-17deg}.stage-orbit.two{right:10%;top:26px;rotate:18deg}.stage-orbit.three{right:2%;top:124px;rotate:10deg}.stage-spark{position:absolute;color:#90a6d3;font-size:25px}.stage-spark.one{left:22%;top:140px}.stage-spark.two{left:26%;top:13px}.mascot-message{position:absolute;bottom:0;left:50%;transform:translateX(-50%);background:#ffffffb0;border:2px solid #fff;border-radius:20px;padding:7px 18px;font-size:12px;color:#50828d;white-space:nowrap}
.mode-list{display:grid;gap:18px;margin:22px 0 0}.mode-card{position:relative;display:flex;align-items:center;text-align:left;gap:15px;padding:17px 19px;min-height:105px;border:2px solid #fff9;border-radius:25px;color:#fff;transition:transform .15s}.classic-card{background:linear-gradient(150deg,#53c6bc,#229a9f);box-shadow:0 6px 0 #137781,0 12px 18px #338d9825}.practice-card{background:linear-gradient(150deg,#a8adeb,#7f91d4);box-shadow:0 6px 0 #5a6daa,0 12px 18px #5e77a525}.mode-card:active{transform:translateY(4px)}.mode-icon{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;background:#ffffff23;border:1px solid #ffffff70;border-radius:17px;font-size:34px}.mode-copy{display:flex;flex-direction:column;gap:4px;flex:1}.mode-copy small{font-size:11px;color:#f2ffff}.mode-copy strong{font-size:26px;font-weight:400;text-shadow:0 2px #155c7030}.mode-copy>span{font-size:11px;color:#f4ffff}.card-arrow{font-size:12px;background:#ffffff25;border:1px solid #ffffff60;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;flex-shrink:0}.lobby-tools{display:flex;justify-content:center;gap:25px;align-items:center;margin:28px 0 0}.lobby-tools button{background:none;color:#557f96;font-size:13px;padding:10px 0}.lobby-tools>span{border-left:1px solid #b0cad8;padding-left:24px;display:grid;gap:4px;color:#62899b}.lobby-tools b{font-size:14px;font-weight:400}.lobby-tools small{font-size:10px}
:root{--board-h:calc(100svh - 225px);--board-max-h:min(600px,calc(100svh - 225px));--board-gap:clamp(2px,0.6vh,5px);--board-pad:clamp(4px,0.9vh,8px)}
body[data-state=ready] .game{display:none}body:not([data-state=ready]) .lobby{display:none}body:not([data-state=ready]) .site-header{display:none}
body:not([data-state=ready]){min-height:100svh;overflow-y:auto;overflow-x:hidden}
body:not([data-state=ready]) .shell{min-height:100svh;height:auto;max-height:none;display:flex;flex-direction:column;justify-content:flex-start;max-width:min(480px,100vw);padding:clamp(6px,1.2vh,12px) clamp(10px,2.5vw,16px);margin:0 auto;box-sizing:border-box;overflow:visible}
body:not([data-state=ready]) .game{min-height:calc(100svh - clamp(12px,2.4vh,24px));height:auto;max-height:none;display:flex;flex-direction:column;justify-content:space-between;width:100%;margin:0 auto;box-sizing:border-box;overflow:visible;padding:0;background:none;border:0;box-shadow:none;border-radius:0;flex-shrink:0}
.game-heading{display:flex;align-items:center;gap:10px;margin:0 0 clamp(4px,0.8vh,8px);flex-shrink:0}.game-heading>div{flex:1}.game-heading small{font:700 9px 'Segoe UI',sans-serif;letter-spacing:2px;color:#729aa9}.game-heading h2{font-size:clamp(19px,2.8vh,22px);color:#377688;margin:2px 0 0;font-weight:700;letter-spacing:0}#pause{font:700 13px 'Segoe UI',sans-serif;width:auto;min-width:38px;padding:0 8px}
.stats{background:linear-gradient(150deg,#ffffffef,#eefbff);border:3px solid white;border-radius:18px;box-shadow:0 4px 0 #a9ccd6,0 8px 12px #40748b10;padding:clamp(6px,1vh,10px) 12px clamp(4px,0.8vh,8px);flex-shrink:0}.stats>div{min-width:60px}.stats span{font-size:clamp(10px,1.4vh,11px);margin-bottom:2px;color:#5e899d}.stats strong{font:clamp(24px,3.8vh,32px) Jua,'Segoe UI',sans-serif;color:#258f96;font-weight:700}.stats small{font:12px Jua,sans-serif;color:#7da4b1}.stats>div:last-child strong{color:#7d84c5}.timer-track{height:clamp(5px,0.8vh,8px);margin:clamp(6px,1vh,9px) 0 clamp(4px,0.8vh,7px);border:2px solid #ffffffc0;box-shadow:inset 0 2px 2px #729daa20;background:#a9cdd275;flex-shrink:0}#timer-bar{border-radius:6px;box-shadow:inset 0 2px #ffffff55}
.board-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:clamp(4px,0.8vh,8px);font-size:clamp(11px,1.5vh,12px);color:#638b9d;flex-shrink:0}.target-badge{background:#ffffff90;border:1px solid #fff;border-radius:10px;padding:clamp(3px,0.5vh,5px) 8px;white-space:nowrap}.target-badge b{color:#128d90;font-size:clamp(15px,2.2vh,18px);font-weight:700;margin-left:3px}#hint{margin-left:auto;background:linear-gradient(#fff,#f0ecff);border:2px solid #fff;border-radius:12px;padding:clamp(5px,0.8vh,8px) clamp(8px,1.5vw,12px);box-shadow:0 3px 0 #b6b8db;color:#7773ad;font-size:clamp(12px,1.8vh,14px);white-space:nowrap}#hints{background:#e0def7;border-radius:6px;padding:2px 5px;font-size:11px}
.board-wrap{border:3px solid #f6ffff;background:linear-gradient(145deg,#d9f2f1,#c5e1ed);box-shadow:inset 0 3px 7px #478e9b20,0 6px 0 #93becd,0 13px 22px #417f9620;border-radius:20px;overflow:hidden;position:relative;width:fit-content;max-width:100%;margin:0 auto;flex-shrink:1;box-sizing:border-box}#board{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(16,minmax(0,1fr));gap:var(--board-gap);padding:var(--board-pad);aspect-ratio:10/16;height:var(--board-h);max-height:var(--board-max-h);max-width:100%;width:auto;margin:0 auto;box-sizing:border-box;touch-action:none;user-select:none;outline-offset:-3px}.cell{aspect-ratio:1;min-width:0;min-height:0;line-height:1;font:700 clamp(14px,calc(var(--board-max-h)*0.046),26px) Jua,'Segoe UI',sans-serif;text-shadow:0 1px #ffffffa0}.cell::before{inset:3% 3% 6%}.cell::after{top:16%;left:20%}.selection-info{margin:clamp(4px,0.8vh,8px) 0 clamp(2px,0.4vh,4px);min-height:clamp(32px,4.5vh,40px);gap:8px;font-size:clamp(11px,1.5vh,12px);color:#4e7e90;flex-shrink:0}.sum-pill{background:#f3ffff;border:2px solid #fff;border-radius:12px;padding:clamp(4px,0.6vh,6px) 10px;box-shadow:0 3px 0 #b1ced9;font-size:clamp(11px,1.5vh,12px)}.sum-pill b{font:clamp(18px,2.6vh,22px) Jua,sans-serif}.sum-pill>span{font-size:11px}.tools{border:0;padding:clamp(2px,0.5vh,6px) 0 0;gap:10px;flex-shrink:0}.tools button{background:#f7ffffad;border:2px solid #fff;border-radius:12px;box-shadow:0 3px 0 #b1ccd9;font-size:clamp(11px,1.6vh,13px);padding:clamp(6px,1vh,9px)}.keyboard{text-align:center;color:#7799a7;margin:clamp(2px,0.4vh,4px) 0 0;font-size:9px;flex-shrink:0}.cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(ellipse at top,#f6fffff7,#d5edf5fa);backdrop-filter:blur(4px);padding:clamp(8px,2vh,16px) clamp(10px,2.5vw,16px);box-sizing:border-box;overflow-y:auto;z-index:10}.cover[hidden]{display:none !important}.cover-symbol{display:flex;align-items:center;justify-content:center;width:clamp(44px,8.5vh,64px);height:clamp(44px,8.5vh,64px);background:linear-gradient(145deg,#d6fff2,#8bd7c8);border:1px solid #69c9b6;border-radius:48% 48% 44% 16%;box-shadow:inset 0 3px 4px #ffffffb0,0 6px 14px #278c7f12;font:clamp(22px,4.2vh,32px) Jua,sans-serif;color:#087f80;letter-spacing:-2px;margin-bottom:clamp(4px,0.9vh,8px);position:relative;flex-shrink:0}.cover-symbol span{font-size:clamp(12px,2.2vh,16px);position:absolute;top:2px;right:4px;color:#168d81;letter-spacing:0}.cover h2{font:700 clamp(16px,2.6vh,21px)/1.25 'Segoe UI','Malgun Gothic',sans-serif;margin:clamp(2px,0.4vh,5px) 0;color:#285667;max-width:100%;flex-shrink:0}.cover p{font:400 clamp(11px,1.6vh,13px)/1.55 'Segoe UI','Malgun Gothic',sans-serif;color:#547d90;margin:clamp(2px,0.5vh,5px) 0 clamp(8px,1.6vh,14px);max-width:240px;flex-shrink:0}.primary{background:linear-gradient(#4ac4b8,#209b9e);border:2px solid #eaffff;border-radius:15px;box-shadow:0 4px 0 #127880;font-size:clamp(13px,2vh,16px);padding:clamp(7px,1.2vh,10px) clamp(16px,3vw,24px);color:#fff;cursor:pointer;flex-shrink:0;transition:transform .1s,box-shadow .1s}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #127880}.primary:hover{background:linear-gradient(#52ccc1,#27a6a8)}.secondary{display:block;margin-top:clamp(4px,0.8vh,8px);background:none;border:none;color:#648797;font-size:clamp(11px,1.5vh,12px);padding:3px 6px;cursor:pointer;flex-shrink:0}.ad-slot{margin-top:24px;border-top:1px dashed #afcfd9;padding-top:14px;color:#608393;font-size:11px;text-align:center;width:100%;box-sizing:border-box}.ad-slot>p{font-size:11px;margin:0 0 8px;letter-spacing:1px}.ad-placeholder{min-height:180px;background:#ffffff60;border:2px dashed #9bc9d4;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px;color:#50828d;box-sizing:border-box}.ad-placeholder strong{font-size:13px;color:#285667}.ad-placeholder span{font-size:11px;color:#6b95a4}.game-guide{margin-top:24px;text-align:left;padding:20px 18px;background:#ffffffc9;border:2px solid #fff;border-radius:22px;box-shadow:0 6px 16px #478e9b18;width:100%;box-sizing:border-box;scroll-margin-top:32px;min-height:calc(100svh - 48px)}.game-guide h2{font:700 20px 'Segoe UI','Malgun Gothic',sans-serif;letter-spacing:-.5px;color:#285667;margin:0 0 10px;text-align:center}.game-guide .example{display:flex;justify-content:center;align-items:center;gap:8px;margin:14px 0 10px}.game-guide .example span{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#f0fcff,#a3d6ee);border:2px solid white;border-radius:10px;font:700 18px/1 Jua,sans-serif;color:#285667;box-shadow:0 3px 0 #93becd;box-sizing:border-box}.game-guide .example b{font:700 20px/1 Jua,sans-serif;color:#209899;display:inline-flex;align-items:center;height:34px;margin-left:6px;line-height:1}.game-guide>p{text-align:center;font-size:13px;color:#5b8495;margin:0 0 16px}.guide-cards{display:grid;gap:10px}.guide-card{background:#f4fbfa;border:1.5px solid #d2eff0;border-radius:16px;padding:12px 14px}.guide-card h3{font:700 14px 'Segoe UI','Malgun Gothic',sans-serif;color:#208f90;margin:0 0 4px}.guide-card p{font:400 12px/1.5 'Segoe UI','Malgun Gothic',sans-serif;color:#537888;margin:0}.guide-actions{display:flex;justify-content:center;margin-top:18px}.to-top-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 22px;background:linear-gradient(#fff,#eef8fa);border:2px solid #fff;border-radius:14px;color:#285b6c;font:700 13px 'Segoe UI','Malgun Gothic',sans-serif;box-shadow:0 3px 0 #b0d0dc;cursor:pointer;transition:transform .1s,box-shadow .1s}.to-top-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #b0d0dc}footer{text-align:center;font-size:11px;color:#7e9aa9;margin:20px 0 10px;padding-bottom:12px;width:100%;box-sizing:border-box}
#pop-feedback{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);pointer-events:none;display:flex;flex-direction:column;align-items:center;opacity:0;z-index:6;white-space:nowrap}#pop-feedback.pop{animation:reward-float .68s cubic-bezier(.16,1,.3,1) both}#pop-feedback strong{font:700 38px/1 Jua,sans-serif;color:#fff;-webkit-text-stroke:1.5px #158b82;text-shadow:0 3px 0 #0d6e67,0 6px 14px #18605c38;letter-spacing:-1px}#pop-feedback .reward-tag{font:700 11px/1 'Segoe UI',sans-serif;letter-spacing:1px;color:#fff;background:linear-gradient(135deg,#36c6b4,#19988b);border:2px solid #fff;border-radius:14px;padding:3px 9px;box-shadow:0 3px 0 #127268;transform:rotate(-6deg);margin-bottom:2px}#pop-feedback .reward-tag.good{background:linear-gradient(135deg,#54c7ec,#299cc3);box-shadow:0 3px 0 #1f7796}#pop-feedback .reward-tag.great{background:linear-gradient(135deg,#a58df6,#795bd6);box-shadow:0 3px 0 #573ea8}#pop-feedback .reward-tag.perfect{background:linear-gradient(135deg,#ff9d79,#e4683d);box-shadow:0 3px 0 #b34620}@keyframes reward-float{0%{opacity:0;transform:translate(-50%,8px) scale(.65)}22%{opacity:1;transform:translate(-50%,-10px) scale(1.18)}40%{opacity:1;transform:translate(-50%,-14px) scale(1)}72%{opacity:1}100%{opacity:0;transform:translate(-50%,-45px) scale(.9)}}@keyframes jelly-float{50%{transform:translateY(-8px) rotate(4deg)}}
html[lang=en] .lobby-title h1{font-size:61px;letter-spacing:-2px}html[lang=ja] .lobby-title h1{font-size:58px;letter-spacing:-3px}html[lang=ja] .mode-copy strong{font-size:23px}html[lang=ja]{font-family:'Segoe UI',sans-serif}html[lang=ja] .mode-copy small{font-size:10px}
@media(max-width:480px){.shell{padding:10px 14px 16px}.lobby{padding:0 9px}.site-header{margin-bottom:8px}.cell{font-size:clamp(14px,4.5vw,22px)}.board-toolbar{font-size:11px}.stats strong{font-size:clamp(22px,3.4vh,28px)}.game-heading h2{font-size:20px}.game-heading{margin-bottom:8px}.selection-info{font-size:11px}.keyboard{display:none}.mode-card{padding:14px 12px;gap:10px}.mode-copy strong{font-size:23px}}
@media(max-height:740px){.shell{padding-top:9px}.site-header{height:34px;margin-bottom:6px}.lobby-title{padding-top:2px}.lobby-title h1{font-size:62px;margin:8px 0 5px}.lobby-title p{display:block;font-size:13px;margin-top:12px}.lobby-badge{font-size:10px}.mascot-stage{height:175px;margin:0 7px}.jelly-mascot{top:24px;scale:.84}.mascot-shadow{top:144px}.stage-orbit.one{top:41px}.stage-orbit.two{top:18px}.stage-orbit.three{top:102px}.stage-spark.one{top:124px}.stage-spark.two{top:5px}.mascot-message{font-size:11px;padding:5px 12px}.mode-list{margin-top:16px;gap:15px}.mode-card{min-height:87px;padding:11px 13px}.mode-copy strong{font-size:23px}.mode-copy small,.mode-copy>span{font-size:10px}.mode-icon{width:40px;height:42px;font-size:30px}.lobby-tools{margin-top:20px;gap:18px}.lobby-tools>span{padding-left:18px}.game-heading{margin-bottom:9px}.stats{padding:7px 10px}.stats strong{font-size:27px}.timer-track{margin:11px 0 7px;height:7px}.board-toolbar{margin-bottom:9px}.board-toolbar>span:nth-child(2){font-size:10px}#hint{padding:6px 9px}.selection-info{min-height:40px;margin:10px 0 0}.tools button{padding:8px}html[lang=en] .lobby-title h1{font-size:52px}html[lang=ja] .lobby-title h1{font-size:49px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}#pop-feedback.pop{opacity:0}}
#particles{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.pop-flash{position:absolute;inset:0;border-radius:20px;box-shadow:inset 0 0 50px #5decd5;background:#7cf3dc24;animation:board-glow .42s ease-out both}.pop-wave{position:absolute;width:44px;height:44px;border:4px solid #5decd5;border-radius:50%;box-shadow:0 0 16px #46ddc4,inset 0 0 8px #fff;animation:burst-wave .5s ease-out both}.pop-star{position:absolute;font-style:normal;font-size:32px;line-height:1;color:#fff;text-shadow:0 0 8px var(--burst-color,#44caa8);animation:success-star .46s ease-out both}.burst-ring{position:absolute;width:24px;height:24px;border:3px solid var(--burst-color,#58c3ba);border-radius:50%;box-shadow:0 0 8px var(--burst-color,#58c3ba);animation:burst-ring .38s ease-out both}.burst-drop{position:absolute;width:8px;height:10px;border-radius:50% 50% 50% 18%;background:var(--particle,#4ccbb0);border:1px solid #fff9;box-shadow:0 2px 4px #00000015;animation:burst-drop .48s cubic-bezier(.14,.6,.26,1) both}.burst-drop.spark{width:11px;height:11px;border-radius:0;clip-path:polygon(50% 0,63% 36%,100% 50%,63% 63%,50% 100%,36% 63%,0 50%,36% 36%);background:var(--particle,#ffe86e)}.invalid-frame{position:absolute;inset:0;border:3px solid #ff7b72;border-radius:20px;box-shadow:inset 0 0 24px #ff7b7233;animation:reject-fade .45s ease-out both}@keyframes board-glow{0%{opacity:0}25%{opacity:1}100%{opacity:0}}@keyframes burst-wave{0%{transform:translate(-50%,-50%) scale(.2);opacity:1}100%{transform:translate(-50%,-50%) scale(3.6);opacity:0}}@keyframes success-star{0%{transform:translate(-50%,-50%) scale(.2) rotate(-40deg);opacity:0}30%{opacity:1;transform:translate(-50%,-50%) scale(1.25) rotate(12deg)}100%{transform:translate(-50%,-75%) scale(.35) rotate(80deg);opacity:0}}@keyframes burst-ring{0%{transform:translate(-50%,-50%) scale(.35);opacity:.95}100%{transform:translate(-50%,-50%) scale(2.6);opacity:0}}@keyframes burst-drop{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}15%{opacity:1}80%{opacity:.95}100%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--spin)) scale(.15);opacity:0}}@keyframes reject-fade{0%,40%{opacity:1}100%{opacity:0}}#board.miss{animation:miss .22s ease-out}@keyframes miss{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.score-bump{animation:score-bump .35s cubic-bezier(.2,1.2,.4,1)}@keyframes score-bump{0%{transform:scale(1)}40%{transform:scale(1.24);color:#0f9888;text-shadow:0 0 10px #35dfc660}100%{transform:scale(1)}}.cell.selected{transform:scale(.95);transition:transform .12s cubic-bezier(.2,1.2,.4,1)}.cell.selected.valid{transform:scale(1.06)!important;box-shadow:inset 0 0 0 2.5px #15b79d,0 0 14px #2de0bf70!important;--jelly-top:#bffff0!important;--jelly-bottom:#54e2bd!important;--jelly-edge:#13a990!important;color:#065647!important;z-index:2}.sum-pill.valid{background:linear-gradient(135deg,#ebfffa,#d0f9ee);border-color:#52dcbf;box-shadow:0 3px 0 #31a890,0 0 12px #32e0c040}.sum-pill.valid b{color:#0c8c7c}.sound-button{font-family:'Segoe UI',sans-serif;font-size:21px;color:#6e92a4}.sound-button[aria-pressed=true]{color:#0a8a89;background:#e4fff7}.site-header nav{gap:7px}@media(prefers-reduced-motion:reduce){#particles,.pop-flash,.pop-wave,.pop-star,.burst-ring,.burst-drop,.invalid-frame{display:none!important}#pop-feedback.pop{opacity:0!important}.score-bump{animation:none!important}}
#board.dragging .cell,#board.dragging .cell::before{transition:none!important}.lobby-title h1{font-family:Jua,'Malgun Gothic',sans-serif;font-weight:900}.mode-copy strong{font-weight:800}.stats strong,.cell{font-weight:700}.game-heading h2{font-weight:700}html[lang=ja] .lobby-title h1{-webkit-text-stroke:1px #f3ffff}html[lang=ja] .mode-copy strong{font-size:21px}
.cell{line-height:1;min-width:0;min-height:0}@media(max-width:360px){.board-toolbar>span:nth-child(2){display:none}.game-heading{gap:8px}.game-heading h2{font-size:19px}.site-header nav{gap:5px}}
@media(min-width:768px){.shell{max-width:780px}.site-header{max-width:760px;margin-left:auto;margin-right:auto}.lobby{max-width:760px;margin:0 auto}.mascot-stage{height:236px;max-width:440px;margin:0 auto}.mode-list{grid-template-columns:1fr 1fr;gap:20px;max-width:740px;margin:26px auto 0}.mode-card{padding:18px 22px;gap:16px;min-height:108px}.mode-copy strong{font-size:26px;white-space:nowrap}.mode-copy small{font-size:12px;white-space:nowrap}.lobby-tools{margin-top:32px;gap:30px}.guide-cards{grid-template-columns:1fr 1fr;gap:14px}.ad-slot{max-width:760px;margin-left:auto;margin-right:auto}.game-guide{max-width:760px;margin-left:auto;margin-right:auto;padding:26px 28px;scroll-margin-top:36px}}
@media(min-width:820px){body:not([data-state=ready]) .shell{max-width:680px;padding:14px 16px 28px;margin:0 auto;display:flex;flex-direction:column;align-items:center}body:not([data-state=ready]) .game{display:flex;flex-direction:column;align-items:center;width:100%;max-width:540px;margin:0 auto;gap:0;min-height:auto;height:auto}.game-heading{width:100%;max-width:520px;margin:0 0 6px}.stats{width:100%;max-width:520px;margin:0 0 4px;padding:8px 18px 6px;box-sizing:border-box}.timer-track{width:100%;max-width:520px;margin:0 0 8px;height:6px}.board-toolbar{width:100%;max-width:520px;margin:0 0 8px;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box}.board-wrap{margin:0 auto;--board-h:min(76svh,800px);--board-max-h:min(76svh,800px);border-radius:24px;border:4px solid #f6ffff;box-shadow:inset 0 3px 7px #478e9b20,0 8px 0 #93becd,0 18px 30px #417f9625}#board{height:var(--board-h);max-height:var(--board-max-h);padding:8px;gap:5px}.cell{font:700 clamp(18px,calc(var(--board-max-h)*0.048),28px) Jua,'Segoe UI',sans-serif}.selection-info{width:100%;max-width:520px;margin:8px auto 0;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box}.tools{width:100%;max-width:520px;margin:8px auto 0;display:flex;gap:12px;box-sizing:border-box}.tools button{flex:1;padding:10px;font-size:13px;cursor:pointer}.keyboard{width:100%;max-width:520px;margin:8px auto 0;display:block!important;text-align:center;font-size:11px;color:#507b8c;background:#ffffff70;border:1.5px solid #ffffffa0;border-radius:12px;padding:7px 10px;box-sizing:border-box}body:not([data-state=ready]) .ad-slot{max-width:760px;margin:32px auto 0}body:not([data-state=ready]) .game-guide{max-width:760px;margin:24px auto 0;padding:26px 28px;border-radius:26px;scroll-margin-top:36px}}
@media(max-width:480px){:root{--board-h:calc(100svh - 195px);--board-max-h:calc(100svh - 195px);--board-gap:3px;--board-pad:5px}.shell{padding:8px 10px 14px}.lobby{padding:0 6px}.site-header{margin-bottom:8px;height:34px}.keyboard{display:none}.mode-card{padding:14px 12px;gap:10px;min-height:85px}.mode-copy strong{font-size:22px}.mode-icon{width:38px;height:40px;font-size:26px}}
@media(max-height:740px){:root{--board-h:calc(100svh - 185px);--board-max-h:calc(100svh - 185px);--board-gap:3px;--board-pad:5px}.keyboard{display:none}}
@media(max-height:640px){:root{--board-h:calc(100svh - 160px);--board-max-h:calc(100svh - 160px);--board-gap:2px;--board-pad:4px}.keyboard{display:none}.shell{padding-top:4px;padding-bottom:4px}.game-heading{margin-bottom:3px}.stats{padding:4px 8px 2px}.stats strong{font-size:20px}.timer-track{margin:4px 0 3px;height:4px}.board-toolbar{margin-bottom:3px}.selection-info{min-height:28px;margin:2px 0 1px}.tools button{padding:5px}}
