:root{font-family:system-ui,-apple-system,sans-serif;color:#233d39;background:#f7f4eb;font-size:16px}*{box-sizing:border-box}body{margin:0}main{max-width:840px;margin:auto;padding:24px 20px}header{display:flex;align-items:center;gap:14px;margin-bottom:38px}.logo{background:#19665b;color:white;border-radius:18px;padding:12px;font-size:25px;font-weight:900;transform:rotate(-7deg)}header small{font-size:10px;letter-spacing:2px}h1{font-size:22px;margin:5px 0}header button{margin-left:auto}h2{font-size:27px;margin:10px 0}p{line-height:1.8}section{background:#fffdf8;border:1px solid #e3e4d8;border-radius:26px;padding:28px;margin-bottom:20px;box-shadow:0 8px 30px #233d3907}button,select{font:inherit;border:1px solid #c8d8cf;background:white;border-radius:13px;padding:13px 18px;color:#233d39;cursor:pointer;min-height:48px}button:hover{background:#eef5ef}button:focus-visible,select:focus-visible{outline:3px solid #eeae41;outline-offset:3px}button:disabled{opacity:.45;cursor:default}.primary{background:#19665b;color:white;border-color:#19665b;font-weight:700}.primary:hover{background:#104f46}.modes{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:24px 0}.mode{padding:22px;text-align:left;border:2px solid #e4e8de}.mode.selected{border-color:#19665b;background:#edf5ee}.mode strong{display:block;font-size:22px;margin-bottom:6px}.mode span{font-size:13px}label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}.hint{font-size:13px;color:#65786e}.topline{display:flex;justify-content:space-between;font-size:13px}.call{text-align:center;padding:30px 0 20px}.call small,#qa>small{letter-spacing:2px;color:#65786e;font-size:11px}#symbol{font-size:clamp(64px,16vw,112px);font-weight:800;min-height:145px;display:flex;align-items:center;justify-content:center;margin:14px auto;line-height:1.2;overflow-wrap:anywhere}#symbol.swatch{width:150px;border-radius:30px;border:1px solid #bcc3b7;box-shadow:inset 0 0 0 5px #ffffff50}#word{font-size:25px;font-weight:600;margin-bottom:18px}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions>*{flex:1}.bingoButtons{display:flex;gap:10px;margin:24px 0}.bingoButtons button{flex:1;background:#ffdf85;border-color:#e9c96e;font-weight:bold}details{padding:18px 0;border-top:1px solid #dce1d6}summary{cursor:pointer;font-size:14px;padding:8px 0}.chips{display:flex;flex-wrap:wrap;gap:8px;padding:16px 0}.chip{border-radius:10px;padding:10px 14px;font-size:16px}.chip.selected{outline:3px solid #19665b}.question{background:#edf5ee;border-radius:18px;padding:24px;margin:10px 0 20px;min-height:130px}#question{font-size:25px;font-weight:700}#answer{color:#557165;margin:12px 0 0}footer{text-align:center;font-size:12px;color:#849287;margin:25px}#setup>.primary{width:100%}[hidden]{display:none!important}@media(max-width:520px){main{padding:18px 12px}header{gap:10px;margin-bottom:22px}h1{font-size:18px}header small{font-size:8px}header button{padding:10px}section{padding:20px 16px}.mode{padding:16px}.mode strong{font-size:19px}.bingoButtons{flex-wrap:wrap}.bingoButtons button{min-width:90px}h2{font-size:23px}label{font-size:14px}select{max-width:65%}.actions button{min-width:125px}}

.celebration{text-align:center;font-weight:900;font-size:24px;color:#19665b;animation:pop .5s ease-out}@keyframes pop{from{transform:scale(.65);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.celebration{animation:none}}

.host-caption{background:#e7f3ec;border-radius:20px;padding:20px;margin:0 0 20px;border:2px solid #bfdacb}.host-caption strong{font-size:22px;line-height:1.5}.host-caption p{margin:8px 0 0;font-size:15px}
:root{background:#fff7e8}body{background:radial-gradient(circle at 7% 8%,#fbe3ad55 0 55px,transparent 56px),radial-gradient(circle at 95% 40%,#d8e9e355 0 95px,transparent 96px)}header .logo{background:#edaa60;color:#423e35;box-shadow:4px 5px 0 #ecdcc2}section{border:2px solid #eadfc9;box-shadow:0 7px 0 #eadfc955}button{border-radius:19px;font-weight:650;transition:transform .12s,background .12s}button:active{transform:translateY(3px) scale(.98)}.mode{min-height:130px;background:#fff9ed;border-color:#ecdfbf}.mode.selected{background:#e8f3e9;border-color:#45947a}.primary{box-shadow:0 4px 0 #124b42}.bingoButtons button{min-height:65px;font-size:20px;border-radius:22px;box-shadow:0 4px 0 #e1bc61}.mascot{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:15px}.mascot svg{width:115px;height:95px}.mascot span{background:#ffedc0;padding:14px 18px;border-radius:22px;font-weight:750;color:#62503a}.host-caption{background:#eaf4ed}.call{background:#fff;border-radius:22px;margin:16px 0;border:1px solid #eee8de}.chip{min-height:52px;min-width:58px}.question{border:2px solid #c9e1d1}@media(max-width:520px){.mascot svg{width:88px;height:74px}.mascot{gap:8px}.mascot span{font-size:14px;padding:12px}.host-caption strong{font-size:20px}}@media(prefers-reduced-motion:reduce){button{transition:none}}
.stage-label{font-size:20px;font-weight:800;background:#fff0bf;padding:14px;border-radius:16px}.host-caption{margin-top:14px}.host-caption strong{font-size:clamp(22px,3vw,30px)}.host-caption p{font-size:clamp(17px,2vw,22px);line-height:1.5}.host-caption button{font-size:13px;margin-top:12px;min-height:44px}#choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}#choices .chip{min-height:74px;font-size:23px;padding:9px 5px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px}.choice-swatch{display:block;width:42px;height:32px;border:1px solid #888;border-radius:8px}#symbol,#choices .chip{font-family:'Comic Sans MS','Chalkboard SE','Chalkboard',cursive,sans-serif}#options{background:#f3f0e8;border-radius:18px;padding:16px;margin-top:24px}#qa>button.primary{width:100%;min-height:66px;font-size:21px}button:disabled{opacity:.38}@media(min-width:850px) and (orientation:landscape){main{max-width:1120px}#game{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.topline,#game .host-caption{grid-column:1/-1}#game .call{grid-row:3/7}#game .bingoButtons{flex-direction:column}#symbol{font-size:120px}.host-caption strong{font-size:28px}}@media(max-width:520px){#choices .chip{font-size:21px;min-height:68px}.host-caption{padding:16px}.host-caption p{font-size:17px}.stage-label{font-size:17px}}
#practiceTarget{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;background:white;border:2px solid #eee4cf;border-radius:24px;padding:22px;margin:18px 0;min-height:160px}#practiceTarget strong{font-family:'Comic Sans MS','Chalkboard SE','Chalkboard',cursive,sans-serif;font-size:110px;line-height:1.2}#practiceTarget small{display:block;width:100%;text-align:center;font-size:20px}.practice-swatch{width:140px;height:120px;border-radius:22px;border:2px solid #aaa}.row-target{display:flex;align-items:center;justify-content:center;min-width:52px;min-height:65px;font-size:45px;border:1px solid #aaa;border-radius:12px;padding:8px}.adult-settings{background:#f3f0e8;padding:12px;border-radius:14px}.adult-settings summary{font-size:14px}#answer:empty{display:none}
.row-target{font-family:'Comic Sans MS','Chalkboard SE','Chalkboard',cursive,sans-serif}
/* Party theme: decoration stays outside the neutral learning targets. */
:root{color:#35315d;background:#f5edff}body{background:radial-gradient(circle at 12% 20%,#ffdf7777 0 90px,transparent 91px),radial-gradient(circle at 90% 5%,#93e6e988 0 130px,transparent 131px),radial-gradient(circle at 95% 80%,#ffb9dc77 0 100px,transparent 101px),#f5edff}main{position:relative}header{background:#fff9;border:2px solid white;border-radius:28px;padding:16px;margin-bottom:22px}header .logo{background:#ffcc49;box-shadow:4px 5px 0 #ee9e3d;border:3px solid white;font-size:32px}h1{color:#6550a1;font-weight:900}section{border:3px solid white;background:#fffefa;box-shadow:0 9px 0 #cbbce044,0 12px 35px #6e4ca31a;border-radius:34px}.mascot{position:relative;background:linear-gradient(120deg,#fff0bd,#ffe1ed,#e6edff);border-radius:28px;padding:18px;border:3px solid white;overflow:hidden}.mascot:before{content:'✦  ✨  ★';position:absolute;top:8px;left:15px;color:#d39814;font-size:24px;letter-spacing:14px}.mascot svg{width:155px;height:130px;filter:drop-shadow(0 6px 0 #be8e6033);animation:happy-float 3s ease-in-out infinite}.mascot span{background:#fffdf1;border:3px solid white;font-size:21px;box-shadow:0 4px 0 #e9b9cf55}.mode{position:relative;border-width:3px;border-radius:26px;box-shadow:0 5px 0 #ddd5e7;overflow:hidden}.mode strong{font-size:35px;letter-spacing:3px}.mode:nth-child(1){background:#fff0e4}.mode:nth-child(2){background:#e6f6ff}.mode:nth-child(3){background:#eee8ff}.mode:nth-child(4){background:#fff1bf}.mode.selected{border-color:#8867c5;background:#f0e8ff;box-shadow:0 5px 0 #b29ad4}.mode.selected:after{content:'★';position:absolute;right:16px;top:16px;color:#a07d15;font-size:25px}.primary{background:#8062bd;border-color:#8062bd;box-shadow:0 5px 0 #594088;border-radius:22px}.primary:hover{background:#7053ab}.bingoButtons button{background:linear-gradient(#ffdf72,#ffbf64);border:3px solid white;color:#764b37;box-shadow:0 6px 0 #d69c55;font-size:25px}.host-caption{background:#f0eaff;border:3px solid #ded0f3;border-radius:26px}.call{border:3px solid #e4d9f3;box-shadow:0 6px 0 #e6e0ed;background:white}.call small{font-weight:900;color:#8664ba}#symbol{color:#443260}#symbol.swatch{color:inherit}.question{background:#e9f6f3;border-color:#bdded5}button:not(:disabled):active{transform:translateY(4px) scale(.97)}.stage-label{background:#ffedb8;color:#735336}.celebration{background:#fff0b7;border-radius:25px;padding:20px;font-size:32px}footer{color:#806399;font-weight:700;letter-spacing:1px}@keyframes happy-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}@media(max-width:520px){header{padding:12px}.mascot{padding:12px}.mascot svg{width:110px;height:95px}.mascot span{font-size:16px}.mode strong{font-size:29px}.mascot:before{font-size:15px;letter-spacing:6px}}@media(prefers-reduced-motion:reduce){.mascot svg{animation:none}}
#conversationColors{display:flex;flex-wrap:wrap;gap:8px}#conversationColors p{width:100%;font-size:16px}#conversationColors button{min-height:60px;font-size:18px}
#drawMachine{position:relative;width:min(290px,85%);height:245px;margin:10px auto}#drawMachine svg{width:100%;height:100%;overflow:visible}.machine-frame{fill:#a49abe;stroke:#8e83a8;stroke-width:9;stroke-linejoin:round}.drum-cage{fill:#fff7dcbb;stroke:#aa85bf;stroke-width:4;transform-origin:150px 102px}.machine-handle{fill:#fac369;stroke:#9c729f;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;transform-origin:235px 102px}.machine-label{position:absolute;bottom:0;left:0;right:0;font-size:18px;letter-spacing:4px;font-weight:900;color:#8764ad}.spinning .drum-cage{animation:cage-turn .4s linear infinite}.spinning .machine-handle{animation:handle-turn .4s linear infinite}.draw-smoke{position:absolute;inset:15% 0 0;pointer-events:none;opacity:0}.draw-smoke i{position:absolute;left:25%;top:20%;width:100px;height:100px;border-radius:50%;background:#fff;box-shadow:0 0 20px #d8ceec}.draw-smoke i:nth-child(2){left:5%;top:10%}.draw-smoke i:nth-child(3){left:50%;top:5%}.draw-smoke i:nth-child(4){left:45%;top:45%}.draw-smoke i:nth-child(5){left:10%;top:45%}.puffing .draw-smoke{animation:smoke-pop .45s ease-out forwards}.puffing svg{opacity:.15}@keyframes cage-turn{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes handle-turn{to{transform:rotate(360deg)}}@keyframes smoke-pop{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(.9)}65%{opacity:1;transform:scale(1.15)}100%{opacity:0;transform:scale(1.5)}}@media(prefers-reduced-motion:reduce){.spinning .drum-cage,.spinning .machine-handle{animation:none}.puffing .draw-smoke{animation:none;opacity:1}}
/* Latest direction: a static drum ornament and a contained rolling candidate card. */
.spinning .drum-cage,.spinning .machine-handle{animation:none}#drawMachine svg{position:absolute;width:105px;height:90px;right:-16px;bottom:0;opacity:.35}#candidatePreview{position:absolute;inset:5px 25px 38px;display:flex;align-items:center;justify-content:center;border:5px solid #dfcdf1;background:white;border-radius:28px;font-family:'Comic Sans MS','Chalkboard SE','Chalkboard',cursive,sans-serif;font-size:95px;font-weight:900;color:#443260;box-shadow:0 7px 0 #d1c5df}.draw-smoke{z-index:2}.machine-label{font-size:13px;bottom:10px;left:-25px;right:auto}
.draw-smoke{inset:5px 25px 38px;border-radius:28px;overflow:hidden}.puffing .draw-smoke{animation:smoke-fade .45s ease-out forwards}.puffing .draw-smoke i{animation:round-puff .45s ease-out forwards}@keyframes smoke-fade{0%{opacity:0}20%,65%{opacity:1}100%{opacity:0}}@keyframes round-puff{0%{transform:scale(.25)}45%{transform:scale(1.1)}100%{transform:scale(1.65)}}@media(prefers-reduced-motion:reduce){.puffing .draw-smoke,.puffing .draw-smoke i{animation:none}.puffing .draw-smoke{opacity:1}}
#drawMachine.is-paused,#drawMachine.is-paused *{animation-play-state:paused!important}
/* Approved direction: apricot × mint; original artwork remains pending. */
:root{background:#f4f8e9;color:#694e3e}body{background:linear-gradient(#e0f2e9,#fbf4de)}header{background:#fff9e9;border-color:#f3d8b5}h1{color:#8b623e}section{background:#fffcf3;border-color:#f1d7b5;box-shadow:0 6px 0 #e4d6bc66}.primary{background:#de9e66;border-color:#cc8b54;color:#422d20;box-shadow:0 5px 0 #b37b4a}.primary:hover{background:#d9955c}.mode{background:#fff5dc!important;border-color:#ecd1a7;box-shadow:0 5px 0 #ddcaaa}.mode.selected{background:#dff2e7!important;border-color:#82b7a4;box-shadow:0 5px 0 #6e9c8b}.mode.selected:after{color:#b97c3c}.host-caption{position:relative;background:#fffdf1;border:3px solid #b5d5c6;border-radius:30px;padding:20px;box-shadow:0 5px 0 #bfd4c555}.host-caption:after{content:'';position:absolute;bottom:-15px;left:48%;width:22px;height:22px;background:#fffdf1;border-right:3px solid #b5d5c6;border-bottom:3px solid #b5d5c6;transform:rotate(45deg)}#familyHost{padding:14px 16px 0;margin-bottom:16px;position:relative;overflow:hidden}#captionEn{display:block;font-size:clamp(23px,5.4vw,31px);line-height:1.3;max-width:30ch;margin:auto;text-align:center;overflow-wrap:break-word}#captionJa{font-size:clamp(16px,3.7vw,20px);line-height:1.5;text-align:center;margin:12px auto;max-width:32em}#motherArtSlot{height:130px;margin-top:18px;display:flex;align-items:center;justify-content:center}#motherArt{max-width:100%;height:100%;object-fit:contain}#cubArtSlot{height:45px;display:flex;justify-content:center;align-items:end}#cubArt{width:100%;height:100%;object-fit:contain}#familyHost .host-caption button{font-size:12px;padding:8px 10px;min-height:40px;margin:5px 4px}#familyHost[data-stage="setup"] .host-caption button{display:none}.call{border-color:#ead6b6}.stage-label{background:#f6dfb4;color:#755039}.question{background:#e7f3e9;border-color:#afcebc}.bingoButtons button{background:#f1c18d;border-color:#fff8e9;color:#795036;box-shadow:0 5px 0 #c08f5d}#options{background:#e2eee5}#game .host-caption{grid-column:auto}@media(min-width:850px) and (orientation:landscape){#familyHost{max-width:900px;margin-left:auto;margin-right:auto}#motherArtSlot{height:150px}#captionEn{font-size:30px}}@media(max-width:520px){main{padding:12px 10px}header{margin-bottom:12px}#familyHost{padding:10px 10px 0}#motherArtSlot{height:105px}#cubArtSlot{height:35px}.host-caption{padding:16px 12px}#captionEn{max-width:25ch}#captionJa{font-size:16px}.actions button{min-height:56px}.stage-label{margin-top:0}}
.host-controls{display:flex;justify-content:center;gap:10px;position:relative;z-index:1;margin-top:15px}.host-controls button{font-size:14px;min-height:46px;background:#f4dfbb}.host-help{padding:5px 0;border:0}.host-help summary{font-size:12px;color:#7b7768}#captionHint{text-align:center;font-size:14px;line-height:1.5;margin:10px 0 0}#captionHint:empty{display:none}#familyHost[data-stage="setup"] .host-controls,#familyHost[data-stage="setup"] .host-help{display:none}
.scene-center{font-size:clamp(40px,12vw,82px);line-height:1.3;font-weight:900;color:#b27b4b;background:#e1f0e7;border:3px solid #bad7c8;border-radius:28px;text-align:center;padding:30px 14px;margin:20px 0}#replayScene,#endScene{text-align:center}#replayScene button,#endScene button{min-height:65px;font-size:20px}#familyHost[data-stage="end"] #captionHint{display:none}
