*{box-sizing:border-box}body{margin:0;background:#dcebd6;font-family:ui-rounded,'Trebuchet MS',sans-serif;color:#4e3d65}button,a,input,select{font:inherit}button{border:0;border-radius:22px;padding:13px 19px;background:#fffbf2;color:#604979;font-weight:bold;cursor:pointer;box-shadow:0 4px 20px #4c37531a}button:hover{background:#eee3f8}button:disabled{opacity:.55;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e8b85c;outline-offset:4px}[hidden]{display:none!important}#play,#canvas{position:absolute;inset:0;overflow:hidden}canvas{display:block;width:100%;height:100%}header{position:absolute;top:24px;left:30px;right:30px;display:flex;justify-content:space-between;gap:16px;align-items:center}.brand{font-size:27px;font-weight:900;text-decoration:none;color:#594272;text-shadow:0 1px #fff}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:6px}.toolbar{display:flex;gap:8px}.toolbar button{font-size:13px}#places{position:absolute;left:28px;top:112px;width:300px;background:#fffaf0f5;padding:23px;border-radius:26px;box-shadow:0 15px 60px #46315020;max-height:calc(100dvh - 250px);overflow:auto}.places-heading{display:flex;align-items:center;justify-content:space-between}.places-heading button{padding:9px;background:none;box-shadow:none}small{font-size:9px;letter-spacing:2px;font-weight:bold;color:#9a7fb0}h1{font-size:25px;margin:9px 0}p{font-size:13px;line-height:1.65}.place-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:17px}.place-grid button{display:grid;justify-items:center;gap:8px;font-size:26px;border-radius:17px;padding:14px 5px;background:#f1e8f7;box-shadow:none}.place-grid span{font-size:11px}.gentle{font-size:11px;color:#9b8ba5}#caption{position:absolute;left:50%;bottom:122px;transform:translateX(-50%);padding:12px 23px;border-radius:20px;background:#fffcf0ed;max-width:min(650px,88vw);font-size:14px;line-height:1.5;text-align:center;pointer-events:none}footer{position:absolute;bottom:25px;left:30px;right:30px;display:flex;align-items:end;justify-content:space-between;gap:18px}.controls{background:#fffcf0de;border-radius:18px;padding:14px 18px;display:grid;gap:5px;font-size:10px}.controls b{font-size:14px}.actions{display:flex;gap:8px}.actions button{min-height:50px}#interact{background:#8260ac;color:#fff;min-width:180px;font-size:16px}#welcome{position:absolute;inset:0;background:linear-gradient(135deg,#e7efdef8,#f0e4f6f5);display:grid;place-items:center}.welcome-card{text-align:center;background:#fffaf0;border:1px solid #fff;padding:34px 50px;border-radius:35px;box-shadow:0 20px 100px #74518420;width:min(455px,92vw)}.flower{font-size:60px;color:#a28abf}.welcome-card h1{font-size:43px;line-height:1.06;letter-spacing:-2px;margin:18px 0}.welcome-card p{color:#8c7a98}.welcome-card #start{width:100%;background:#8260ac;color:white;font-size:17px}progress{width:100%;height:7px;accent-color:#a38bbf}#load-status{font-size:11px}#fallback{position:absolute;inset:25% 20%;background:#fffaf0ee;border-radius:30px;padding:35px;text-align:center;overflow:auto}dialog{border:1px solid white;border-radius:27px;background:#fffaf0;color:#4e3d65;width:min(450px,92vw);max-height:90dvh;padding:26px;box-shadow:0 25px 100px #37264855}dialog::backdrop{background:#392b5680;backdrop-filter:blur(4px)}dialog h2{font-size:25px}fieldset{border:1px solid #dfd0e9;border-radius:15px;padding:16px}legend{font-size:13px;font-weight:bold}label{display:block;font-size:12px;margin:13px 0 7px}select,input{width:100%;accent-color:#9779b8}select{padding:9px;border:1px solid #decfe9;border-radius:9px;background:#fff;color:#604979}#voice-status{font-size:11px}#resume{background:#8260ac;color:white;width:100%;margin-top:20px}#return-center{margin:15px 0}details{font-size:12px;color:#8d759e}details a{color:#79559e}.touch{display:none;position:absolute;bottom:150px;right:16px;text-align:center}.touch button{padding:15px;margin:2px;touch-action:none}@media(pointer:coarse){.touch{display:block}}@media(max-width:850px){.controls{display:none}footer{justify-content:center}.brand{font-size:22px}.brand small{font-size:8px;letter-spacing:1px}header{left:18px;right:18px}.toolbar button{font-size:11px;padding:12px}.actions button{font-size:12px;padding:12px}#interact{font-size:14px;min-width:140px}#places{left:18px;top:100px;width:280px}#caption{bottom:105px;font-size:12px}}@media(max-width:520px){header{top:15px;gap:6px;flex-wrap:wrap}.toolbar{gap:5px;margin-left:auto}.toolbar button{padding:10px;font-size:10px}.brand{font-size:20px}.brand small{display:none}footer{left:10px;right:10px;bottom:16px;gap:6px}.actions{gap:5px;width:100%;justify-content:center}.actions button{padding:11px 9px;min-height:46px}#interact{min-width:125px;font-size:13px}#places{top:80px;width:270px;max-height:calc(100dvh - 215px)}#caption{bottom:85px}.welcome-card{padding:28px}.welcome-card h1{font-size:38px}#fallback{inset:20% 5%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

/* Cheerful meadow colors, with dark labels for readable controls. */
.brand{color:#7040a1}.toolbar button{background:#fff5cb;border:1px solid #fff8de}#places-toggle{background:#ffda72;color:#654316}.flower{color:#aa51dc}#interact,.welcome-card #start,#resume{background:#9250d1}.place-grid button:nth-child(4n+1){background:#e8d2ff;color:#65318a}.place-grid button:nth-child(4n+2){background:#ffe1ef;color:#8a3568}.place-grid button:nth-child(4n+3){background:#d2f3e8;color:#236957}.place-grid button:nth-child(4n){background:#fff0bf;color:#73551f}.place-grid button:hover{box-shadow:inset 0 0 0 2px #b884e5}.actions #bike{background:#ffe5a3;color:#70511c}.actions #skates{background:#e9d6ff;color:#683a8c}.welcome-card{border:2px solid #fff0b7}progress{accent-color:#ba57df}

#fair-panel{width:min(540px,94vw);text-align:center;border:3px solid #f9d572}#fair-close{display:block;margin:0 0 16px auto;font-size:12px;padding:10px 14px;background:#ead6fa}#fair-tabs{display:flex;justify-content:center;gap:6px;margin:18px 0}#fair-tabs button{padding:10px 13px;font-size:12px;background:#ede1f7}#fair-tabs button[aria-pressed=true]{background:#9250d1;color:white}#fair-targets{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px;border-radius:23px;background:linear-gradient(135deg,#b4ede4,#c6e9fc)}.fair-target{font-size:43px;min-height:82px;border-radius:22px;background:#fff5d9;box-shadow:0 5px 0 #b6aedb}.fair-target:nth-child(2n){background:#f4d3ed}.fair-target:nth-child(3n){background:#e5d0fb}#fair-result{min-height:48px;font-size:15px;font-weight:bold;color:#704094}.fair-bounce{animation:fair-bounce .45s ease}@keyframes fair-bounce{50%{transform:translateY(-10px) rotate(6deg)}}@media(prefers-reduced-motion:reduce){.fair-bounce{animation:none}}

.friends-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:16px 0 5px}.friends-buttons button{font-size:11px;padding:12px 7px;background:#e8def5;box-shadow:none}.friends-buttons button[aria-pressed=true]{background:#9250d1;color:white}#friends-status{font-size:11px;line-height:1.6;color:#795d8e;padding-bottom:12px;border-bottom:1px solid #e9d9ee}

#welcome{overflow:auto;padding:18px}.welcome-card{max-height:calc(100dvh - 36px);overflow:auto}.welcome-card h1{font-size:34px;margin:10px 0}.welcome-card h2{font-size:18px}.welcome-card .flower{font-size:32px}.start-characters{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:15px 0}.start-characters button{display:grid;gap:5px;padding:12px;border:3px solid transparent;background:#eee0fa}.start-characters button span{font-size:30px}.start-characters button[aria-pressed="true"],[data-character][aria-pressed="true"]{border:3px solid #9250d1;background:#fce6a6}#start-choice{font-weight:bold;color:#7040a1}

#welcome{background:linear-gradient(135deg,#ece2ff,#fff3d5)}.welcome-card.artwork-picker{width:min(1320px,98vw);padding:20px;border-radius:24px;max-height:96dvh}.artwork-picker h1{font-size:25px;letter-spacing:0;margin:0 0 12px}.character-art{position:relative;width:100%;aspect-ratio:2048/682;border-radius:18px;isolation:isolate}.character-art img{display:block;width:100%;height:auto;border-radius:18px}.character-art button{position:absolute;bottom:3%;padding:0;border-radius:18px;border:3px solid transparent;background:transparent;box-shadow:none;transition:border-color .15s,box-shadow .15s}.character-art button:hover{background:#ffffff12;border-color:#ffffff99}.character-art button[data-start-character="momo"]{left:24.5%;width:14.5%;top:41%}.character-art button[data-start-character="mila"]{left:39%;width:12.5%;top:24%}.character-art button[data-start-character="chickpea"]{left:50.5%;width:10%;top:46%}.character-art button[data-start-character="ellie"]{left:59.5%;width:16%;top:40%}.character-art button[aria-pressed="true"]{border-color:#9a38e5;background:#ffffff0d;box-shadow:0 0 0 3px #fff,0 0 22px 7px #ad48f0a8}.character-art button[aria-pressed="true"]::before{content:"";position:absolute;left:50%;top:-28px;transform:translateX(-50%);border-left:14px solid transparent;border-right:14px solid transparent;border-top:22px solid #8526cf;filter:drop-shadow(0 -2px 2px white)}.picker-name{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.picker-bottom{display:flex;align-items:center;justify-content:center;gap:25px;max-width:640px;margin:auto}.picker-bottom>div{flex:1}.artwork-picker #start{width:auto;min-width:190px}.artwork-picker #start-choice{font-size:19px;margin:12px 0}.artwork-picker .gentle{margin:10px 0 0}@media(max-width:600px){.welcome-card.artwork-picker{padding:12px}.artwork-picker h1{font-size:21px}.artwork-picker #start-choice{font-size:15px}.picker-bottom{display:block}.artwork-picker #start{width:100%;min-width:0}.character-art button{border-width:2px;border-radius:8px}.character-art button[aria-pressed="true"]::before{top:-19px;border-left-width:9px;border-right-width:9px;border-top-width:14px}}
