/* An open character lineup, using the four newly supplied original artworks. */
.cast-layout.mood-stage{display:block;background:transparent;padding:0;border:0;border-radius:0;overflow:visible;min-height:0}.cast-invitation{display:flex;justify-content:space-between;align-items:center;color:#735548;font-size:.875rem;margin:12px 0 8px;padding-top:18px;border-top:1px solid #51352920}.cast-invitation span:last-child{color:#735548}.cast-layout .mood-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;border:0;margin:0;padding:10px 0 22px;grid-column:auto}.cast-layout .mood-choices button{display:flex;flex-direction:column;gap:4px;border:0;background:none!important;border-radius:18px;padding:0 0 8px;box-shadow:none!important;text-align:center;position:relative;isolation:isolate;min-width:0}.cast-art{position:relative;width:100%;height:250px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.cast-art:before{content:'';position:absolute;inset:28% 8% 6%;border-radius:50%;background:#fff3cf;opacity:0;scale:.85;transition:opacity .3s,scale .3s;z-index:-1}.cast-layout [data-friend='daisy'] .cast-art:before{background:#ffebed}.cast-layout [data-friend='dobby'] .cast-art:before{background:#d4f1ff}.cast-layout [data-friend='grumpurr'] .cast-art:before{background:#e8f1c9}.cast-layout button[aria-pressed=true] .cast-art:before,.cast-layout .mood-choices button:hover .cast-art:before{opacity:1;scale:1}.cast-layout .mood-choices .cast-art img{display:block;width:100%;height:100%;object-fit:contain;max-width:270px;transition:translate .3s,scale .3s;filter:none}.cast-layout .mood-choices button:hover img{translate:0 -6px}.cast-layout .mood-choices button[aria-pressed=true] img{scale:1.04}.cast-layout .mood-choices button>span{position:static;display:block;font-size:1.2rem;line-height:1.3;color:var(--ink);padding:5px 18px;border-radius:30px;transition:background .3s}.cast-layout .mood-choices button[aria-pressed=true]>span{background:var(--ink);color:var(--cream)}.cast-layout .mood-choices small{display:block;font-size:.875rem;color:#735548;line-height:1.35}.cast-details{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;background:var(--friend-paper);padding:26px 34px;border-radius:24px;transition:background .4s}.cast-layout .friend-note{padding:0;min-width:0;text-align:left}.cast-layout .friend-note h3{font-size:2.1rem;margin:5px 0 8px}.cast-layout .friend-note>p{margin:0 0 4px;max-width:470px;font-size:1rem}.cast-layout .friend-note>.eyebrow{font-size:.875rem}.cast-layout .friend-story-link{padding:6px 0;font-size:.875rem}.cast-companion{border-left:1px solid #51352920;padding-left:34px;min-width:0}.cast-quote{color:var(--ink);font-weight:700;font-size:1.25rem;line-height:1.35;margin:0 0 14px}.cast-layout .friend-picks{margin:0;padding:0;border:0}.cast-layout .friend-picks>span{font-size:.875rem}.cast-layout .friend-picks>div{gap:16px;margin-top:10px}.cast-layout .friend-picks button{display:flex;flex-direction:row;align-items:center;gap:10px;width:50%;background:none;border:0;padding:0;min-width:0}.cast-layout .friend-picks img{width:62px;height:62px;object-fit:contain;flex-shrink:0;background:#fff;border-radius:8px}.cast-layout .friend-picks button>span,.cast-layout .friend-picks small{font-size:.875rem;line-height:1.3}.cast-layout .friend-picks small{margin-top:5px}.mood-world .mood-heading{margin-bottom:12px}.mood-world .mood-end{padding-top:14px}
@media(max-width:1000px){.cast-art{height:220px}.cast-layout .mood-choices{gap:10px}.cast-details{gap:26px;padding:24px}.cast-companion{padding-left:24px}.cast-layout .friend-picks img{width:50px;height:55px}.cast-layout .friend-picks>div{gap:12px}.cast-layout .friend-picks button{flex-direction:column;align-items:flex-start}.cast-layout .friend-note h3{font-size:1.9rem}}
@media(max-width:760px){.cast-invitation{padding-top:14px;margin-top:8px;font-size:.875rem}.cast-invitation span:last-child{display:none}.cast-layout .mood-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;padding:6px 0 18px}.cast-art{height:155px;margin-bottom:0}.cast-art:before{inset:26% 9% 5%}.cast-layout .mood-choices .cast-art img{width:100%;height:155px;max-width:190px}.cast-layout .mood-choices button{gap:2px;padding:0 0 4px}.cast-layout .mood-choices button>span{font-size:1rem;padding:3px 14px}.cast-layout .mood-choices small{font-size:.875rem}.cast-details{grid-template-columns:1fr;gap:18px;padding:22px;border-radius:20px}.cast-layout .friend-note{border:0;padding:0}.cast-layout .friend-note h3{font-size:1.9rem;margin:5px 0 10px}.cast-layout .friend-note>p{font-size:1rem}.cast-companion{border-left:0;border-top:1px solid #51352920;padding:16px 0 0}.cast-quote{font-size:1.125rem;margin-bottom:12px}.cast-layout .friend-picks>div{gap:14px}.cast-layout .friend-picks button{flex-direction:row;gap:8px;align-items:center}.cast-layout .friend-picks img{width:50px;height:55px}.cast-layout .friend-picks button>span,.cast-layout .friend-picks small{font-size:.875rem}.mood-world .mood-end{gap:5px}.mood-heading .heading-flower{margin-left:8px}}
@media(max-width:380px){.cast-art,.cast-layout .mood-choices .cast-art img{height:135px}.cast-details{padding:18px}.cast-layout .friend-picks>div{gap:10px}.cast-layout .friend-picks button{flex-direction:column;align-items:flex-start}.cast-layout .mood-choices small{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){.cast-art:before,.cast-layout .mood-choices .cast-art img{transition:none}.cast-layout .mood-choices button:hover img{translate:none}.cast-layout .mood-choices button[aria-pressed=true] img{scale:1}}

/* A compact bridge from the banner into the character world. */
.world-hero .welcome-strip{background:var(--cream);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px max(5%,calc((100% - 1116px)/2));border:0;border-bottom:1px solid #51352915}.world-hero .welcome-strip:after{display:none}.world-hero .welcome-strip .welcome-line{margin:0;color:var(--ink);font-size:1.125rem;font-weight:700;line-height:1.4}.welcome-line span{font-weight:400}.world-hero .welcome-strip .actions{margin:0;display:flex;align-items:center;gap:26px;flex-shrink:0}.world-hero .welcome-strip .pill{padding:10px 20px;font-size:.9375rem;border-radius:30px;background:var(--ink);border:1px solid var(--ink);box-shadow:none;min-height:44px}.world-hero .welcome-strip .hero-shop-link{font-size:.9375rem;color:var(--ink);border:0;padding:10px 0;min-height:44px;display:inline-flex;align-items:center}.world-hero .welcome-strip .hero-shop-link:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:760px){.world-hero .welcome-strip{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:16px 5% 18px}.world-hero .welcome-strip .welcome-line{font-size:1.0625rem}.world-hero .welcome-strip .actions{width:100%;justify-content:space-between;gap:16px;flex-wrap:nowrap}.world-hero .welcome-strip .pill{padding:9px 15px;font-size:.875rem}.world-hero .welcome-strip .hero-shop-link{font-size:.875rem}}

/* A shared soft landscape connects the original banner and its cast. */
.world-hero{background:transparent;position:relative}.world-hero .scene{z-index:0}.world-hero .welcome-strip{position:relative;z-index:2;margin-top:-24px;padding-top:38px;padding-bottom:16px;background:#eef5df;border:0;border-radius:50% 50% 0 0 / 30px 30px 0 0;gap:20px}.world-hero .welcome-strip .welcome-line{color:#513529;font-size:1rem}.world-hero .welcome-strip .hero-shop-link{font-size:.875rem}.world-hero .welcome-strip .pill{font-size:.875rem;padding:9px 18px}.mood-world{position:relative;padding-top:28px;background:linear-gradient(180deg,#eef5df 0%,#f6f8e9 38%,#fefbf0 78%);overflow:visible}.mood-world .mood-heading{display:block;text-align:center;margin:0 auto 20px;max-width:760px}.mood-world .mood-heading .eyebrow{font-size:.875rem;letter-spacing:.06em;color:#735548}.mood-world .mood-heading h2{font-size:clamp(2.3rem,4.2vw,3.5rem);line-height:1.12;margin:8px 0 12px;transform:rotate(-1deg)}.mood-world .mood-heading p{display:block;margin:0 auto;color:#735548;font-size:1rem;max-width:420px;line-height:1.5}.mood-world .cast-invitation{display:none}.mood-world .cast-layout .mood-choices{padding-top:0;padding-bottom:24px}.mood-world .cast-details{background:color-mix(in srgb,var(--friend-paper) 68%,#fefbf0);border-radius:24px;transition:background .4s}.mood-world .mood-end{border:0}.mood-world .mood-choices button>span{font-weight:700}.mood-world .mood-heading .heading-flower{font-size:.6em}
@media(min-width:1600px){.world-hero .welcome-strip{margin-top:-30px;border-radius:50% 50% 0 0 / 36px 36px 0 0;padding-top:44px}}
@media(max-width:760px){.world-hero .welcome-strip{margin-top:-10px;border-radius:50% 50% 0 0 / 14px 14px 0 0;padding-top:24px;padding-bottom:12px;gap:4px;align-items:center}.world-hero .welcome-strip .welcome-line{font-size:1rem;text-align:center}.world-hero .welcome-strip .actions{justify-content:center;gap:24px}.mood-world{padding-top:24px}.mood-world .mood-heading{margin-bottom:14px}.mood-world .mood-heading h2{font-size:2.25rem;margin:8px 0 10px}.mood-world .mood-heading p{display:block;font-size:1rem;max-width:310px}.mood-world .mood-heading .eyebrow{font-size:.875rem}.mood-world .cast-layout .mood-choices{padding-bottom:18px}.scene-note{bottom:5%}}
@media(min-width:761px){.scene-note{bottom:6%}}

/* Refined banner transition; original character selection styling retained. */
.world-hero .welcome-strip{margin-top:-28px;border-radius:48% 52% 0 0 / 36px 40px 0 0;background:linear-gradient(180deg,#e8f0d7 0%,#eef5df 90%);padding-top:42px;box-shadow:0 -1px 0 #ffffff40}.mood-world{background:linear-gradient(180deg,#eef5df 0%,#f1f6e3 20%,#f7f8ec 52%,#fefbf0 90%)}
@media(min-width:1600px){.world-hero .welcome-strip{margin-top:-32px;border-radius:48% 52% 0 0 / 40px 44px 0 0;padding-top:46px}}
@media(max-width:760px){.world-hero .welcome-strip{margin-top:-10px;border-radius:48% 52% 0 0 / 14px 16px 0 0;padding-top:24px}}

/* Hover and persistent selection share each character's own colour. */
.mood-world .cast-layout [data-friend='happy']{--cast-colour:#ffd995}.mood-world .cast-layout [data-friend='daisy']{--cast-colour:#ffcbd9}.mood-world .cast-layout [data-friend='dobby']{--cast-colour:#b9e1ff}.mood-world .cast-layout [data-friend='grumpurr']{--cast-colour:#d0e59c}.mood-world .cast-layout .mood-choices button .cast-art:before{background:var(--cast-colour);opacity:0;scale:.9}.mood-world .cast-layout .mood-choices button:hover .cast-art:before,.mood-world .cast-layout .mood-choices button:focus-visible .cast-art:before,.mood-world .cast-layout .mood-choices button[aria-pressed='true'] .cast-art:before{background:var(--cast-colour);opacity:1;scale:1}.mood-world .cast-layout .mood-choices button>span{border:0;background:none;color:var(--ink);border-radius:30px;padding:5px 18px}.mood-world .cast-layout .mood-choices button[aria-pressed='true']>span{background:var(--ink);color:var(--cream)}
@media(max-width:760px){.mood-world .cast-layout .mood-choices button>span{padding:3px 14px}}

/* Recommendation columns can shrink independently without crossing labels. */
.cast-layout .friend-picks>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.cast-layout .friend-picks button{width:100%;min-width:0}
.cast-layout .friend-picks button>span{min-width:0;overflow-wrap:anywhere}

/* Every character-owned design remains browsable without stretching the introduction. */
.cast-layout .friend-picks :is(#friend-recommendations,[data-balance-id="friend-recommendations"]){max-height:92px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:4px 8px 4px 2px;align-content:start;gap:16px 12px}
.cast-layout .friend-picks :is(#friend-recommendations,[data-balance-id="friend-recommendations"]) button{flex-direction:row;align-items:center;min-height:70px;text-align:left;border-radius:10px;padding:4px}
.cast-layout .friend-picks :is(#friend-recommendations,[data-balance-id="friend-recommendations"]) button:hover{background:#ffffff66}
.cast-layout .friend-picks :is(#friend-recommendations,[data-balance-id="friend-recommendations"]) img{width:58px;height:64px;object-fit:contain}
.cast-layout .friend-picks :is(#friend-recommendations,[data-balance-id="friend-recommendations"]) button>span{font-size:.8125rem;line-height:1.4}
@media(max-width:1000px){.cast-layout .friend-picks :is(#friend-recommendations,[data-balance-id="friend-recommendations"]){grid-template-columns:1fr}}
@media(max-width:760px){.cast-layout .friend-picks :is(#friend-recommendations,[data-balance-id="friend-recommendations"]){max-height:92px}.cast-layout .friend-picks :is(#friend-recommendations,[data-balance-id="friend-recommendations"]) button{flex-direction:row;align-items:center}}

@media(min-width:761px){.cast-layout .friend-picks :is(#friend-recommendations,[data-balance-id="friend-recommendations"]){grid-template-columns:repeat(2,minmax(0,1fr))}}
