:root{--ink:#333c54;--purple:#7656b3;--paper:#fff8ed;--muted:#6b7184}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-rounded,'Arial Rounded MT Bold',system-ui,sans-serif}button,select{font:inherit}button{cursor:pointer;border:0;border-radius:18px;color:var(--ink);background:white;min-height:50px;padding:12px 18px;font-weight:750;box-shadow:0 3px 0 #00000012;touch-action:manipulation}button:hover{filter:brightness(.98);transform:translateY(-1px)}button:focus-visible,select:focus-visible{outline:4px solid #e7ad22;outline-offset:3px}button:disabled{cursor:default;opacity:.7}header{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:22px 28px;gap:12px}.brand{background:transparent;box-shadow:none;font-size:20px;padding:0}.brand span{color:#e5a943;font-size:32px;vertical-align:middle;margin-right:8px}#audio{border:1px solid #e3dbc9;font-size:14px}main{max-width:1100px;margin:auto;padding:15px 28px 60px}.hero{text-align:center;margin:12px 0 30px}.eyebrow{color:#917342;letter-spacing:2px;text-transform:uppercase;font-weight:800;font-size:12px}h1{font-size:clamp(32px,5.5vw,55px);letter-spacing:-1.7px;margin:10px 0 12px;line-height:1.1}h1 em{color:var(--purple);font-style:normal}.hero p{color:var(--muted);font-size:18px;margin:12px 0}.badge{display:inline-block;background:#fff1be;color:#796027;border-radius:30px;padding:9px 18px;font-size:14px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.game-card{text-align:left;padding:0;overflow:hidden;background:#fff;border-radius:26px;border:1px solid #eee5d5;box-shadow:0 7px 0 #ece5d64d;transition:transform .2s}.card-art{height:158px;display:flex;align-items:center;justify-content:center;position:relative}.card-art svg{height:100%;width:100%}.card-info{padding:18px 20px 20px}.card-info h2{font-size:21px;margin:0 0 8px;letter-spacing:-.5px}.card-info p{font-size:14px;line-height:1.5;font-weight:400;color:var(--muted);margin:0 0 18px}.card-foot{display:flex;align-items:center;justify-content:space-between;font-size:13px}.play{padding:8px 13px;border-radius:12px;background:#f4effa;color:var(--purple)}.stars{color:#d9971a;letter-spacing:2px}.bottom{text-align:center;margin-top:30px;color:var(--muted);font-size:13px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 24px}.toolbar button{font-size:15px}.game-title{text-align:center;margin:18px 0}.game-title h1{font-size:34px;letter-spacing:-1px}.game-title p{font-size:18px;color:var(--muted);line-height:1.4}.panel{background:#fff;border:1px solid #eee5d5;border-radius:28px;padding:24px;max-width:760px;margin:auto;text-align:center}.options{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:15px 0}.options button.active,.primary{background:var(--purple);color:white}.status{font-size:16px;color:var(--muted);margin:16px 0}.memory{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:500px;margin:20px auto}.memory.six{grid-template-columns:repeat(3,1fr)}.memory button{aspect-ratio:1;padding:6px;background:#cab9e6;color:white;font-size:40px;border-radius:20px;min-width:0}.memory button.open{background:#fff2d0}.memory button.matched{background:#def1df}.memory svg{width:100%;height:100%}.puzzle{display:grid;gap:4px;max-width:510px;width:100%;aspect-ratio:1;margin:16px auto;touch-action:none;background:#e6ddce;padding:4px;border-radius:16px;overflow:hidden}.piece{border-radius:6px;min-height:0;padding:0;box-shadow:none;background-repeat:no-repeat;border:2px solid transparent;touch-action:none;aspect-ratio:1}.piece.selected{border-color:#ea9a20}.piece.right{border-color:#78b890}.puzzle-preview{max-width:260px;margin:16px auto}.puzzle-preview svg{width:100%;display:block;border-radius:18px}.thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.thumbs button{padding:4px;font-size:11px;min-width:0;border:2px solid transparent}.thumbs button.active{border-color:var(--purple);background:#f1eafa}.thumbs svg{display:block;width:100%;border-radius:12px}.question{font-size:25px;font-weight:800;line-height:1.35;margin:20px 0}.objects{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:430px;margin:22px auto;min-height:85px;align-items:center}.object{font-size:46px}.answers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px auto;max-width:500px}.answers button{background:#f3edfc;font-size:28px;min-height:90px;padding:10px;min-width:0}.answers button span{display:block;font-size:14px;margin-top:6px}.big-number{font-size:80px;color:var(--purple);font-weight:900}.sequence{font-size:40px;word-spacing:10px}.progress{height:9px;background:#eee9f3;border-radius:20px;overflow:hidden}.progress div{height:100%;background:#b99bdd;transition:width .3s}.maze{display:grid;gap:0;margin:20px auto;max-width:480px;width:100%;aspect-ratio:1;border:4px solid #7863a0;background:#e9f4e3;border-radius:12px;overflow:hidden;touch-action:none}.maze-cell{position:relative;display:flex;align-items:center;justify-content:center;border:0 solid #7863a0;min-width:0}.maze-cell.hint{background:#ffdf83}.maze-cell span{font-size:clamp(18px,4vw,36px);line-height:1}.arrows{display:grid;grid-template-columns:repeat(3,60px);gap:8px;justify-content:center}.arrows button{background:#ede5fa;font-size:25px;padding:8px}.arrows button:first-child{grid-column:2}.arrows button:nth-child(2){grid-column:1}.story-art{max-width:480px;margin:auto}.story-art svg{width:100%;border-radius:20px;max-height:270px}.story-text{font-size:22px;line-height:1.7;text-align:left;margin:20px auto;max-width:590px}.story-choices{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.story-choices button{background:#f1eafa;flex:1;min-width:130px;max-width:240px}.story-choices .choice-icon{display:block;font-size:48px;margin:8px}.story-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.story-list button{text-align:left;background:#f7f1fa;padding:16px}.story-list span{font-size:34px;display:block}.story-list small{display:block;font-weight:400;margin-top:8px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);border-radius:20px;background:#333c54;color:white;padding:14px 22px;z-index:9;display:none;text-align:center;max-width:90vw;width:max-content}dialog{border:0;border-radius:28px;background:#fff8ed;text-align:center;padding:35px;max-width:90vw;width:430px;color:var(--ink)}dialog::backdrop{background:#333c5460}.party{font-size:68px;animation:bounce .8s infinite alternate}.prize-stars{font-size:45px;color:#db9d2c}dialog h2{font-size:30px}@keyframes bounce{to{transform:translateY(-10px) rotate(5deg)}}select{max-width:100%;padding:12px;border-radius:14px;background:#fff;border:1px solid #ddd;font-size:16px}.settings{margin-top:30px}details{text-align:left;font-size:14px;color:var(--muted);line-height:1.7}summary{cursor:pointer;font-weight:bold}details button{font-size:14px;margin-top:12px}@media(max-width:720px){.cards{grid-template-columns:repeat(2,1fr);gap:14px}.card-info{padding:15px}.card-info h2{font-size:18px}.card-art{height:130px}header{padding:16px}.brand{font-size:16px}main{padding:8px 16px 40px}.hero{margin:12px 0 25px}.panel{padding:18px}.thumbs{grid-template-columns:repeat(4,1fr)}.game-title h1{font-size:29px}.toolbar{gap:7px}.toolbar button{padding:10px 12px;font-size:13px}}@media(max-width:380px){main{padding-inline:10px}.cards{gap:10px}.card-info{padding:12px}.card-art{height:112px}.card-info h2{font-size:16px}.card-info p{font-size:12px}.card-foot{font-size:11px}.answers{gap:8px}.answers button{font-size:24px}.panel{padding:12px}.memory{gap:7px}.brand{font-size:14px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.scene-image{display:block;width:100%;height:auto;object-fit:cover;border-radius:18px}.card-art{height:180px}.card-art .scene-image{height:100%;border-radius:0;object-position:center 45%;transition:transform .3s}.game-card:hover .scene-image{transform:scale(1.035)}.art-badge{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);padding:4px 10px;background:#fffaf2ed;border-radius:12px;font-size:18px;line-height:1.25;letter-spacing:2px;color:#7854a7;box-shadow:0 2px 8px #50395320}.character{display:inline-block;width:100%;height:100%;object-fit:contain;vertical-align:middle;pointer-events:none;user-select:none}.emoji-art{display:inline-block;line-height:1.2}.memory button .character{display:block}.puzzle-preview .scene-image{width:100%;border-radius:18px}.story-art .scene-image{width:100%;max-height:350px;object-fit:cover;object-position:center 45%}.story-list .character{display:block;width:100px;height:95px;margin:auto auto 10px}.story-list button{text-align:center}.story-choices .character{width:80px;height:80px}.maze-friends{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.maze-friends button{background:#f6f0fb;padding:12px;min-width:0}.maze-friends .character{height:95px;width:100%}.maze-friends strong{display:block;font-size:20px;margin:5px}.maze-friends small{font-size:12px;font-weight:400;display:block;line-height:1.4}.maze-guide{display:flex;gap:16px;align-items:center;justify-content:center;text-align:left}.maze-guide .character{width:100px;height:105px;flex-shrink:0}.maze-guide h2{font-size:22px;margin:0 0 8px}.maze-guide p{margin:0;color:var(--muted);font-size:15px}.maze-cell .character{position:absolute;inset:1px;width:calc(100% - 2px);height:calc(100% - 2px);filter:drop-shadow(0 2px 1px #414f482a)}.maze{border-color:#729164;box-shadow:0 8px 20px #7c94611a}.maze-cell{border-color:#729164}.settings select{display:block;margin:8px 0}.settings label{font-weight:700}@media(max-width:720px){.card-art{height:155px}.maze-friends{gap:8px}.maze-friends button{padding:9px}.maze-friends .character{height:80px}.maze-guide .character{width:80px;height:85px}.maze-guide h2{font-size:19px}}@media(max-width:380px){.card-art{height:125px}.maze-friends strong{font-size:16px}.maze-friends .character{height:65px}.maze-friends small{font-size:11px}.maze-guide{gap:10px}}
/* Fixed puzzle geometry: tiles share the source image's original proportions. */
.puzzle{gap:2px;padding:2px;align-items:stretch}.piece{position:relative;display:block;width:100%;height:100%;min-width:0;min-height:0;aspect-ratio:auto;overflow:hidden;border:0;border-radius:3px;background:#eee;transform:none!important;filter:none!important;transition:none!important;animation:none!important;box-shadow:none}.piece:hover,.piece:active,.piece:focus{transform:none!important;filter:none!important}.piece img{position:absolute;display:block;max-width:none;object-fit:fill;pointer-events:none;user-select:none;-webkit-user-drag:none}.piece.selected{border:0;box-shadow:inset 0 0 0 4px #e6a222}.piece.selected::after{content:"";position:absolute;inset:0;border:4px solid #e6a222;border-radius:3px;pointer-events:none}.piece.right{border:0}.piece.right:not(.selected)::after{content:"";position:absolute;inset:0;border:2px solid #69aa85;border-radius:3px;pointer-events:none}.piece:focus-visible{outline:0}.piece:focus-visible::after{content:"";position:absolute;inset:0;border:4px solid #7656b3;pointer-events:none}.puzzle-preview[hidden]{display:none}.puzzle-preview .scene-image{height:auto;object-fit:contain}
.puzzle{gap:0;padding:0}.piece{border-radius:0}.piece::after{border-radius:0!important}
/* Consistent illustrated characters and destinations, fitted inside each cell. */
.maze-cell .character,.maze-cell .maze-destination{position:absolute;inset:9%;width:82%;height:82%;max-width:82%;max-height:82%;object-fit:contain;display:block;pointer-events:none;filter:drop-shadow(0 2px 1px #414f4822)}.thumbs .scene-image{width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#fff8ed}.maze-cell span{font-size:inherit}

@media(max-width:720px){.art-badge{font-size:16px;padding:3px 8px;letter-spacing:1px;border-radius:10px}}

/* Five-game home: three cards, then two centered cards. */
.cards{grid-template-columns:repeat(6,minmax(0,1fr))}.game-card{grid-column:span 2}.game-card:nth-child(4){grid-column:2/span 2}.game-card:nth-child(5){grid-column:4/span 2}
@media(max-width:720px){.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.game-card:nth-child(4){grid-column:span 2}.game-card:nth-child(5){grid-column:2/span 2}}
@media(max-width:480px){.cards{grid-template-columns:minmax(0,1fr)}.game-card,.game-card:nth-child(4),.game-card:nth-child(5){grid-column:1}}

/* Persistent audio modes; the existing games and illustrations stay unchanged. */
header{position:sticky;top:0;z-index:10;background:var(--paper);flex-wrap:wrap}
.audio-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.audio-controls .audio-mode{border:1px solid #e3dbc9;font-size:14px;min-height:50px}
.audio-controls .audio-mode.active{background:var(--purple);color:white;border-color:var(--purple)}
dialog .audio-controls{justify-content:center;margin-top:18px}
@media(max-width:480px){header .audio-controls{justify-content:flex-end;width:100%}}
