*{box-sizing:border-box;margin:0;padding:0}:root{--purple:#4A1A63;--purple-soft:#6B3A85;--amber:#FFC42E;--orange:#FF7A2F;--orange-dark:#D95B17;--teal:#2FAFAF;--cream:#FFF7EA;--paper:#FFFCF5;--ink:#331445;--muted:#715E78;--white:#fff;--line:#E4CFB2;--green:#358A58;--skin:#F2B782;--blush:#E67F82;--font:ui-rounded,"SF Pro Rounded",Nunito,Quicksand,"Hiragino Maru Gothic ProN","Trebuchet MS",system-ui,sans-serif}html,body{min-height:100%;font-family:var(--font);color:var(--ink);background:var(--cream)}body{min-height:100vh;min-height:100dvh;overflow:hidden;background-image:radial-gradient(circle at 10px 10px,rgba(47,175,175,.11) 2px,transparent 2px);background-size:28px 28px}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:4px solid var(--amber);outline-offset:3px}#app,.screen{min-height:100vh;min-height:100dvh}.screen{display:none}.screen.active{display:flex}.hidden{display:none!important}.menu-screen{flex-direction:column;align-items:center;overflow-y:auto;padding:clamp(14px,4vh,32px) 16px}.brand-mark{width:clamp(82px,22vw,118px);height:auto}h1{margin-top:6px;font-size:clamp(30px,8vw,46px);text-align:center}.tagline{width:min(470px,94vw);margin:10px 0 24px;color:var(--muted);font-size:clamp(16px,4vw,20px);line-height:1.5;text-align:center}.menu-buttons{display:grid;gap:14px;width:min(340px,92vw)}.big-btn{min-height:56px;border:0;border-radius:8px;padding:10px 18px;color:var(--white);background:var(--orange);box-shadow:0 5px 0 var(--orange-dark);font-size:18px;font-weight:800;cursor:pointer}.big-btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--orange-dark)}.big-btn.ghost{color:var(--purple);background:var(--white);box-shadow:0 5px 0 var(--line)}.reset-btn{background:var(--purple-soft);box-shadow:0 5px 0 var(--purple)}.portal-link{display:inline-flex;align-items:center;min-height:44px;margin-top:24px;padding:10px 20px;border-radius:999px;color:var(--purple);background:var(--white);box-shadow:0 3px 0 var(--line);font-weight:800;text-decoration:none}.build{margin-top:13px;color:var(--muted);font-size:12px}.menu-header{display:flex;align-items:center;gap:14px;width:min(680px,100%);margin-bottom:22px}.menu-header h2{font-size:clamp(23px,6vw,32px)}.subtle{margin-top:3px;color:var(--muted)}.icon-btn{display:grid;flex:0 0 48px;place-items:center;width:48px;height:48px;border:2px solid var(--line);border-radius:8px;color:var(--purple);background:var(--white);font-size:22px;cursor:pointer}.stage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(680px,100%)}.stage-card{display:grid;grid-template-columns:58px 1fr 32px;align-items:center;min-height:92px;border:2px solid var(--line);border-radius:8px;padding:10px;color:var(--ink);background:var(--paper);box-shadow:0 4px 0 var(--line);text-align:left;cursor:pointer}.stage-card:not(:disabled):active{transform:translateY(2px);box-shadow:0 2px 0 var(--line)}.stage-card:disabled{opacity:.52}.stage-icon{font-size:34px;text-align:center}.stage-copy{display:grid;gap:4px}.stage-copy strong{font-size:17px}.stage-copy span{color:var(--muted);font-size:13px;line-height:1.25}.stage-state{font-size:21px;text-align:center}#screen-game{flex-direction:column;overflow-y:auto}.game-header{display:flex;align-items:center;gap:9px;min-height:68px;padding:9px 12px;border-bottom:2px solid var(--line);background:var(--paper)}.round-meta{display:grid;flex:1;gap:2px;min-width:0}.round-meta strong{overflow:hidden;font-size:clamp(15px,4vw,19px);text-overflow:ellipsis;white-space:nowrap}.round-meta span{color:var(--muted);font-size:13px}.play-area{display:flex;flex:1;flex-direction:column;align-items:center;width:min(760px,100%);margin:auto;padding:clamp(9px,2vh,18px) 10px}.face-scene{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:16px;width:min(650px,100%);border:3px solid var(--purple);border-radius:8px;padding:12px;background:var(--paper);box-shadow:0 5px 0 rgba(74,26,99,.2)}.face-wrap{width:100%;max-width:180px}.feeling-face{display:block;width:100%;height:auto}.head{fill:var(--skin);stroke:var(--purple);stroke-width:6}.features{fill:none;stroke:var(--ink);stroke-width:7;stroke-linecap:round;stroke-linejoin:round}.features ellipse,.features circle:not(.pupil){fill:var(--paper);stroke:var(--ink)}.features .pupil{fill:var(--ink);stroke:none}.tear,.sweat{fill:#54AEDD;stroke:#2875A3;stroke-width:3}.blush{fill:var(--blush);opacity:.55}.chin{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round}.situation{font-size:clamp(17px,4vw,21px);font-weight:800;line-height:1.4}.question{width:min(650px,100%);margin:12px 0 8px;font-size:clamp(18px,5vw,24px);font-weight:900;text-align:center}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:min(650px,100%)}.choice-btn{min-height:56px;border:3px solid var(--teal);border-radius:8px;padding:8px;color:var(--ink);background:var(--white);box-shadow:0 4px 0 #A8DADA;font-size:clamp(15px,3.8vw,18px);font-weight:900;line-height:1.2;cursor:pointer}.help-choices .choice-btn{min-height:72px;font-size:clamp(13px,3.2vw,16px)}.choice-btn:not(:disabled):active{transform:translateY(2px);box-shadow:0 2px 0 #A8DADA}.choice-btn:disabled{opacity:.55}.choice-btn.chosen{border-color:var(--green);background:#EAF8EF;box-shadow:0 4px 0 #A8D4B8;opacity:1}.choice-btn.try{animation:wobble .35s ease}.answer-area{display:grid;justify-items:center;gap:9px;width:min(650px,100%);min-height:88px;margin-top:9px}.feedback{min-height:38px;color:var(--purple);font-size:clamp(15px,4vw,18px);font-weight:800;line-height:1.35;text-align:center}.answer-area .big-btn{width:min(280px,100%)}.overlay{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:16px;background:rgba(40,14,52,.72)}.dialog-card{width:min(430px,100%);max-height:90vh;overflow-y:auto;border:3px solid var(--amber);border-radius:8px;padding:24px;color:var(--ink);background:var(--paper);box-shadow:0 10px 0 rgba(0,0,0,.18);text-align:center}.dialog-card h2{font-size:29px}.dialog-card p{margin:12px 0 20px;color:var(--muted);font-size:17px;line-height:1.45}.celebration{font-size:52px}.card-buttons{display:grid;gap:13px}.setting-row{display:flex;align-items:center;gap:12px;min-height:54px;margin:10px 0;padding:8px;border-bottom:2px solid var(--line);font-size:18px;font-weight:800;text-align:left}.setting-row input{width:26px;height:26px;accent-color:var(--teal)}@keyframes wobble{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}}@media(max-width:520px){.stage-grid{grid-template-columns:1fr}.stage-card{min-height:80px}.game-header{gap:6px;padding-inline:8px}.game-header .icon-btn{width:44px;height:44px;flex-basis:44px}.play-area{padding-inline:8px}.face-scene{grid-template-columns:116px 1fr;gap:9px;padding:8px}.face-wrap{max-width:116px}.situation{font-size:15px}.question{margin-block:9px 6px}.choices{gap:6px}.choice-btn{padding:6px 4px}.help-choices .choice-btn{min-height:78px}.answer-area{min-height:80px}}@media(max-height:570px) and (orientation:landscape){.play-area{padding-block:5px}.face-scene{grid-template-columns:105px 1fr;padding:5px}.face-wrap{max-width:105px}.question{margin:5px 0}.choice-btn{min-height:44px}.help-choices .choice-btn{min-height:56px}.answer-area{min-height:54px;margin-top:4px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
