/* Soul and his friends use the original felt artwork and the site's existing palette. */
.sdr .soul-welcome{position:absolute;z-index:3;right:clamp(100px,12vw,240px);bottom:75px;width:clamp(240px,24vw,350px);display:flex;flex-direction:column;align-items:center;pointer-events:auto}
.sdr .soul-speech{font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.5;padding:14px 20px;border-radius:22px 22px 5px 22px;background:rgba(var(--bg-rgb),.76);color:var(--cream);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px rgba(var(--ink-rgb),.2);transform:rotate(-3deg);max-width:290px;min-height:74px}
.sdr .soul-speech strong{font-weight:500;color:var(--neon)}
.sdr .soul-character{border:0;background:transparent;display:block;position:relative;cursor:pointer;touch-action:manipulation;width:100%;border-radius:24px;isolation:isolate;-webkit-tap-highlight-color:transparent}
.sdr .soul-character img{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 16px 20px rgba(var(--bg-rgb),.25));transition:transform .35s ease;transform-origin:50% 95%}
.sdr .soul-host{margin-top:-5px}
.sdr .soul-touch{display:block;text-align:center;font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:.06em;color:var(--cream);opacity:.7;padding:8px 4px}
.sdr .soul-character:focus-visible{outline:2px solid var(--neon);outline-offset:5px}
.sdr .soul-character:active img{transform:translateY(2px)}
.sdr .soul-character.is-happy img{animation:soul-hello .7s ease both}
.sdr .soul-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--neon);font-weight:600;margin-bottom:14px}
.sdr .soul-portrait{position:relative;min-width:0}
.sdr .soul-portrait::before{content:'';position:absolute;width:90%;height:65%;left:5%;top:20%;background:radial-gradient(ellipse,rgba(155,127,212,.12),transparent 70%);pointer-events:none}
.sdr .soul-reply{position:absolute;z-index:4;left:0;right:-30px;bottom:100%;font-size:13px;line-height:1.5;background:var(--bg-2);color:var(--cream);padding:14px 16px;border-radius:18px 18px 18px 4px;box-shadow:inset 0 0 0 1px rgba(var(--ink-rgb),.2);opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;pointer-events:none}
.sdr .soul-reply:not(:empty){opacity:1;transform:translateY(0)}
@media (hover:hover){.sdr .soul-character:hover img{transform:translateY(-5px)}.sdr .soul-character:hover .soul-touch{opacity:1}}
@keyframes soul-hello{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-8px) rotate(-3deg)}70%{transform:translateY(-3px) rotate(2deg)}}
@keyframes soul-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:no-preference){.sdr [data-soul-reveal].soul-arrived{animation:soul-arrive .65s ease both}}
@media (prefers-reduced-motion:reduce){.sdr .soul-character img,.sdr .soul-reply{animation:none!important;transition:none!important;transform:none!important}}

