:root{color:#223a43;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#223a43;--muted:#667a7c;--accent:#186f70;--line:#d6dfd8;background:#f3f2ec;font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}*{box-sizing:border-box}body{min-width:280px;margin:0}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:not(:disabled){cursor:pointer}button:focus-visible,input:focus-visible{outline-offset:4px;outline:3px solid #173d4e}h1,h2,p{margin:0}h1:focus{outline:none}[hidden]{display:none!important}.app{width:min(100%,560px);min-height:100svh;padding:max(20px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:18px;margin:0 auto;display:flex}.screen-heading{flex:none;padding:2px 2px 0}.intro-setting{color:var(--accent);letter-spacing:.06em;margin-bottom:8px;font-size:13px;font-weight:700}h1{letter-spacing:.025em;font-size:29px;font-weight:800;line-height:1.35}.game-title{letter-spacing:-.03em;white-space:nowrap;font-size:clamp(27px,7.8vw,39px)}.provisional{letter-spacing:0;font-size:.52em}.scene-shell{background:#dce9e6;border:1px solid #d0ddd8;border-radius:24px;flex:none;height:clamp(200px,45svh,340px);position:relative;overflow:hidden;box-shadow:0 10px 28px #294d4310}#scene-host{width:100%;height:100%;position:relative;overflow:hidden}#scene-host canvas{width:100%;height:100%;display:block}.controls{flex-direction:column;gap:15px;display:flex}.intro-bottom{align-items:flex-start;gap:12px;display:flex}.count-badge{color:#365f5c;white-space:nowrap;border:1px solid #c6d5cb;border-radius:9px;flex:none;justify-content:center;align-items:center;min-height:30px;padding:5px 9px;font-size:12px;font-weight:700;display:inline-flex}.disclaimer{color:#5b6f70;font-size:11px;line-height:1.8}.button{border:2px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:53px;padding:11px 14px;font-size:16px;font-weight:700;line-height:1.4;transition:background-color .12s,transform .12s,border-color .12s;display:inline-flex}.button:not(:disabled):active{transform:translateY(1px)}.primary{color:#fff;background:var(--accent);box-shadow:0 4px #0d5356}.primary:not(:disabled):hover{background:#125e60}.primary:disabled{color:#697a78;box-shadow:none;cursor:default;background:#d8e1dc}.secondary{color:#315356;background:#fcfcf8;border-color:#c5d4cd}.secondary:not(:disabled):hover{background:#f3f9f4;border-color:#577f7b}.secondary.is-selected{background:#e1eeea;border-color:#254f50}.secondary:disabled{opacity:.65}.full-width{width:100%}.question-meta{justify-content:space-between;align-items:center;margin-bottom:9px;font-size:14px;font-weight:700;display:flex}.question-meta .total{color:var(--muted);font-weight:500}.score{color:#617878;font-size:11px;font-weight:500}.progress-track{background:#dbe3dc;border-radius:8px;height:4px;margin-bottom:13px;overflow:hidden}.progress-track span{border-radius:inherit;background:#77a79a;height:100%;display:block}.selection-line{justify-content:space-between;align-items:center;gap:8px;min-height:24px;display:flex}.operation{color:var(--muted);font-size:12px}.selection-status{white-space:nowrap;font-size:12px;font-weight:700}.actions{grid-template-columns:1fr 1.7fr;gap:12px;display:grid}.actions.one-action{grid-template-columns:1fr}.feedback{background:#fbfcf7;border:1px solid #c7d8cd;border-radius:16px;padding:15px}.feedback-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px;display:flex}.feedback h2{color:#176b5b;font-size:20px;line-height:1.25}.feedback-heading p{color:#687b77;font-size:11px}.is-incorrect{background:#fff2f3;border:2px solid #e64051;box-shadow:0 3px #bc183016}.is-incorrect h2{color:#cc1430;font-size:26px;font-weight:900}.is-incorrect .feedback-heading p{color:#b5132b;font-weight:700}.answer-line{color:#3f5959;margin-bottom:6px;font-size:12px}.explanation{font-size:13px;line-height:1.8}.player-setting{color:#65716b;margin-bottom:5px;font-size:11px;line-height:1.65}.game-answer-note{color:#7b8178;margin-top:8px;font-size:10px;line-height:1.55}.app[data-phase=feedback]{gap:13px}.app[data-phase=feedback] .scene-shell{height:clamp(185px,36svh,280px)}.app[data-phase=result]{padding-top:max(40px, env(safe-area-inset-top))}.app[data-phase=result] .controls{gap:20px}.result-card{text-align:center;background:#fafbf5;border:1px solid #d3ded3;border-radius:24px;margin-top:12px;padding:35px 16px 30px}.clear-label{color:#17695a;background:#e2eee0;border-radius:7px;margin-bottom:16px;padding:6px 14px;font-size:15px;font-weight:700;display:inline-block}.result-score{white-space:nowrap;justify-content:center;align-items:baseline;gap:6px;display:flex}.result-score span{font-size:16px;font-weight:700}.result-score strong{color:var(--accent);letter-spacing:-.04em;font-size:64px;font-weight:800;line-height:1.1}.result-note{color:#70817a;margin-top:20px;font-size:12px;line-height:1.8}.result-actions{flex-direction:column;gap:14px;display:flex}.share-message{color:#577270;min-height:0;font-size:12px;line-height:1.8}.share-message:empty{display:none}.share-url-label{margin-bottom:-12px;font-size:12px}.share-url{color:#23494e;background:#fff;border:1px solid #aebfb8;border-radius:8px;width:100%;padding:10px;font-size:16px}.webgl-message{justify-content:center;align-items:center;padding:30px;font-size:16px;line-height:1.8;display:flex;position:absolute;inset:0}.unavailable-note{color:#5b6f70;font-size:13px;line-height:1.8}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}noscript{text-align:center;padding:24px;display:block}@media (min-width:700px){body{background:radial-gradient(at top,#f9f8f1,#e9eee8)}.app{padding-top:32px;padding-bottom:32px}.screen-heading{padding-inline:4px}.scene-shell{height:340px}.app[data-phase=feedback] .scene-shell{height:280px}}@media (max-width:360px){.app{gap:13px;padding-left:12px;padding-right:12px}.intro-bottom{gap:9px}.disclaimer{font-size:10px}.intro-setting{font-size:12px}.button{min-height:49px}.feedback{padding:12px}.explanation{font-size:12px}.operation,.selection-status{font-size:11px}}@media (max-height:650px) and (max-width:699px){.app{padding-top:max(14px, env(safe-area-inset-top));padding-bottom:max(18px, env(safe-area-inset-bottom));gap:13px}.scene-shell{height:225px}.app[data-phase=feedback] .scene-shell{height:190px}.controls{gap:12px}.progress-track{margin-bottom:9px}}@media (max-height:580px) and (max-width:699px){.scene-shell{height:205px}.app[data-phase=feedback] .scene-shell{height:180px}.app[data-phase=feedback] .feedback{padding:10px 12px}.app[data-phase=feedback] .explanation{line-height:1.65}.app[data-phase=feedback] .game-answer-note{margin-top:5px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.place-layer{pointer-events:none;position:absolute;inset:0}.place-target{pointer-events:auto;color:var(--ink);background:0 0;border:0;border-radius:10px;justify-content:center;align-items:flex-end;min-width:44px;min-height:44px;padding:0;display:flex;position:absolute;transform:translate(-50%)}.place-target:disabled{opacity:1;cursor:default}.place-target:focus-visible{outline-offset:0;background:#ffffff24}.place-label{background:#fffffff0;border:1px solid #b5c9c2;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-width:39px;min-height:43px;padding:3px 4px;line-height:1.15;display:flex;box-shadow:0 2px 4px #28413914}.place-label b{font-size:17px;font-weight:800}.place-label>span{white-space:nowrap;margin-top:3px;font-size:9px}.place-target.is-occupied .place-label{color:#4c6469;background:#e1e7e5f0;border-style:dashed;border-color:#798c8c}.place-target.is-selected .place-label{color:#164f4d;background:#e3f6edf5;border:2px solid #185c5b}.place-target:not(:disabled):hover .place-label{border-color:#2c7169}@media (max-width:360px){.place-label{min-width:36px;min-height:40px;padding-inline:2px}.place-label b{font-size:16px}.place-label>span{font-size:8px}.app[data-phase=question] h1,.app[data-phase=feedback] h1{letter-spacing:0;font-size:23px}}.feedback h2{white-space:nowrap;align-items:center;gap:7px;display:flex}.feedback h2:before{content:"✓";color:#fff;background:#147d5a;border-radius:50%;flex:none;justify-content:center;align-items:center;width:25px;height:25px;font-size:18px;font-weight:900;display:inline-flex}.is-correct{background:#f4fcf5;border-color:#68b895}.is-correct h2{color:#08714e;font-size:24px;font-weight:900}.is-incorrect h2:before{content:"×";background:#cc1430;font-size:23px}.score.is-awarded{color:#08714e;font-weight:800;animation:.8s ease-out both score-reward}.success-effect{z-index:4;pointer-events:none;position:absolute;inset:0;overflow:hidden}.success-halo{background:radial-gradient(circle,#fff8bba6 5%,#c5f3c075 40%,#c5f3c000 70%);border-radius:50%;width:235px;height:235px;animation:1.15s ease-out both success-halo;position:absolute;top:36%;left:50%}.success-badge{z-index:1;color:#076b47;white-space:nowrap;background:#f9fff4f5;border:2px solid #fff;border-radius:18px;grid-template-columns:38px auto;align-items:center;column-gap:10px;padding:11px 17px 12px 12px;animation:1.35s cubic-bezier(.16,.75,.25,1) both success-pop;display:grid;position:absolute;top:24%;left:50%;transform:translate(-50%);box-shadow:0 7px 24px #154f4138,0 0 0 1px #7fbf9470}.success-badge strong{letter-spacing:.04em;font-size:26px;font-weight:900;line-height:1.2}.success-check{color:#fff;background:#0b9563;border-radius:50%;grid-row:span 2;justify-content:center;align-items:center;width:38px;height:38px;font-size:27px;line-height:1;display:flex;box-shadow:0 3px #056442}.success-point{color:#347143;margin-top:3px;font-size:15px;font-weight:800}.success-confetti{background:var(--confetti-color);opacity:0;width:7px;height:12px;animation:success-confetti var(--duration) ease-out var(--delay) both;border-radius:2px;position:absolute;top:39%;left:50%}.success-confetti:nth-child(3n){border-radius:50%;width:8px;height:8px}@keyframes success-pop{0%{opacity:0;transform:translate(-50%,14px)scale(.65)}18%{opacity:1;transform:translate(-50%,-3px)scale(1.08)}30%,72%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-17px)scale(.98)}}@keyframes success-halo{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}22%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.5)}}@keyframes success-confetti{0%{opacity:0;transform:translate(0,0)rotate(0)scale(.5)}12%{opacity:1}40%{opacity:1;transform:translate3d(var(--mx), var(--my), 0) rotate(120deg) scale(1)}to{opacity:0;transform:translate3d(var(--dx), var(--dy), 0) rotate(var(--spin)) scale(.75)}}@keyframes score-reward{0%,to{transform:scale(1)}30%{transform:scale(1.22)}}@media (prefers-reduced-motion:reduce){.success-confetti,.success-halo{display:none}.success-badge,.score.is-awarded{animation:none}}
