.profile-pill{background:#fff2f7;border:2px solid #f5bbce;border-radius:20px;padding:10px 16px;color:#8b3959;font-weight:700;font-size:14px;min-height:44px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-page{max-width:1100px;margin:16px auto 40px}.profile-heading{text-align:center;margin-bottom:28px}.profile-heading h1{font-size:clamp(28px,3vw,42px);color:#354e63;margin:15px 0 10px}.profile-heading p{font-size:17px;color:#60757f}.profile-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:28px;align-items:start}.passport{background:#fff6dc;border:3px solid #f2ce72;border-radius:30px;padding:28px 24px 16px;position:relative;box-shadow:0 8px 0 #f0d99555}.passport-stamp{position:absolute;right:18px;top:12px;font-size:32px;color:#eda93f;transform:rotate(13deg)}.passport label{display:block;margin:20px 0 12px;font-size:19px;font-weight:800;line-height:1.5;color:#564d3a}.passport input{width:100%;box-sizing:border-box;background:white;border:2px solid #e5c577;border-radius:14px;padding:14px;font-size:22px;color:#3b525f;min-height:58px}.passport>p{font-size:13px;color:#837651}.passport-buddy{height:220px;margin:12px auto 0;display:flex;justify-content:center}.passport-buddy svg{height:100%;width:auto;max-width:100%}.passport-caption{text-align:center;font-size:23px;font-weight:800;color:#7f5264}.passport-caption span{display:block;font-size:13px;font-weight:500;margin-top:7px;color:#86735f}.buddy-picker{padding:4px 0}.buddy-picker h2{font-size:23px;color:#3c5668;margin:0 0 17px}.buddy-options{display:grid;gap:12px}.buddy-option{border:2px solid #e2e9ec;border-radius:21px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;position:relative;padding:5px 14px 11px 8px;align-items:center;transition:border-color .18s,transform .18s}.buddy-option.selected{border:3px solid var(--buddy-color);padding:4px 13px 10px 7px;box-shadow:0 4px 0 color-mix(in srgb,var(--buddy-color) 20%,transparent);background:#fff9fc}.buddy-select{border:0;background:transparent;display:flex;align-items:center;text-align:left;padding:5px;gap:15px;min-height:88px;min-width:0;color:#3b5261}.buddy-portrait{width:68px;height:78px;flex:none;display:flex;align-items:center;justify-content:center}.buddy-portrait svg{width:100%;height:100%}.buddy-name{font-size:21px;font-weight:800;line-height:1.5}.buddy-name small{display:block;font-size:13px;font-weight:500;color:#809098}.buddy-check{font-size:23px;color:var(--buddy-color);margin-left:auto;padding:8px}.buddy-audition{border:0;background:#eaf6f7;color:#317886;border-radius:16px;padding:12px 15px;font-size:14px;font-weight:700;min-height:44px}.voice-caption{grid-column:1/-1;text-align:right;font-size:11px;color:#82939a;padding-right:4px}.buddy-promise{font-size:14px;line-height:1.8;background:#eaf8f0;color:#426d57;border-radius:16px;padding:13px 17px;margin-top:20px}.profile-privacy{font-size:12px;line-height:1.8;color:#809098;margin-top:18px}.profile-submit{min-height:58px;font-size:19px;padding-inline:28px}.profile-page #profile-feedback{color:#a84362;min-height:20px;margin:8px 0}.companion-welcome{display:flex;align-items:center;gap:22px;border:2px solid #f3c1d2;border-radius:26px;background:#fff3f8;padding:10px 25px;margin:15px 0 25px;box-shadow:0 5px 0 #f9e3eb}.welcome-portrait{border:0;background:transparent;width:115px;height:132px;flex:none;padding:0}.welcome-portrait svg{height:100%;width:100%}.companion-welcome h2{font-size:24px;color:#7f4261;margin:8px 0}.companion-welcome p{color:#80586b;margin:8px 0 14px}.companion-welcome .button-row{gap:12px;flex-wrap:wrap}.companion-welcome .tag{font-size:11px}.peppa-art{display:block;max-width:100%;height:auto}.celebration-buddy .peppa-art,.finish-friend .peppa-art{width:165px;height:200px}.guide-character .peppa-art{height:145px;width:125px}.peppa-art.cheering{animation:buddy-bounce .6s ease-in-out 3;transform-origin:center bottom}.buddy-audition.playing{background:#fde2ef;color:#b43e72}.profile-pill:focus-visible,.buddy-select:focus-visible,.buddy-audition:focus-visible,.welcome-portrait:focus-visible{outline:4px solid #347cbb;outline-offset:3px}
@keyframes buddy-bounce{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-9px) rotate(3deg)}}
.read-along{position:relative;display:flex;align-items:center;justify-content:space-between;gap:22px;text-align:left;margin:22px auto;padding:23px 25px;background:#edf9f7;border:2px solid #b3dbd3;border-radius:24px;max-width:760px}.read-along-copy{flex:1;min-width:0}.read-along h3{font-size:22px;line-height:1.5;margin:10px 0;color:#2e6a68;padding-right:45px}.read-along-phrase{font-size:25px!important;font-weight:800;color:#425a6a;margin:10px 0!important}.read-along .muted{margin-bottom:0;font-size:12px}.read-along>button{min-height:54px;flex:none}.read-along-count{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;position:absolute;right:22px;top:20px;background:#ffe8a3;border-radius:50%;font-size:24px;font-weight:800;color:#8a632b}.read-along:has(.read-along-count)>button{align-self:flex-end}@media(max-width:750px){.read-along{flex-direction:column;align-items:stretch;padding:18px;gap:14px}.read-along h3{font-size:19px}.read-along>button,.read-along:has(.read-along-count)>button{align-self:stretch}.read-along-phrase{font-size:22px!important}}
@media(max-width:900px){.profile-layout{grid-template-columns:240px minmax(0,1fr);gap:18px}.passport{padding:24px 18px 16px}.buddy-name{font-size:18px}.buddy-select{gap:7px}.buddy-portrait{width:50px;height:64px}.buddy-audition{padding:11px;font-size:13px}.profile-pill{max-width:190px;font-size:12px}.profile-heading p{font-size:15px}}
@media(max-width:650px){.profile-layout{grid-template-columns:1fr}.profile-heading{margin-bottom:20px}.passport{display:grid;grid-template-columns:minmax(0,1fr) 98px;column-gap:14px;padding:20px}.passport .eyebrow,.passport label,.passport input,.passport>p{grid-column:1}.passport label{font-size:17px;margin:12px 0 8px}.passport-buddy{grid-column:2;grid-row:2/5;height:140px;margin:0;align-self:center}.passport-caption{grid-column:1/-1;font-size:18px;margin-top:6px}.passport-caption span{display:inline;margin-left:10px}.passport-stamp{font-size:23px}.profile-pill{max-width:150px;padding:9px;font-size:11px}.buddy-name{font-size:20px}.buddy-portrait{width:60px;height:72px}.buddy-select{gap:10px}.companion-welcome{padding:12px;gap:12px}.welcome-portrait{width:82px;height:106px}.companion-welcome h2{font-size:20px}.companion-welcome p{font-size:13px}.companion-welcome .sound{padding:8px 12px;font-size:13px}.companion-welcome .text-button{font-size:12px}.profile-submit{width:100%}}
.still .peppa-art.cheering{animation:none}@media(prefers-reduced-motion:reduce){.peppa-art.cheering{animation:none}.buddy-option{transition:none}}
#voice-dock[hidden]{display:none}#voice-dock{position:fixed;z-index:35;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(620px,calc(100% - 32px));display:flex;align-items:center;gap:18px;padding:12px 16px;background:#fff9ea;border:2px solid #edca83;border-radius:20px;box-shadow:0 7px 24px #4a543126;box-sizing:border-box}.voice-dock-copy{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.voice-dock-copy>div{min-width:0}.voice-dock-copy b{display:block;color:#79602d;font-size:12px;margin-bottom:3px}.voice-dock-copy span:not(.voice-bars){display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#3c5361;font-size:17px;font-weight:700}#voice-dock button{flex:none;min-height:44px;padding:10px 15px;border:0;border-radius:14px;background:#f5dca6;color:#5d4929;font-weight:800;font-size:15px}#voice-dock button:focus-visible{outline:4px solid #347cbb;outline-offset:3px}.voice-bars{display:flex;align-items:center;gap:3px;height:25px}.voice-bars i{width:4px;height:12px;border-radius:3px;background:#ca8e38;animation:voice-pulse .8s ease-in-out infinite}.voice-bars i:nth-child(2){animation-delay:.15s;height:22px}.voice-bars i:nth-child(3){animation-delay:.3s}.layout>main{padding-bottom:110px}@keyframes voice-pulse{50%{transform:scaleY(.4)}}.still .voice-bars i{animation:none}@media(prefers-reduced-motion:reduce){.voice-bars i{animation:none}}@media(max-width:480px){#voice-dock{padding:10px;gap:9px}.voice-dock-copy{gap:8px}.voice-dock-copy span:not(.voice-bars){font-size:15px}}
.music-pill{border:2px solid #b9ddc6;border-radius:20px;min-height:44px;padding:9px 13px;background:#effbf2;color:#32704d;font-weight:700;font-size:13px}.music-pill[aria-pressed=true]{background:#d6efd6;border-color:#80bf8a}.music-pill:focus-visible{outline:4px solid #347cbb;outline-offset:3px}.character-art{display:block;width:100%;height:100%}.character-art.cheering{animation:buddy-bounce .6s ease-in-out 3;transform-origin:center bottom}.still .character-art.cheering{animation:none}.buddy-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.buddy-option{grid-template-columns:1fr;padding:10px}.buddy-option.selected{padding:9px}.buddy-select{gap:6px}.buddy-name{font-size:18px}.buddy-name small{font-size:11px}.buddy-portrait{width:56px;height:72px}.buddy-check{padding:3px}.buddy-audition{width:100%;margin-top:5px}.voice-caption{text-align:left;margin-top:7px;font-size:10px;line-height:1.5}.buddy-promise{grid-column:1/-1}.passport{position:sticky;top:20px}.sound.loading,.buddy-audition.loading{opacity:.72;background:#fff1c8}.sound.loading:after,.buddy-audition.loading:after{content:' · 准备中';font-size:11px}.top-actions{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:900px){.buddy-options{grid-template-columns:1fr}.passport{position:static}.music-pill{font-size:12px;padding:8px}.top-actions{gap:6px}}@media(max-width:650px){.buddy-options{grid-template-columns:repeat(2,minmax(0,1fr))}.buddy-select{flex-wrap:wrap;justify-content:center;text-align:center;gap:3px}.buddy-name{font-size:17px;width:100%}.buddy-check{position:absolute;right:8px;top:8px}.buddy-portrait{width:65px;height:80px}.voice-caption{text-align:center}.buddy-audition{font-size:12px}.music-pill{font-size:11px;padding:8px}}@media(prefers-reduced-motion:reduce){.character-art.cheering{animation:none}}

.arrival-card{max-width:620px;margin:35px auto;text-align:center;background:#fff5fa;border:3px solid #f1bfd2;border-radius:32px;padding:30px 26px}.arrival-buddy{height:230px;display:flex;justify-content:center}.arrival-buddy svg{height:100%;width:auto}.arrival-card h1{font-size:clamp(26px,4vw,38px);color:#8d4566}.arrival-card>p{line-height:1.8;color:#806573}.arrival-card .primary{display:block;margin:22px auto;min-height:60px}.arrival-card .text-button{margin:8px}.arrival-card #named-feedback{font-size:14px;min-height:25px}.arrival-card .primary:disabled{opacity:.7;cursor:wait}@media(max-width:650px){.arrival-card{padding:22px 15px;margin:20px auto}.arrival-buddy{height:190px}}

@media(max-width:600px){#voice-dock{bottom:calc(94px + env(safe-area-inset-bottom))}}
@media print{#voice-dock{display:none}.layout>main{padding-bottom:0}}

.offline-edition{font-size:12px;color:#47665a;display:inline-block;margin-left:8px;max-width:340px;vertical-align:middle}.topbar .eyebrow{white-space:normal}