/* Each friend lives in its own existing section, in normal document flow. */
.sdr .soul-welcome{width:205px;right:clamp(100px,12vw,210px);bottom:45px}
.sdr .soul-speech{font-size:13px;padding:12px 16px;min-height:0;width:240px;max-width:none}
.sdr .soul-companion{--friend-accent:var(--neon);display:flex;align-items:center;gap:20px;max-width:430px;position:relative;font-family:'DM Sans',sans-serif;text-align:left}
.sdr .soul-companion .soul-portrait{width:135px;flex:0 0 135px}
.sdr .soul-companion .soul-touch{font-size:10px;color:inherit;opacity:.75}
.sdr .soul-companion-copy{max-width:240px}
.sdr .soul-companion-copy .soul-eyebrow{color:var(--friend-accent);font-size:11px;letter-spacing:.12em;margin-bottom:10px}
.sdr .soul-companion-copy>p:last-child{font-size:20px;line-height:1.35;letter-spacing:-.025em;font-weight:500;text-wrap:balance;color:inherit}
.sdr .soul-lotti{--friend-accent:#E6AF80}
.sdr .soul-sunny{--friend-accent:#E8BE69}
.sdr .soul-bruno{--friend-accent:#86C1DE}
.sdr .soul-arko{--friend-accent:#496F60}
.light .sdr .soul-lotti{--friend-accent:#9A5638}
.light .sdr .soul-sunny{--friend-accent:#896018}
.light .sdr .soul-bruno{--friend-accent:#396D8B}
.sdr .soul-tour-intro{max-width:430px}
.sdr .soul-tour-intro>.mono{margin-bottom:24px}
.sdr .soul-tour-intro .soul-companion{gap:16px}
.sdr .soul-tour-intro .soul-portrait{width:110px;flex-basis:110px}
.sdr .wk-copy>.soul-companion{margin-top:32px}
.sdr .soul-places-intro{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:30px}
.sdr .soul-places-intro .soul-companion{flex:0 1 400px}
.sdr .soul-places-intro .soul-portrait{width:160px;flex-basis:160px}
.sdr .plus-copy>.soul-companion{margin-top:28px}
.sdr .soul-companion .soul-reply{width:230px;left:0;right:auto;font-size:13px;line-height:1.5}
@media (min-width:700px) and (max-width:1100px){.sdr .soul-welcome{width:175px;right:145px;bottom:45px}.sdr .soul-speech{width:210px}.sdr .soul-places-intro{align-items:flex-start}.sdr .soul-places-intro .soul-companion{flex-direction:column;gap:5px;flex-basis:210px}.sdr .soul-places-intro .soul-portrait{flex-basis:auto}}
@media (max-width:699px){
.sdr .soul-welcome{position:relative;right:auto;bottom:auto;width:100%;display:grid;grid-template-columns:minmax(0,1fr) 115px;gap:14px;align-items:center;padding:0 28px 22px;margin-top:0}
.sdr .soul-speech{width:auto;max-width:240px;font-size:12px;padding:12px 14px;transform:rotate(-2deg)}
.sdr .soul-host{margin:0}.sdr .soul-host .soul-touch{font-size:9px;padding-top:0}.light .sdr .soul-host .soul-touch{color:#1C2532}
.sdr .soul-companion{gap:16px;max-width:100%}.sdr .soul-companion .soul-portrait{width:105px;flex-basis:105px}
.sdr .soul-companion-copy>p:last-child{font-size:18px}.sdr .soul-companion-copy .soul-eyebrow{font-size:10px}
.sdr .soul-tour-intro{margin-top:20px}.sdr .soul-tour-intro>.mono{margin-bottom:16px}
.sdr .soul-places-intro{display:block;margin-bottom:24px}.sdr .soul-places-intro .soul-companion{margin-top:20px}.sdr .soul-places-intro .soul-portrait{width:120px;flex-basis:120px}
.sdr .soul-companion .soul-reply{width:210px}
}
@media (min-width:700px) and (max-width:1100px){.sdr .soul-places-intro{display:block}.sdr .soul-places-intro .soul-companion{flex-direction:row;max-width:400px;margin-top:24px;gap:20px}.sdr .soul-places-intro .soul-portrait{flex-basis:130px;width:130px}}

/* Host stays above the 240px hero fade, with room around the headline. */
.sdr .soul-welcome{width:330px;right:clamp(150px,18vw,340px);bottom:245px;display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:14px;align-items:center}
.sdr .soul-welcome .soul-host{width:155px;max-width:155px;margin:0}
.sdr .soul-welcome .soul-host img{width:155px;height:155px;max-width:155px;object-fit:contain}
.sdr .soul-welcome .soul-speech{width:auto;max-width:168px;padding:11px 13px;font-size:12px;line-height:1.45;transform:none;border-radius:16px 16px 4px 16px}
.sdr .soul-welcome .soul-touch{font-size:9px;letter-spacing:0;padding:5px 0}
/* Sunny sits between the app headline above and the Saturday headline below. */
.sdr .soul-tour-intro{position:relative;padding-bottom:38px}
.sdr .soul-tour-intro .soul-sunny{position:relative;top:48px}
@media(min-width:700px) and (max-width:1100px){.sdr .soul-welcome{right:145px;bottom:230px;width:300px;grid-template-columns:minmax(0,1fr) 140px}.sdr .soul-welcome .soul-host,.sdr .soul-welcome .soul-host img{width:140px;max-width:140px}.sdr .soul-welcome .soul-host img{height:140px}}
@media(max-width:699px){.sdr .soul-welcome{position:relative;right:auto;bottom:auto;width:310px;max-width:calc(100% - 40px);margin:0 auto 16px;padding:0;grid-template-columns:minmax(0,1fr) 125px}.sdr .soul-welcome .soul-host{width:125px;max-width:125px}.sdr .soul-welcome .soul-host img{width:125px;height:125px;max-width:125px}.sdr .soul-tour-intro{padding-bottom:12px}.sdr .soul-tour-intro .soul-sunny{top:auto;margin-top:30px}}

/* Sunny shares the title row, centered against both lines of the heading. */
.sdr .reel-head{align-items:center}
.sdr .soul-tour-title{display:flex;align-items:center;gap:32px;min-width:0}
.sdr .soul-tour-title h2{flex:none}
.sdr .soul-tour-title .soul-sunny{position:relative;top:auto;margin:0;gap:16px;max-width:350px}
.sdr .soul-tour-title .soul-portrait{width:110px;flex-basis:110px}
.sdr .soul-tour-title .soul-companion-copy{max-width:210px}
@media(max-width:1199px){.sdr .soul-tour-title{gap:24px}.sdr .soul-tour-title .soul-companion-copy{display:none}}
@media(max-width:699px){.sdr .soul-tour-title{width:100%;gap:12px;justify-content:space-between}.sdr .soul-tour-title h2{font-size:clamp(32px,8.6vw,44px)}.sdr .soul-tour-title h2 .l2{margin-left:20px}.sdr .soul-tour-title .soul-portrait{width:80px;flex-basis:80px}.sdr .soul-tour-title .soul-sunny{flex:0 0 80px}}

/* Sunny occupies the former introductory-copy position on the right. */
.sdr .reel-head>.soul-sunny{position:relative;top:auto;margin:0;gap:16px;max-width:350px}
.sdr .reel-head>.soul-sunny .soul-portrait{width:110px;flex-basis:110px}
.sdr .reel-head>.soul-sunny .soul-companion-copy{max-width:210px}
@media(max-width:699px){.sdr .reel-head>.soul-sunny{margin-left:auto;max-width:300px}.sdr .reel-head>.soul-sunny .soul-portrait{width:90px;flex-basis:90px}}

/* Mirror only Sunny’s artwork; keep text and greeting motion unchanged. */
.sdr .soul-sunny .soul-character img{scale:-1 1}

/* Closing invitation keeps the large logo and adds Soul beside the headline. */
.sdr .soul-end-copy{min-width:0;width:100%}
.sdr .soul-end-kicker{display:inline-block;filter:none;padding-right:.15em}
.sdr .soul-end-heading{display:flex;align-items:center;gap:20px;margin:6px 0 12px}
.sdr .soul-end-heading h2{font-size:clamp(44px,5.4vw,80px);white-space:nowrap}
.sdr .soul-end-heading .soul-portrait{width:125px;flex:0 0 125px}
.sdr .soul-end-heading .soul-reply{width:200px;left:auto;right:0}
@media(max-width:899px){.sdr .soul-end-heading{justify-content:center}}
@media(max-width:699px){.sdr .soul-end-heading{gap:12px}.sdr .soul-end-heading h2{font-size:clamp(36px,9.5vw,52px)}.sdr .soul-end-heading .soul-portrait{width:100px;flex-basis:100px}}

/* Soul actively invites visitors, with a visible speech bubble and joyful pose. */
.sdr .soul-end-heading .soul-end-invite{width:160px;flex-basis:160px;display:flex;flex-direction:column;align-items:center;gap:12px}
.sdr .soul-end-invite .soul-reply{position:relative;inset:auto;opacity:1;transform:none;width:180px;padding:12px 14px;border-radius:18px 18px 4px 18px;font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.45;background:rgba(var(--ink-rgb),.06);color:var(--cream);box-shadow:inset 0 0 0 1px rgba(var(--ink-rgb),.15)}
.sdr .soul-end-invite .soul-reply strong{color:var(--neon);font-weight:600}
.sdr .soul-end-invite .soul-character{width:145px}
@media(prefers-reduced-motion:no-preference){.sdr .soul-end-invite.soul-arrived img{animation:soul-hello .7s ease .35s both}}
@media(max-width:699px){.sdr .soul-end-heading .soul-end-invite{width:135px;flex-basis:135px}.sdr .soul-end-invite .soul-reply{width:145px;font-size:12px;padding:10px 12px}.sdr .soul-end-invite .soul-character{width:120px}}
