@font-face{font-family:SlimeLetters;src:url('./fonts/andika-700.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--fs-ink:#18374f;--fs-green:#315c37}*{box-sizing:border-box}body{margin:0;color:var(--fs-ink);background:#d3e9bf;font-family:'Yu Gothic',Meiryo,sans-serif}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #15374f;outline-offset:4px}[hidden]{display:none!important}button,a{-webkit-tap-highlight-color:transparent}.fs-app{min-height:calc(100svh - var(--dm-common-header-height,58px));background:#dcefc4 url('./images/01-title-background.webp') center/cover no-repeat;position:relative;isolation:isolate}.fs-app[data-screen=play]{background-image:url('./images/02-game-background.webp')}.fs-title{min-height:calc(100svh - var(--dm-common-header-height,58px));position:relative;display:grid;place-items:center;padding:18px 12px 20px;overflow:hidden}.fs-title-content{z-index:1;text-align:center;width:min(800px,75%)}.fs-title h1{margin:0 auto;line-height:0;width:100%}.fs-logo{width:100%;height:auto}.fs-tagline{width:fit-content;max-width:100%;margin:2px auto 28px;padding:10px 30px;background:#fff7dfef;border:2px solid #d6bd86;border-radius:99px;font-size:clamp(17px,2.3vw,26px);font-weight:800;color:#4c411f;box-shadow:0 3px 2px #425d2b20}.phone-break{display:none}.fs-title-actions{display:grid;justify-items:center;gap:12px}.fs-image-button{display:grid;place-items:center;position:relative;isolation:isolate;border:0;background:none;width:min(380px,100%);min-height:64px;aspect-ratio:4.05;padding:6px 15%;font-size:clamp(25px,3.4vw,38px);font-weight:900;white-space:nowrap;user-select:none}.fs-image-button::before{content:'';position:absolute;inset:0;z-index:-1;background:center/114% auto no-repeat}.fs-green{color:#fffef4;text-shadow:0 2px 3px #235324}.fs-green::before{background-image:url('./images/10-button-green.webp')}.fs-cream{width:min(280px,85%);font-size:clamp(21px,2.4vw,28px);color:#3d5a30;aspect-ratio:4.2;min-height:54px}.fs-cream::before{background-image:url('./images/11-button-cream.webp');background-size:123% auto}.fs-image-button:hover{filter:brightness(1.05)}.fs-image-button:active{transform:translateY(2px)}.fs-image-button:disabled{filter:saturate(.6);font-size:18px}.fs-best{position:relative;isolation:isolate;display:grid;justify-content:center;align-content:center;gap:0;width:240px;max-width:100%;min-height:106px;margin:22px auto 6px;color:#584021}.fs-best::before{content:'';position:absolute;inset:0;z-index:-1;background:url('./images/13-panel-wood.webp') center/123% auto no-repeat}.fs-best>span{font-size:14px;font-weight:800}.fs-best strong{font:700 30px/1.4 SlimeLetters,sans-serif}.fs-title-note{font-size:12px;line-height:1.7;font-weight:700;margin:9px 0 0;text-shadow:0 1px 2px #fff,0 0 4px #fff}.fs-decor{position:absolute;inset:0;pointer-events:none}.fs-mascot{position:relative;aspect-ratio:1;color:var(--fs-ink);font-family:SlimeLetters,sans-serif;font-weight:700}.fs-mascot img{display:block;width:100%;height:auto}.fs-mascot span{position:absolute;left:50%;top:59%;transform:translate(-50%,-50%);font-size:clamp(50px,7.4vw,110px);line-height:1}.fs-decor>.fs-mascot{position:absolute;width:27%;max-width:400px}.mascot-a{left:-1%;top:31%;transform:rotate(-7deg)}.mascot-small{left:12%;bottom:2%;transform:rotate(6deg)}.mascot-g{right:0;top:28%;transform:rotate(5deg)}.mascot-small-g{right:9%;bottom:2%;transform:rotate(-6deg)}.fs-small{min-height:44px;border:2px solid #9aaf78;background:#fffbed;border-radius:15px;padding:7px 15px;font-weight:800;font-size:13px;color:#304d35}.fs-small:hover{background:#f2f7dd}
.fs-play{height:calc(100svh - var(--dm-common-header-height,58px));min-height:280px;max-width:1400px;margin:auto;display:flex;flex-direction:column;padding:5px 30px 8px;overflow:hidden}.fs-hud{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:22px;max-width:1120px;width:100%;margin:0 auto;flex:none}.fs-hud-logo{width:100%;height:auto;max-height:96px;object-fit:contain}.fs-stat{display:flex;align-items:center;justify-content:center;gap:12px;position:relative;isolation:isolate;min-height:68px;color:#284631}.fs-stat::before{content:'';position:absolute;inset:0;z-index:-1;background:url('./images/12-panel-cream.webp') center/100% auto no-repeat}.fs-stat>span{font-size:clamp(14px,1.6vw,21px);font-weight:800}.fs-stat strong,.fs-stat output{font:700 clamp(24px,3vw,38px)/1.2 SlimeLetters,sans-serif;font-variant-numeric:tabular-nums}.fs-time{flex-direction:column;gap:0}.fs-time>span{font-size:13px}.fs-time output{font-size:30px}.fs-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1120px;width:100%;margin:0 auto 3px;flex:none}.fs-tools p{font-size:13px;font-weight:800;background:#fffbe6ec;border-radius:12px;padding:5px 12px;margin:0}.fs-tools button{flex:none}.fs-board-scroll{overflow-y:auto;overflow-x:hidden;min-height:0;flex:1;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#9aad75 #e7f0d6;scroll-padding:10px}.fs-board{position:relative;width:100%;outline-offset:-3px}.fs-slot{position:absolute;width:var(--side);height:calc(var(--side)*.78);overflow:hidden}
/* Andika has extra ascent: lift label line boxes by .18em so g/j/p/q/y tails fit even on 70px slimes.
   Use the same offset on the merge copies to keep letters steady when a pair meets. */
/* Whole images keep their original square canvas; the interactive silhouette excludes transparent corners. */
.fs-slime{position:absolute;left:0;top:calc(var(--side)*-.18);width:var(--side);height:var(--side);padding:0;border:0;background:none;line-height:1;clip-path:polygon(50% 18%,67% 21%,78% 28%,84% 38%,88% 48%,91% 53%,96% 58%,97% 65%,94% 69%,85% 72%,78% 78%,65% 81%,50% 82%,35% 81%,22% 78%,15% 72%,6% 69%,3% 65%,4% 58%,9% 53%,12% 48%,16% 38%,22% 28%,33% 21%);touch-action:pan-y;user-select:none;-webkit-user-select:none;font-family:SlimeLetters,sans-serif;font-size:max(30px,calc(var(--side)*.34));font-weight:700;color:#17384f;transition:filter .12s;cursor:pointer}.fs-slime img{width:100%;height:100%;display:block;pointer-events:none}.fs-letter{position:absolute;left:50%;top:59%;transform:translate(-50%,calc(-50% - .18em));line-height:1;pointer-events:none;text-shadow:0 1px 0 #ffffff80}.fs-slime[data-depth="0"]{z-index:2}.fs-slime[data-depth="1"]{top:calc(var(--side)*-.07);z-index:1}.fs-slime:disabled{cursor:default}.fs-slime.is-covered{pointer-events:none}.fs-slime.is-covered .fs-letter{visibility:hidden}.fs-slime.is-selected{filter:drop-shadow(0 0 2px #fff) brightness(1.04)}.fs-slime.is-selected .fs-letter::before,.fs-slime:focus-visible .fs-letter::before{content:'';position:absolute;inset:-.12em -.24em;border:3px solid #143d62;border-radius:40%;box-shadow:0 0 0 2px #fff}.fs-slime.is-selected .fs-letter::after{content:'✓';font:900 12px/1 sans-serif;background:#fff;color:#163c57;border:1px solid #163c57;border-radius:50%;padding:2px;position:absolute;right:-.85em;top:-.7em}.fs-slime:focus-visible{outline:none}.fs-slime.is-gone{visibility:hidden;pointer-events:none}.fs-slime.is-wrong{animation:fs-shake 210ms ease-in-out}.fs-learning{flex:none;display:flex;align-items:center;gap:18px;justify-content:center;margin:6px auto 0;width:min(720px,100%);min-height:78px;padding:3px 16px;background:#fffbeeee;border:2px solid #d9c68f;border-radius:24px;box-shadow:0 3px 8px #3e532b24}.fs-remaining{font-size:14px;white-space:nowrap}.fs-remaining strong{font:700 26px SlimeLetters,sans-serif}.fs-pair-example{text-align:center}.fs-pair-example>strong{display:block;font:700 36px/1.3 SlimeLetters,sans-serif}.fs-pair-example>strong span{font:500 25px sans-serif;color:#5c7641;margin:0 .3em}.fs-pair-example p{font-size:12px;line-height:1.4;margin:0 0 4px;font-weight:800}.fs-pair-example.is-new{animation:fs-pair .95s ease-out}
.fs-result{min-height:calc(100svh - var(--dm-common-header-height,58px));display:grid;place-items:center;padding:20px 12px}.fs-result-card{width:min(520px,100%);text-align:center;background:#fffbeeea;border:3px solid #d6bd82;box-shadow:0 8px 30px #2c522539;border-radius:36px;padding:10px 25px 24px}.fs-result-friends{display:flex;justify-content:center;height:110px;margin:-10px 0 0}.fs-result-friends .fs-mascot{width:150px;flex:none;align-self:flex-start;margin-top:-12px}.fs-result-friends .fs-mascot span{font-size:47px}.fs-result h2{font-size:clamp(24px,4vw,34px);margin:3px 0 8px;color:#355a39}.fs-result p{font-size:13px;margin:5px 0}.fs-result-time{display:grid;gap:3px;margin:18px 0 8px}.fs-result-time span{font-size:14px;font-weight:700}.fs-result-time strong{font:700 46px/1.2 SlimeLetters,sans-serif}.fs-result .fs-best-message{font-size:18px;font-weight:800;color:#8b530e;min-height:28px}.fs-result .fs-best{margin:8px auto 16px}.fs-result .fs-image-button{margin:10px auto 0}.fs-storage-note{margin:0;background:#fff3d4;text-align:center;font-size:13px}.fs-storage-note:empty{display:none}dialog{color:var(--fs-ink);background:#fffdf0;border:3px solid #b2c694;border-radius:24px;width:calc(100% - 24px);max-width:600px;max-height:90dvh;padding:22px;box-shadow:0 15px 50px #19332950}dialog::backdrop{background:#17382377}dialog h2{margin-top:0;color:#355a39}dialog li,dialog p{font-size:15px;line-height:1.8}dialog ol{padding-left:23px}.fs-alphabet-list{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.fs-alphabet-list span{font:700 30px/1.4 SlimeLetters,sans-serif;text-align:center;background:#eaf3db;border-radius:12px;padding:4px}.fs-help-note,dialog details{font-size:12px!important}dialog form{text-align:center;margin-top:20px}.fs-dialog-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.fs-app .dm-completion-status:not([hidden]){position:fixed;bottom:10px;inset-inline:10px;z-index:50;max-width:560px;margin:auto;padding:12px;background:#fff8da;border:2px solid #b48127;border-radius:16px;font-size:14px}.dm-completion-status p{margin:0 0 6px}.dm-completion-status button{min-height:44px;border-radius:12px;background:#fff;border:2px solid #7c9164;padding:6px 12px}
@keyframes fs-shake{30%{transform:translateX(-3px)}70%{transform:translateX(3px)}}@keyframes fs-pair{20%{background:#e9f7be}to{background:transparent}}
@media(min-width:701px) and (max-height:800px){.fs-title-content{width:min(680px,70%)}.fs-title h1{max-width:620px}.fs-tagline{margin-bottom:18px;font-size:21px}.fs-title .fs-green{width:320px;min-height:70px;font-size:31px}.fs-title .fs-cream{width:255px;font-size:24px}.fs-title .fs-best{margin-top:16px;min-height:91px;width:210px}.fs-title-note{font-size:11px}.fs-hud-logo{max-height:74px}.fs-stat{min-height:60px}}
@media(max-width:700px){.fs-title{padding:30px 14px 20px}.fs-title-content{width:100%;max-width:520px}.fs-title h1{margin:0 -5%;width:110%}.fs-tagline{font-size:17px;line-height:1.7;margin:2px auto 24px;padding:8px 22px}.fs-decor>.fs-mascot{width:38%;opacity:.9}.mascot-a{left:-17%;top:32%}.mascot-small{left:-14%;bottom:5%}.mascot-g{right:-17%;top:32%}.mascot-small-g{right:-14%;bottom:5%}.fs-decor .fs-mascot span{font-size:46px}.fs-title .fs-green{width:82%;max-width:330px}.fs-title .fs-cream{width:66%;max-width:260px}.fs-title .fs-best{width:220px}.fs-play{padding:5px 5px 6px}.fs-hud{grid-template-columns:1fr 1.1fr;gap:10px}.fs-hud-logo{display:none}.fs-stat{min-height:55px;gap:10px;background:#fff8dfeb;border:2px solid #d4c18f;border-radius:19px}.fs-stat::before{display:none}.fs-stat strong{font-size:26px}.fs-stat>span{font-size:14px}.fs-time{gap:0}.fs-time>span{font-size:11px}.fs-time output{font-size:25px}.fs-tools{gap:6px;margin:5px 0 3px}.fs-tools p{font-size:11px;line-height:1.5;padding:3px 7px;flex:1}.fs-tools button{font-size:11px;padding:5px 10px}.fs-learning{padding:3px 8px;gap:8px;min-height:78px;border-radius:18px}.fs-remaining{font-size:11px}.fs-remaining strong{font-size:23px}.fs-pair-example>strong{font-size:31px}.fs-pair-example p{font-size:11px}.fs-result-card{padding-inline:14px}.fs-result-time strong{font-size:40px}.fs-alphabet-list{grid-template-columns:repeat(4,1fr)}}
@media(max-width:350px){.phone-break{display:block}.fs-title{padding-top:17px}.fs-tagline{padding:5px 17px;font-size:15px;margin-bottom:18px}.fs-title .fs-best{margin-top:13px;width:210px;min-height:96px}.fs-title-note{font-size:11px}.fs-stat strong{font-size:23px}.fs-time output{font-size:23px}.fs-result-friends{height:88px}.fs-result-friends .fs-mascot{width:124px}.fs-result-friends .fs-mascot span{font-size:39px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.fs-image-button{padding-inline:20px}.fs-slime{overflow:visible}.fs-board-scroll{overflow-anchor:none}
.fs-title .fs-best{padding-top:8px}
.fs-sound{width:94px;padding-inline:8px;white-space:nowrap}.fs-sound[aria-pressed=true]{background:#dcecc4;border-color:#4d773c}.fs-sound:disabled{opacity:.65;cursor:default}.fs-tools p{min-width:0}.fs-result .fs-sound{margin-top:14px}@media(max-width:700px){.fs-tools .fs-sound{width:78px;padding-inline:4px}.fs-tools p{font-size:11px}.fs-title-actions{gap:8px}.fs-title .fs-best{margin-top:12px}}
.fs-tools{justify-content:flex-end}.fs-tools p{margin-right:auto}
/* Non-interactive copies leave their slots, meet, squash into one Aa slime, then fade. */
.fs-merge-layer{position:fixed;z-index:25;overflow:hidden;pointer-events:none;contain:layout paint}
.fs-merge-sprite{position:absolute;left:0;top:0;width:var(--merge-size);height:var(--merge-size);transform-origin:50% 59%;will-change:transform,opacity;pointer-events:none;color:#17384f;font-family:SlimeLetters,sans-serif;font-weight:700}
.fs-merge-sprite img{display:block;width:100%;height:100%}
.fs-merge-sprite span{position:absolute;left:50%;top:59%;transform:translate(-50%,calc(-50% - .18em));font-size:max(30px,calc(var(--merge-size)*.34));line-height:1;text-shadow:0 1px 0 #fff8}
.fs-merge-joined{filter:drop-shadow(0 0 7px #fffbc0)}
.fs-merge-joined span{font-size:max(30px,calc(var(--merge-size)*.31));letter-spacing:.02em}
.fs-merge-sparkle{position:absolute;font:24px/1 sans-serif;color:#fff7ab;text-shadow:0 0 4px #7b8b36;pointer-events:none;will-change:transform,opacity}
@media(prefers-reduced-motion:reduce){.fs-merge-layer{display:none}}
