.p-nav,.p-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:18px 0}.p-nav a{font-size:16px;min-height:48px}.p-heading h1{margin:20px 0 10px}.p-heading p{font-size:20px;max-width:65ch}.p-today{display:grid;grid-template-columns:1fr 1.2fr;gap:26px;background:#0757d4;color:#fff;border:4px solid white;border-radius:32px;padding:24px;box-shadow:0 9px 0 #d591bb}.p-today img{width:100%;max-height:340px;object-fit:contain;border-radius:24px;background:#fff}.p-today h2{color:white;font-size:34px}.p-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:28px 0}.p-card{display:block;background:white;border:3px solid #a8dfff;border-radius:28px;overflow:hidden;color:#183761;text-decoration:none;box-shadow:0 7px 0 #dac2dd}.p-card img{width:100%;aspect-ratio:3/2;object-fit:contain;background:#e9f8ff}.p-card h2,.p-card p{margin:16px 22px}.p-scene{position:relative;margin:25px 0;background:#d5f5ff;border:4px solid #fff;border-radius:28px;overflow:hidden;box-shadow:0 7px 0 #b9c8ea}.p-scene>img{width:100%;display:block;height:auto;aspect-ratio:3/2;object-fit:contain}.p-hotspot{position:absolute;transform:translate(-50%,-50%);border-radius:50%;width:52px;height:52px;min-width:48px;min-height:48px;padding:0;background:#e9ff2c;color:#113763;border:3px solid white;box-shadow:0 3px 8px #1237;font-size:22px;font-weight:900;touch-action:manipulation}.p-hotspot:disabled{opacity:.6}.p-hotspot.p-correct{background:#9df2cf}.p-object-info{background:white;border-left:8px solid #dfff00;padding:20px 24px;border-radius:20px}.p-object-info h2{margin:0;color:#005acf}.p-object-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.p-object{border:3px solid #9dddf5;border-radius:24px;background:white;padding:10px;color:#143964;overflow:hidden;min-width:0}.p-object img{display:block;width:100%;aspect-ratio:1;object-fit:contain;border-radius:14px}.p-object strong{display:block;font-size:18px;margin:10px 0}.p-status{padding:18px;background:#e8f7ff;border-radius:18px;font-size:20px;color:#143964;min-height:64px}.p-dialogue{display:grid;gap:24px;margin-top:24px}.p-line{display:grid;grid-template-columns:minmax(100px,28%) 1fr;gap:20px;padding:20px;background:#fff;border:4px solid #bddbea;border-radius:28px}.p-line>img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:20px}.p-line h2{font-size:28px;line-height:1.35}.p-line.p-child{margin-left:7%;border-color:#f0badb}.p-line.p-adult{margin-right:7%}.p-line.p-speaking{border-color:#005ee7;box-shadow:0 0 0 5px #e6fc26;background:#f3fbff}.p-say{background:#fff;border-radius:30px;border:4px solid #b4dcff;padding:26px;margin:25px auto;max-width:800px;text-align:center}.p-say>img{width:100%;max-height:350px;object-fit:contain;border-radius:24px}.p-say h2{font-size:36px;color:#0757d4;line-height:1.4}.p-say .p-actions{justify-content:center}.p-answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}.p-answer-grid img{max-height:270px}.p-sentence{padding:24px;border:2px dashed #509be5;background:#ecf9ff;border-radius:20px;min-height:100px;margin:20px 0;font-size:26px;color:#154078}.p-finish{text-align:center;background:#fff;border-radius:32px;padding:30px;margin:25px 0}.p-finish>img{width:250px;max-width:100%;aspect-ratio:1;object-fit:contain;border:7px solid #e7fc30;border-radius:32px}.p-finish .p-actions{justify-content:center}.p-stickers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:28px 0}.p-sticker{background:#fff;border:4px solid #e1f333;border-radius:26px;text-align:center;padding:14px}.p-sticker img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:20px}.p-sticker h2{font-size:20px}.p-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}.p-metrics article{padding:20px;background:#fff;border-radius:22px;border:2px solid #b6daff}.p-metrics strong{display:block;color:#0056d6;font-size:40px}.p-report-list{display:grid;gap:20px;margin:22px 0}.p-report-list article{background:white;border:2px solid #bddaff;border-radius:22px;padding:22px}.p-report-list textarea{display:block;width:100%;min-height:80px;font-size:18px}.p-home-cta{display:flex;align-items:center;gap:22px;padding:22px;background:#e9ff27;border:3px solid white;box-shadow:0 7px 0 #b9cf31;border-radius:28px;margin:30px 0;color:#14336c;text-decoration:none}.p-home-cta img{width:120px;height:120px;object-fit:contain;border-radius:22px}.p-home-cta strong,.p-home-cta small{display:block}.p-home-cta strong{font-size:30px}.p-home-cta small{font-size:18px;margin-top:8px}.p-home-cta .icon{margin-left:auto}.p-nav a:focus-visible,.p-hotspot:focus-visible,.p-object:focus-visible{outline:4px solid #ef6daf;outline-offset:3px}
@media(max-width:650px){.p-today{grid-template-columns:1fr;padding:18px;gap:10px}.p-today img{max-height:220px}.p-today h2{font-size:27px}.p-nav{gap:8px}.p-nav a{padding:10px 12px;font-size:15px}.p-hub-grid{gap:14px}.p-card h2{font-size:20px;margin:12px}.p-card p{font-size:16px;margin:12px}.p-object-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.p-line{grid-template-columns:1fr;padding:16px}.p-line>img{max-height:220px}.p-line.p-child,.p-line.p-adult{margin-left:0;margin-right:0}.p-line h2{font-size:24px}.p-say{padding:18px}.p-say h2{font-size:28px}.p-stickers{grid-template-columns:repeat(2,minmax(0,1fr))}.p-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.p-home-cta{padding:14px;gap:14px}.p-home-cta img{width:80px;height:80px}.p-home-cta strong{font-size:23px}.p-hotspot{width:48px;height:48px}.p-actions>.primary,.p-actions>.secondary{min-height:48px}}
@media(prefers-reduced-motion:reduce){.p-speaking{transition:none}}

.p-voice-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.p-voice-pair button{min-width:0;padding:14px 8px;font-size:clamp(16px,3.8vw,22px);line-height:1.35}.p-voice-pair button:only-child{grid-column:1/-1}.p-voice-pair .secondary{background:#fff0f7;border-color:#e9c4d9}
/* Override intrinsic image heights when cards shrink to mobile columns. */
.p-card>img,.p-object>img,.p-line>img,.p-say>img{display:block;height:auto;min-height:0}
.p-card>img{aspect-ratio:1;object-fit:contain}
.p-card{min-width:0;align-self:start}
