:root{--fw-ink:#23304f;--fw-sky:#dff5ff;--fw-green:#69b68c;--fw-gold:#f2c55c;--fw-coral:#ef795f;--fw-card:#fffdf7}
body{background:linear-gradient(#dff5ff 0 62%,#bde1a9 62%);color:var(--fw-ink)}
.stage{overflow:hidden;background:linear-gradient(180deg,#dff5ff 0%,#f7fcff 58%,#cbe8b7 58%,#a8d38c 100%)}
.fw-intro,.fw-play{display:flex;flex-direction:column}
.fw-intro{align-items:center;justify-content:center;padding:clamp(14px,3vw,30px)}
.fw-sky{position:absolute;inset:8% 5% auto;display:flex;justify-content:space-between;font-size:clamp(2rem,6vw,4rem);opacity:.85;pointer-events:none}
#scene-intro .fw-panel{position:relative;inset:auto;right:auto;bottom:auto;transform:none;z-index:1;width:min(680px,96%);max-height:calc(100dvh - 92px);overflow:auto;padding:clamp(20px,4vw,36px);border:3px solid rgba(255,255,255,.92);border-radius:26px;box-shadow:0 18px 60px rgba(47,87,97,.2);background:rgba(255,253,247,.96)}
.fw-town-mark{font-size:clamp(2rem,8vw,4.3rem);line-height:1.1;letter-spacing:.03em;filter:drop-shadow(0 5px 0 rgba(38,92,77,.11))}
.fw-panel h1{margin:.2em 0 .05em;color:var(--fw-ink);font-size:clamp(2rem,7vw,3.6rem)}
.fw-panel .tagline{font-size:clamp(1rem,3vw,1.3rem);margin:0 auto 16px;max-width:520px}
.fw-adult-box{display:grid;gap:8px;text-align:left;background:#f1f8eb;border:2px solid #c9e1b8;border-radius:18px;padding:14px 16px;margin:14px 0}
.fw-adult-box b{color:#376c50}.fw-adult-box label{font-weight:800;font-size:.95rem}
.fw-adult-box select{width:100%;min-height:52px;border:2px solid #94bea0;border-radius:13px;background:#fff;color:var(--fw-ink);padding:0 42px 0 13px;font:800 1rem system-ui}
.fw-adult-box p{font-size:.88rem;line-height:1.35;margin:0;color:#51635d}
.fw-note{margin:12px auto 0;max-width:580px;text-align:left;font-size:.82rem;color:#52606c}
.fw-note summary{min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.fw-note p{line-height:1.45;margin:4px 0}.fw-panel .micro{line-height:1.45}
.fw-play{padding:12px clamp(10px,3vw,24px) 18px;align-items:center;gap:10px}
.fw-prompt{width:min(860px,100%);display:flex;align-items:center;justify-content:center;gap:12px;min-height:64px;padding:10px 14px;border:2px solid rgba(45,93,106,.16);border-radius:20px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(46,91,105,.12);text-align:center}
.fw-prompt b{font-size:clamp(1rem,2.8vw,1.25rem);line-height:1.25}.fw-prompt .text-btn{flex:none;min-height:44px}
.fw-world{position:relative;width:min(760px,96%);height:clamp(130px,22vh,190px);border-radius:26px;border:3px solid rgba(255,255,255,.88);background:linear-gradient(#8dd6f3 0 56%,#7fc071 56%);box-shadow:0 10px 28px rgba(50,98,93,.2);overflow:hidden}
.fw-world:before{content:"🏠　🏫　🏪　🏡";position:absolute;left:5%;right:5%;bottom:12px;font-size:clamp(2rem,7vw,4.4rem);white-space:nowrap;text-align:center;filter:drop-shadow(0 4px 1px rgba(48,79,58,.16))}
.fw-world:after{content:"☀️　　　☁️";position:absolute;inset:8px 4% auto;font-size:clamp(1.4rem,4vw,2.5rem);opacity:.9}
.fw-character{position:absolute;z-index:2;left:9%;bottom:14px;font-size:clamp(3rem,9vw,5.8rem);transition:transform .35s ease}
.fw-problem{position:absolute;z-index:2;right:10%;bottom:18px;font-size:clamp(3rem,9vw,6rem);filter:drop-shadow(0 5px 2px rgba(41,66,54,.18));transition:transform .35s ease,opacity .35s ease}
.fw-world.responding .fw-character{animation:fw-hop .7s ease}.fw-world.responding .fw-problem{animation:fw-pop .75s ease}
.fw-effect{position:absolute;z-index:4;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:16px;text-align:center;background:rgba(255,253,247,.94);font-size:clamp(1.05rem,3.3vw,1.45rem);font-weight:900;line-height:1.3;opacity:0;pointer-events:none;transition:opacity .2s ease}
.fw-effect.show{opacity:1}.fw-effect .emoji{display:block;font-size:clamp(3rem,10vw,6rem);margin-bottom:5px}
.fw-choices{width:min(860px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,2vw,16px)}
.fw-choice{position:relative;min-height:clamp(120px,19vh,170px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:3px solid #bcd0dc;border-radius:24px;background:var(--fw-card);color:var(--fw-ink);box-shadow:0 8px 0 #9fb9c4,0 13px 25px rgba(47,75,91,.14);font:900 clamp(1.05rem,3vw,1.38rem) system-ui;cursor:pointer;touch-action:manipulation;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.fw-choice:hover,.fw-choice:focus-visible{transform:translateY(-3px);border-color:#5e9eb8;box-shadow:0 11px 0 #8db4c3,0 17px 28px rgba(47,75,91,.18)}
.fw-choice:active{transform:translateY(5px);box-shadow:0 3px 0 #8db4c3}.fw-choice .emoji{font-size:clamp(2.8rem,8vw,5rem);line-height:1.05}.fw-choice.retry{animation:fw-wiggle .45s ease;border-color:var(--fw-coral);background:#fff1ed}.fw-choice.correct{border-color:var(--fw-green);background:#edf9f1;box-shadow:0 6px 0 #75a88a}
.fw-town-rail{display:flex;align-items:center;justify-content:center;gap:8px;width:min(680px,100%);min-height:50px}
.fw-home{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.75);border:2px solid rgba(47,80,82,.18);font-size:1.55rem;filter:grayscale(.75);opacity:.65;transition:.25s ease}.fw-home.done{background:#fff3b9;border-color:#d4a93e;filter:none;opacity:1;transform:translateY(-2px)}.fw-home.now{outline:3px solid rgba(239,121,95,.35);filter:none;opacity:1}
@keyframes fw-hop{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-20px) rotate(-5deg)}}
@keyframes fw-pop{0%,100%{transform:scale(1)}50%{transform:scale(1.25) rotate(5deg)}}
@keyframes fw-wiggle{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
@media(max-width:560px){.fw-play{padding:8px 8px 12px;gap:7px}.fw-prompt{min-height:58px;display:grid;grid-template-columns:1fr auto;text-align:left;border-radius:16px}.fw-prompt b{font-size:.98rem}.fw-prompt .text-btn{font-size:0;width:48px;padding:0}.fw-prompt .text-btn:before{content:'🔊';font-size:1.2rem}.fw-world{height:128px;border-radius:20px}.fw-choices{gap:7px}.fw-choice{min-height:118px;border-radius:18px;font-size:.94rem;padding:8px 4px}.fw-choice .emoji{font-size:2.65rem}.fw-home{width:42px;height:42px;font-size:1.35rem}}
@media(max-height:690px) and (min-width:700px){.fw-world{height:120px}.fw-choice{min-height:108px}.fw-play{gap:6px}.fw-prompt{min-height:52px}}
@media(prefers-reduced-motion:reduce){.fw-world.responding .fw-character,.fw-world.responding .fw-problem,.fw-choice.retry{animation:none}.fw-choice,.fw-home,.fw-effect{transition:none}}
