.welcome-page{--welcome-green:#6a4527;--welcome-gold:#91662f;--welcome-cream:#faf5e9;--welcome-line:#dedbcb}.welcome-page .rail{display:none}.welcome-page .workspace{grid-template-columns:minmax(0,1fr)}.welcome-page main{max-width:1600px;padding:0 38px 30px}.welcome-page .footer{background:var(--welcome-cream);color:#697064}.welcome-topline{display:flex;justify-content:space-between;gap:20px;padding:21px 0;color:#707768;font-size:11px;letter-spacing:.04em;border-bottom:1px solid var(--border)}.welcome-topline a{color:var(--welcome-green);text-decoration:none;font-weight:650}.companion-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.95fr);gap:50px;align-items:center;padding:34px 0 28px}.welcome-eyebrow{font-size:10px;font-weight:750;letter-spacing:.16em;color:var(--welcome-gold);margin:0 0 17px}:root .welcome-page .companion-intro h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(38px,calc(4.6*var(--vw)),70px);line-height:1.03;letter-spacing:-.055em;color:var(--welcome-green);margin:0 0 20px}:root .welcome-page .companion-intro h1 em{color:var(--welcome-gold);font-weight:400}.welcome-lead{max-width:380px;font-size:14px;line-height:1.8;color:#677160;margin:0}.guide-world{position:relative;max-width:440px;margin:20px auto 0;height:350px;overflow:hidden;border-radius:45% 45% 20px 20px;background:#f8e9cc}.guide-world>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 27%}.guide-note{position:absolute;left:14px;bottom:20px;padding:11px 15px;background:#fffcf1ed;border:1px solid #ffffff80;border-radius:12px;font-size:11px;color:#6b5a48;transform:rotate(-4deg);box-shadow:0 5px 18px #574a1510}.guide-note>span{color:#a77b38;margin-right:6px}.guide-name{position:absolute;right:20px;top:24px;color:#5a3f28;font:italic 24px Georgia,serif;transform:rotate(8deg)}.guide-name>span{color:#b2843a}.companion-chat{background:#fffdf7;border:1px solid var(--welcome-line);border-radius:26px;padding:23px;box-shadow:0 14px 50px #34462c0c;margin:0;min-width:0}.companion-chat-header{display:flex;align-items:center;gap:12px;padding-bottom:19px;border-bottom:1px solid #e9e6db}.companion-chat-header h2{font-size:16px;letter-spacing:-.025em;margin:0 0 4px;color:#5a3f28}.companion-chat-header p{font-size:11px;margin:0;color:#7b836e}.guide-portrait{width:46px;height:46px;overflow:hidden;flex:none;border-radius:50%;background:#f5e0b9}.guide-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 10%;transform:scale(2);transform-origin:50% 14%}.chat-messages{max-height:290px;overflow-y:auto;scroll-behavior:smooth;padding:20px 0 8px;display:flex;flex-direction:column;gap:12px}.chat-message{max-width:95%;padding:13px 16px;border-radius:3px 17px 17px 17px;background:#f5ecda;color:#5a3f28;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.message-author{font-size:10px;letter-spacing:.05em;font-weight:750;color:#7b825e}.chat-message p{margin:4px 0 0;white-space:pre-wrap}.chat-message.user-message{align-self:flex-end;background:#6a4527;color:#fff5df;border-radius:17px 3px 17px 17px}.onboarding-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 20px}.onboarding-choices>a{display:grid;grid-template-columns:24px 1fr;column-gap:6px;align-items:center;padding:15px 11px;border:1px solid #e9dcc3;border-radius:13px;text-decoration:none;color:#5a3f28;background:#f8f9f2}.onboarding-choices>a:hover{background:#f5ecda;border-color:#b09a7c}.onboarding-choices>a>span{grid-row:span 2;font-size:24px;color:#a27c3c}.onboarding-choices strong{font-size:12px}.onboarding-choices small{font-size:10px;color:#7a806b;line-height:1.6}.guide-topics{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0}.welcome-page .guide-topics button{font-size:10px;padding:6px 10px;line-height:1.5}.guide-composer{display:flex;align-items:center;gap:10px;border:1px solid #e9dcc3;background:#fafbf5;border-radius:15px;padding:7px 9px 7px 14px}.guide-composer textarea{resize:vertical;background:transparent;border:0;outline:none;margin:0;padding:5px 0;min-height:35px;max-height:100px;color:#5a3f28;font-size:12px}.guide-composer button{width:34px;height:34px;flex:none;padding:0;font-size:22px}.guide-fineprint{font-size:9px;line-height:1.7;text-align:center;color:#858878;margin:13px 0 0}.guide-status{font-size:11px;color:#806732;margin:8px 0 0;min-height:0}.guide-status:empty{display:none}.guide-account-actions{display:flex;gap:18px;font-size:12px;margin-top:14px}.guide-account-actions a{color:#6a4527}.chat-action{display:inline-block;margin:10px 10px 0 0;font-weight:700;color:#6a4527}.welcome-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0 5px;border-top:1px solid var(--border);color:#7a806d;font-size:10px}.welcome-bottom p{max-width:320px;text-align:center;margin:0}.welcome-bottom>span:first-child{color:#8a713e}.welcome-page .companion-launcher{display:none}
@media((min-width:901px) and (min-height:1438px)){:root body.welcome-page .workspace{grid-template-columns:minmax(0,1fr)}}
@media((max-width:1200px) or (max-height:1915px)){.companion-layout{gap:25px}.welcome-page main{padding:0 24px 25px}.companion-chat{padding:18px}.onboarding-choices{grid-template-columns:1fr}.guide-world{height:320px}}
@media((max-width:700px) or (max-height:1117px)){.welcome-page main{padding:0 18px 25px}.welcome-topline{font-size:9px;padding:16px 0}.welcome-topline>span{max-width:170px}.companion-layout{grid-template-columns:1fr;padding:28px 0;gap:25px}.welcome-eyebrow{font-size:9px}.companion-intro{text-align:center}.welcome-lead{margin:auto;max-width:330px}.guide-world{height:300px;max-width:330px;margin-top:20px}:root .welcome-page .companion-intro h1{font-size:49px}.onboarding-choices{grid-template-columns:1fr 1fr}.welcome-bottom{flex-wrap:wrap;justify-content:center}.welcome-bottom p{order:3;width:100%}.chat-messages{max-height:350px}}
@media(prefers-color-scheme:dark){.welcome-page{background:#eeeadd;color:#6a4527}.welcome-page .welcome-topline,.welcome-page .welcome-bottom{border-color:#d4d4bf}.welcome-page .guide-composer textarea{color:#5a3f28}.welcome-page .companion-chat .guide-fineprint{color:#737b66}}
@media(prefers-reduced-motion:reduce){.chat-messages{scroll-behavior:auto}}
.guide-language-label{display:block;font-size:11px;color:#6b5a48;margin-top:14px}.companion-chat select#guide-language{font-size:12px;margin:4px 0 8px;padding:7px 10px;background:#f5ecda;color:#5a3f28}.guide-draft{font-size:11px;line-height:1.6;border-left:3px solid #b7791f;padding:8px 10px;background:#fbf0d8;color:#735723}.guide-draft[hidden]{display:none}.guide-topics{gap:8px}.welcome-page .guide-topics button{font-size:12px;padding:9px 13px;min-height:40px}.guide-composer textarea::placeholder{color:#687361}

.guide-voice{font-size:11px;color:#6b5a48}.guide-voice label{font-size:11px}.guide-voice audio{width:100%;height:36px;margin:8px 0}.guide-voice p{font-size:10px}

.chat-messages[hidden],.guide-composer[hidden]{display:none}.voice-choice{display:inline-flex;gap:4px;align-items:center;padding:5px;border:1px solid #e9dcc3;border-radius:12px}.voice-choice a{display:inline-block;padding:8px 12px;color:#6a4527}.voice-choice [aria-disabled=true]{opacity:.4;pointer-events:none}

.voice-choice.is-speaking{outline:3px solid #b7791f;outline-offset:2px;background:#fbf0d8}#guide-start-voice{margin:8px 0;font-size:12px}#guide-start-voice[hidden]{display:none}
/* Companion home: one friend and the conversation, without the marketplace shell. */
:root body.welcome-page{background:#f8e8cc;overflow:hidden}
:root body.welcome-page .sidenav,:root body.welcome-page .sidebar-backdrop,:root body.welcome-page .rail,:root body.welcome-page .footer,.welcome-page .skip-link,.welcome-topline,.welcome-bottom{display:none}
:root body.welcome-page .workspace{margin:0;display:block;min-height:0}
:root body.welcome-page main{margin:0;padding:0;max-width:none;width:100%;height:100dvh}

.welcome-page .companion-layout{display:block;padding:0;height:100%;position:relative}
.welcome-page .companion-intro{position:absolute;inset:0;text-align:center}
.welcome-page .welcome-eyebrow,.welcome-page .companion-intro h1,.welcome-page .welcome-lead,.welcome-page .guide-note,.welcome-page .guide-name{display:none}
.welcome-page .guide-world{position:absolute;inset:0;max-width:none;width:100%;height:100%;margin:0;border-radius:0;background:#fff;overflow:hidden}
.welcome-page .afiwa-stage{position:absolute;top:0;left:50%;height:94%;aspect-ratio:2/3;transform:translateX(-50%);transform-origin:50% 90%;animation:afiwa-breathe 6s ease-in-out infinite;will-change:transform}.welcome-page .afiwa-stage>*{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}.welcome-page .afiwa-stage>video{opacity:0;transition:opacity .6s ease-in-out}.welcome-page .afiwa-stage>video.is-shown{opacity:1}.welcome-page .afiwa-stage.has-video>img,.welcome-page .afiwa-stage.has-rive>img{visibility:hidden}.welcome-page .afiwa-stage.has-video[data-state],.welcome-page .afiwa-stage.has-rive[data-state]{animation:none}.welcome-page .afiwa-stage>canvas.afiwa-jaw{pointer-events:none;-webkit-mask:radial-gradient(closest-side,#000 62%,transparent);mask:radial-gradient(closest-side,#000 62%,transparent)}.welcome-page .afiwa-stage[data-state=listening]{animation-name:afiwa-listening}.welcome-page .afiwa-stage[data-state=thinking]{animation:afiwa-thinking 3s ease-in-out infinite}.welcome-page .afiwa-stage.is-tapped[data-state]{animation:afiwa-tap .6s ease-out}.afiwa-mode-note{position:absolute;left:50%;top:12px;transform:translateX(-50%);padding:6px 11px;border-radius:9px;background:#fffcf1e6;color:#806732;font-size:11px;z-index:1}
/* A short, light fade where the scene meets the page; real footage needs no cream wash over it. */
.welcome-page .guide-world::after{content:"";position:absolute;inset:88% 0 0;background:linear-gradient(transparent,#fff);pointer-events:none}
.welcome-page .afiwa-stage[data-state=speaking]{animation:afiwa-speaking 2s ease-in-out infinite}
.welcome-page .companion-chat{position:absolute;bottom:max(15px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(610px,calc(100% - 32px));padding:13px 18px;background:#fffaf0ee;border:1px solid #ffffffb0;border-radius:24px;box-shadow:0 12px 45px #614d1620;backdrop-filter:blur(18px);max-height:47dvh;overflow-y:auto}
.welcome-page .companion-chat-header,.welcome-page .guide-language-label,.welcome-page .guide-fineprint,.welcome-page .onboarding-choices,.welcome-page .guide-account-actions,.welcome-page .guide-draft{display:none}
.welcome-page .companion-chat select#guide-language{display:inline-block;width:auto;max-width:150px;font-size:11px;padding:4px 8px;margin:0 0 4px;background:transparent;border:0}
.welcome-page .guide-voice{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px}
.welcome-page .guide-voice label{font-size:0}.welcome-page .guide-voice label input{width:16px;height:16px}
.welcome-page .guide-voice audio{width:min(280px,80%);height:30px;margin:0}
.welcome-page #guide-audio-status{margin:3px 0;font-size:10px;flex-basis:100%;text-align:center}
.welcome-page .chat-messages{max-height:110px;padding:0;margin:4px 0}
.welcome-page .chat-message{background:transparent;padding:0 5px;max-width:100%;text-align:center;font-size:14px;line-height:1.65}
.welcome-page .chat-message:not(:last-child),.welcome-page .message-author{display:none}
.welcome-page .guide-topics{justify-content:center;margin:9px 0;gap:8px}
.welcome-page .guide-topics button{font-size:11px;padding:8px 12px;min-height:38px}
.welcome-page .voice-choice{border-radius:999px}.welcome-page .voice-choice.is-speaking{background:#b7791f!important;color:white!important;outline:3px solid #e9cf9f;outline-offset:3px}
.welcome-page #guide-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.welcome-page .guide-composer{padding:4px 8px 4px 12px;margin-top:8px}
.welcome-page .guide-status{text-align:center}
@keyframes afiwa-breathe{0%,100%{transform:translateX(-50%) translateY(0) rotate(-.5deg)}50%{transform:translateX(-50%) translateY(-7px) rotate(.5deg)}}
@keyframes afiwa-speaking{0%,100%{transform:translateX(-50%) translateY(0) rotate(-.6deg)}50%{transform:translateX(-50%) translateY(-5px) rotate(.6deg)}}@keyframes afiwa-listening{0%,100%{transform:translateX(-50%) translateY(-3px) rotate(1.2deg)}50%{transform:translateX(-50%) translateY(-6px) rotate(1.6deg)}}@keyframes afiwa-thinking{0%,100%{transform:translateX(-50%) rotate(-1.4deg)}50%{transform:translateX(-50%) translateY(-3px) rotate(-.4deg)}}@keyframes afiwa-tap{0%{transform:translateX(-50%)}35%{transform:translateX(-50%) translateY(-14px) scale(1.02)}100%{transform:translateX(-50%)}}
/* Phones only (the screen itself, not the column): on a computer the video fills the column exactly. */
@media(max-width:600px){.welcome-page .afiwa-stage{height:80%;top:6%}.welcome-page .companion-chat{padding:11px 13px;bottom:max(12px,env(safe-area-inset-bottom));max-height:44dvh}}
@media(prefers-reduced-motion:reduce){.welcome-page .afiwa-stage,.welcome-page .afiwa-stage[data-state]{animation:none;transform:translateX(-50%)}}
/* Options stand in the scene beside Afiwa, just inside the right edge of her 2:3 frame (94% of the
   world's height tall, so 62.7cqh wide), and never closer than 16px to the screen edge. */
.welcome-page .guide-world{container-type:size}
.welcome-page .afiwa-options{position:absolute;z-index:2;top:16cqh;right:max(16px,calc(50cqw - 31.3cqh + 2.5cqh));max-height:50cqh;overflow-y:auto;padding:6px;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.welcome-page .afiwa-options .guide-topics,.welcome-page .afiwa-options #guide-links{display:flex;flex-direction:column;align-items:flex-end;gap:10px;margin:0}
:root body.welcome-page .afiwa-options .voice-choice{min-width:78px;min-height:46px;padding:10px 16px;font-size:15px;justify-content:center;background:#fffaf0e8;color:#6a4527;border:1px solid #ffffffc0;box-shadow:0 6px 18px #574a1526;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:afiwa-option-in .45s ease-out both}
:root body.welcome-page .afiwa-options .voice-choice:disabled,:root body.welcome-page .afiwa-options .voice-choice[aria-disabled=true]{opacity:.45}
.welcome-page .afiwa-options .voice-choice:nth-child(2){animation-delay:.08s}
.welcome-page .afiwa-options .voice-choice:nth-child(3){animation-delay:.16s}
.welcome-page .afiwa-options .voice-choice:nth-child(4){animation-delay:.24s}
.welcome-page .afiwa-options .voice-choice:nth-child(5){animation-delay:.32s}
.welcome-page .afiwa-options .voice-choice:nth-child(n+6){animation-delay:.4s}
.welcome-page .afiwa-options .voice-choice.is-speaking{transform:scale(1.08)}
@keyframes afiwa-option-in{from{opacity:0;transform:translateX(14px) scale(.96)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.welcome-page .afiwa-options .voice-choice{animation:none}}
.welcome-page .afiwa-options .voice-choice.is-landed{animation:afiwa-landed .7s ease-out}
@keyframes afiwa-landed{0%{box-shadow:0 0 0 0 #e9b44ccc}100%{box-shadow:0 0 0 16px #e9b44c00}}
/* No control pane: the language comes from the header's EN · FR · EWE switch, and the voice is always on.
   The pane appears only while the price calculator needs a number or shows its result. */
.welcome-page .companion-chat:not(:has(#guide-form:not([hidden]),#guide-messages:not([hidden]))){display:none}
.welcome-page .companion-chat .guide-voice{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.welcome-page .companion-chat .guide-fineprint{display:block;margin:6px 0 0;font-size:10px;text-align:center;color:#6b6a5c}
/* When the browser blocks sound until a tap, one big play button on the video starts her voice. */
:root body.welcome-page .guide-world .afiwa-start-voice{position:absolute;z-index:4;left:50%;top:46%;transform:translate(-50%,-50%);min-height:60px;padding:16px 28px;font-size:18px;font-weight:700;border-radius:999px;background:#7a502f;color:#fff8e8;border:3px solid #e9cf9f;box-shadow:0 14px 40px #3d2a1b55;animation:afiwa-start-pulse 2.4s ease-in-out infinite}
:root body.welcome-page .guide-world .afiwa-start-voice[hidden]{display:none}
@keyframes afiwa-start-pulse{50%{box-shadow:0 14px 40px #3d2a1b55,0 0 0 12px #e9cf9f44}}
/* Wait and error messages: a small notice at the top of the scene, only when there is one. */
.welcome-page .guide-world .guide-status{position:absolute;z-index:4;top:70px;inset-inline:0;margin-inline:auto;width:fit-content;max-width:calc(100% - 32px);padding:8px 14px;border-radius:12px;background:#fffaf0f2;color:#6a4527;font-size:13px;box-shadow:0 6px 18px #574a1526}
.welcome-page .guide-world .guide-status:empty{display:none}
@media(prefers-reduced-motion:reduce){:root body.welcome-page .guide-world .afiwa-start-voice{animation:none}}
/* Previous and Next step: round arrows in the bottom corners of Afiwa's frame (94% of the world's height tall). */
:root body.welcome-page .afiwa-steps .afiwa-step{position:absolute;z-index:2;bottom:calc(6cqh + 22px);width:62px;height:62px;min-width:0;padding:0;display:grid;place-items:center;border-radius:50%;background:#fffaf0e8;color:#7a502f;border:1px solid #ffffffc0;box-shadow:0 8px 22px #574a1530;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:afiwa-option-in .45s ease-out both}
:root body.welcome-page .afiwa-steps .afiwa-step-back{left:max(16px,calc(50cqw - 31.3cqh + 2.5cqh))}
:root body.welcome-page .afiwa-steps .afiwa-step-next{right:max(16px,calc(50cqw - 31.3cqh + 2.5cqh))}
:root body.welcome-page .afiwa-steps .afiwa-step svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
:root body.welcome-page .afiwa-steps .afiwa-step:disabled{opacity:.45}
.welcome-page .afiwa-steps .voice-choice.is-speaking{transform:scale(1.1)}
.welcome-page .afiwa-steps .voice-choice.is-landed{animation:afiwa-landed .7s ease-out}
:root body.welcome-page .afiwa-options a.voice-choice{text-decoration:none}
/* Play / pause: a round button at the bottom centre of Afiwa's frame, between the step arrows. */
/* The option buttons share one centre line down the column. */
:root body.welcome-page .guide-world .afiwa-options,:root body.welcome-page .guide-world .afiwa-options .guide-topics,:root body.welcome-page .guide-world .afiwa-options #guide-links{align-items:center}
/* The options column sits a little higher, still clear of the top line. */
:root body.welcome-page .guide-world .afiwa-options{top:max(11cqh,72px)}
/* The options column sits at the bottom right, just above the step arrows and play / pause (62px tall at
   6cqh + 22px from the bottom), and never reaches up into the top line. */
:root body.welcome-page .guide-world .afiwa-options{top:auto;bottom:calc(6cqh + 22px + 62px + 12px);max-height:calc(100% - 6cqh - 96px - 76px)}
/* Options as small title cards: a kente edge, the option's icon in a green circle with its gold number, and
   its title. The one she is saying turns mustard. During the presentation the cards not yet announced wait
   out of sight (keeping their place), and each pops up as she announces it. */
:root body.welcome-page .guide-world .afiwa-options .voice-choice.option-card{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:9px;width:186px;min-width:0;min-height:50px;padding:10px 12px 7px 8px;border:0;border-radius:14px;background:#fffaf0f4;color:#3d2a1b;text-align:left;text-decoration:none;font:700 12.5px/1.2 system-ui,sans-serif;box-shadow:0 8px 20px #574a1530;overflow:hidden;animation:none}
:root body.welcome-page .guide-world .afiwa-options .option-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:repeating-linear-gradient(90deg,#c8921e 0 9px,#7a502f 9px 13px,#b23a2b 13px 16px,#7a502f 16px 20px)}
:root body.welcome-page .guide-world .afiwa-options .option-card::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,#fff9 50%,transparent 65%);transform:translateX(-120%);pointer-events:none}
:root body.welcome-page .guide-world .afiwa-options .option-icon{flex:none;width:32px;height:32px;border-radius:50%;background:#7a502f;display:grid;place-items:center;box-shadow:inset 0 0 0 2px #e9cf9f}
:root body.welcome-page .guide-world .afiwa-options .option-icon svg{width:17px;height:17px;fill:none;stroke:#fff8e8;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
:root body.welcome-page .guide-world .afiwa-options .option-number{position:absolute;left:31px;top:7px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#c8921e;color:#fff;font:700 10px/16px system-ui,sans-serif;text-align:center;box-shadow:0 0 0 2px #fffaf0}
:root body.welcome-page .guide-world .afiwa-options .option-label{min-width:0;overflow-wrap:anywhere}
:root body.welcome-page .guide-world .afiwa-options .option-label:empty{display:none}
:root body.welcome-page .guide-world .afiwa-options.no-labels .voice-choice.option-card{width:auto;padding-right:10px}
:root body.welcome-page .guide-world .afiwa-options .voice-choice.option-card.is-speaking{background:#b7791f!important;color:#fff!important;outline:3px solid #e9cf9f;outline-offset:2px;transform:scale(1.06);transform-origin:right center}
:root body.welcome-page .guide-world .afiwa-options .voice-choice.option-card:disabled,:root body.welcome-page .guide-world .afiwa-options .voice-choice.option-card[aria-disabled=true]{opacity:.5}
:root body.welcome-page .guide-world .afiwa-options.presenting .voice-choice.option-card:not(.is-presented){visibility:hidden}
:root body.welcome-page .guide-world .afiwa-options .option-card.is-popping{animation:afiwa-option-pop .6s cubic-bezier(.2,1.45,.45,1)}
:root body.welcome-page .guide-world .afiwa-options .option-card.is-popping::after{animation:afiwa-option-shine 1s .2s ease-out}
@keyframes afiwa-option-pop{from{opacity:0;transform:translateX(24px) scale(.6)}to{opacity:1;transform:none}}
/* Room around the cards inside their scrolling panel, so the pop's overshoot, the presented card's growth and
   outline, and the landing glow are not cut off; the negative margin keeps the cards where they were. */
:root body.welcome-page .guide-world .afiwa-options{padding:20px;margin:-14px}
@keyframes afiwa-option-shine{to{transform:translateX(120%)}}
@media(prefers-reduced-motion:reduce){:root body.welcome-page .guide-world .afiwa-options .option-card.is-popping,:root body.welcome-page .guide-world .afiwa-options .option-card.is-popping::after{animation:none}}
/* When the browser blocks sound, Start listening takes the play / pause button's place at the bottom centre,
   always clear of Afiwa's face and the option cards. */
:root body.welcome-page .guide-world .afiwa-start-voice{top:auto;bottom:calc(6cqh + 22px);transform:translateX(-50%);min-height:62px;white-space:nowrap}
/* The bottom bar takes the strip under the video: the scene ends above it and the video fills the scene's
   height, so on a computer it is exactly as wide as the page column, and on a phone it fills the screen
   down to the bar, as in Reels. */
:root body.welcome-page .guide-world{bottom:0;height:auto}
:root body.welcome-page .afiwa-stage{top:0;height:100%}
/* The welcome page has the site's header, as on the market: the scene starts under it and ends at the bottom
   bar, and the video fills that height, exactly as wide as the page column. */
:root body.welcome-page main{height:calc(100dvh - var(--header-height,66px) - var(--nav-h))}
/* Afiwa's page: her video a rounded card on black, nothing over its top (no search, no name). */

:root body.welcome-page main{background:#000}
:root body.welcome-page .guide-world{inset:8px;width:auto;height:auto;border-radius:16px;overflow:hidden;box-shadow:0 10px 24px #0006}
/* A live call on the video: Talk to Afiwa (also Hang up), the consent card over her, captions above the buttons.
   During the call the guide's options, arrows and play give way; Hang up rings with her voice. */
.afiwa-call-clock:empty{display:none}
.welcome-page .guide-world.is-resumed .afiwa-options,.welcome-page .guide-world.is-resumed .afiwa-steps,.welcome-page .guide-world.is-calling .afiwa-options,.welcome-page .guide-world.is-calling .afiwa-steps,.welcome-page .guide-world.is-calling .afiwa-play,.welcome-page .guide-world.is-calling .afiwa-start-voice{display:none!important}
.welcome-page .guide-world .afiwa-call-card{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:min(360px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;padding:16px 18px;border-radius:16px;background:#fffaf0f8;color:#3d2a1b;font:14px/1.45 system-ui,sans-serif;text-align:left;box-shadow:0 14px 40px #3d2a1b55}
.welcome-page .guide-world .afiwa-call-card[hidden]{display:none}
.welcome-page .guide-world .afiwa-call-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;border-radius:16px 16px 0 0;background:repeating-linear-gradient(90deg,#c8921e 0 9px,#7a502f 9px 13px,#b23a2b 13px 16px,#7a502f 16px 20px)}
.welcome-page .guide-world .afiwa-call-card>strong{display:block;font-size:16px;margin-bottom:6px}
.welcome-page .guide-world .afiwa-call-card p{margin:0 0 8px}.welcome-page .guide-world .afiwa-call-minutes{color:#5d6657;font-size:13px}
.welcome-page .guide-world .afiwa-call-card label{display:flex;gap:8px;align-items:flex-start;font-size:13px;font-weight:400}.welcome-page .guide-world .afiwa-call-card input{margin-top:3px;flex:none}
.welcome-page .guide-world .afiwa-call-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;flex-wrap:wrap}
.welcome-page .guide-world .afiwa-call-overlay{position:absolute;z-index:4;left:50%;transform:translateX(-50%);bottom:calc(6cqh + 22px + 62px + 14px);width:min(520px,calc(100% - 24px));display:flex;flex-direction:column;gap:10px;pointer-events:none}
.welcome-page .guide-world .afiwa-captions{display:flex;flex-direction:column;gap:6px}
/* Her explanation of the option, heard again (welcome.js): a round button centred halfway between the picture of the
   next screen and her captions; welcome.js sets its top as they change. */
:root body.welcome-page .guide-world .afiwa-replay{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;min-width:0;height:44px;min-height:0;padding:0;border-radius:50%;background:#fffaf0e8;color:#7a502f;border:1px solid #ffffffc0;box-shadow:0 8px 22px #574a1530;cursor:pointer}
:root body.welcome-page .guide-world .afiwa-replay svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
:root body.welcome-page .guide-world .afiwa-replay:focus-visible{outline:3px solid #e9cf9f;outline-offset:2px}
:root body.welcome-page .guide-world .afiwa-replay[hidden]{display:none}
/* The option's own buttons while she explains it, such as the signup form. */
.welcome-page .guide-world .afiwa-call-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.welcome-page .guide-world .afiwa-call-links:empty{display:none}
.welcome-page .guide-world .afiwa-call-links a{pointer-events:auto;display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:999px;background:#7a502f;color:#fff8e8;border:2px solid #e9cf9f;font:700 15px/1.2 system-ui,sans-serif;text-decoration:none;box-shadow:0 8px 22px #3d2a1b40}
.welcome-page .guide-world .afiwa-call-links a:focus-visible{outline:3px solid #e9cf9f;outline-offset:2px}
.welcome-page .guide-world .afiwa-captions p{margin:0;padding:7px 12px;border-radius:12px;background:#3d2a1bd9;color:#fff8e8;font:15px/1.4 system-ui,sans-serif;text-align:center}
.welcome-page .guide-world .afiwa-captions p.from-you{background:#fffaf0e8;color:#3d2a1b}
.welcome-page .guide-world .afiwa-captions small{display:block;font-size:11px;opacity:.75}
/* Main menu: back to her options, shown only while they are away (a topic, a call, a return from its link). At the
   video's bottom right, on the line of play and Hang up; above the Next step arrow when the guide shows one there. */
:root body.welcome-page .guide-world .afiwa-menu{position:absolute;z-index:4;bottom:calc(6cqh + 31px);right:max(16px,calc(50cqw - 31.3cqh + 2.5cqh));display:none;align-items:center;gap:8px;min-width:0;min-height:44px;padding:8px 16px 8px 12px;border-radius:999px;background:#fffaf0e8;color:#7a502f;border:1px solid #ffffffc0;font:700 14px/1 system-ui,sans-serif;box-shadow:0 8px 22px #574a1530;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
:root body.welcome-page .guide-world.in-topic .afiwa-menu,:root body.welcome-page .guide-world.is-calling .afiwa-menu,:root body.welcome-page .guide-world.is-resumed .afiwa-menu{display:inline-flex}
:root body.welcome-page .guide-world.in-topic:has(.afiwa-step-next) .afiwa-menu{bottom:calc(6cqh + 22px + 62px + 12px)}
/* A narrow video has no room for its name beside Hang up: the icon alone, still named for screen readers. */
@container (max-width:480px){:root body.welcome-page .guide-world .afiwa-menu{width:44px;padding:0;justify-content:center}:root body.welcome-page .guide-world .afiwa-menu span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
:root body.welcome-page .guide-world .afiwa-menu svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
/* The bottom row's measures, which the round buttons and windows inside the video still go by (Talk itself is in
   the actions column beside the video now). With the Next arrow or Start listening in that corner, they go up a row. */
:root body.welcome-page .guide-world{--talk-edge:max(16px,calc(50cqw - 28.8cqh));--talk-w:min(150px,calc(50cqw - 41px - var(--talk-edge)));--talk-at:33px}
:root body.welcome-page .guide-world:has(.afiwa-step-next,.afiwa-start-voice:not([hidden])){--talk-at:calc(6cqh + 96px)}
/* No play button while she plays: a tap on the video pauses, and only then a big play button shows in its middle. */
:root body.welcome-page .guide-world{cursor:pointer}
:root body.welcome-page .guide-world .afiwa-play{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:84px;height:84px;min-width:0;padding:0;display:none;place-items:center;border-radius:50%;background:#3d2a1bb3;color:#fff8e8;border:2px solid #e9cf9fcc;box-shadow:0 12px 32px #0006;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:afiwa-play-in .25s ease-out}
:root body.welcome-page .guide-world.is-paused .afiwa-play{display:grid}
:root body.welcome-page .guide-world .afiwa-play svg{width:38px;height:38px;margin-left:5px;fill:currentColor}
:root body.welcome-page .guide-world .afiwa-play:focus-visible{outline:3px solid #e9cf9f;outline-offset:3px}
@keyframes afiwa-play-in{from{opacity:0;transform:translate(-50%,-50%) scale(.7)}}
@media(prefers-reduced-motion:reduce){:root body.welcome-page .guide-world .afiwa-play{animation:none}}
/* A small copy of the window her option leads to, in the middle of the video, above her captions and buttons, while she
   explains it (_afiwa_preview.html): the same black title bar, card, fields and buttons as the real page, in the site's own
   colours (site.css), whose fields type themselves in and whose buttons are pressed, one part a second. */
.welcome-page .guide-world .afiwa-preview{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:min(232px,calc(100cqw - 32px));pointer-events:none}
.welcome-page .guide-world .afiwa-preview[data-show=""]{display:none}
/* On a short video the tallest windows (the price calculator) would reach her captions: smaller there. */
@container (max-height:720px){.welcome-page .guide-world .afiwa-preview{zoom:.8}}
@container (max-height:560px){.welcome-page .guide-world .afiwa-preview{zoom:.62}}
.welcome-page .afiwa-preview .pv{display:none;margin:0;padding:0 0 6px;border-radius:14px;background:#000;color:var(--text);font:9.5px/1.3 system-ui,sans-serif;text-align:left;box-shadow:0 12px 32px #0008;overflow:hidden;animation:pv-in .45s ease-out}
.welcome-page .afiwa-preview .pv.is-shown{display:flex;flex-direction:column;gap:6px}
@keyframes pv-in{from{opacity:0;transform:translateY(8px) scale(.96)}}
.welcome-page .afiwa-preview  p{margin:0}
/* The window's title bar: white italic serif, a search glass at the left and a close cross at the right. */
.welcome-page .afiwa-preview .pv-bar{position:relative;padding:8px 26px 2px;color:#fff;font:italic 700 13px/1.2 Georgia,serif;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.welcome-page .afiwa-preview .pv-bar::after{content:"✕";position:absolute;right:9px;top:8px;font:400 11px/1.2 system-ui,sans-serif}

.welcome-page .afiwa-preview .pv-card{display:flex;flex-direction:column;gap:6px;margin:0 6px;padding:10px;border-radius:11px;background:var(--surface)}
.welcome-page .afiwa-preview .pv-title{margin:0 0 1px;font-size:15px;font-weight:750;letter-spacing:-.035em;line-height:1.15;color:var(--gold)}

.welcome-page .afiwa-preview .pv-field{display:flex;flex-direction:column;gap:2px;min-width:0}
.welcome-page .afiwa-preview .pv-field small{font-size:8.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.welcome-page .afiwa-preview .pv-field small i{font-style:normal;color:var(--danger)}
.welcome-page .afiwa-preview .pv-field b{position:relative;display:block;height:18px;padding:0 6px;border:1px solid var(--border);border-radius:6px;background:var(--field);font-weight:400;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:transparent;transition:border-color .3s,box-shadow .3s}
.welcome-page .afiwa-preview .pv-field.is-on b{color:var(--text)}
.welcome-page .afiwa-preview .pv-field.is-on b{animation:pv-type .6s steps(10) both}
.welcome-page .afiwa-preview .pv-field.is-now b{border-color:var(--gold);box-shadow:0 0 0 1.5px var(--gold)}
@keyframes pv-type{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.welcome-page .afiwa-preview .pv-field s{color:var(--muted)}

.welcome-page .afiwa-preview .pv-secret b::after{content:"👁";position:absolute;right:4px;color:var(--text);font-size:9px;filter:grayscale(1)}
/* Buttons: the site's dark green pill, full width in forms. */
.welcome-page .afiwa-preview .pv-button{position:relative;padding:6px 8px;border-radius:999px;background:var(--button-bg);color:var(--button-ink);font-weight:700;font-size:9.5px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* A press: the part dips and a finger taps it. */
.welcome-page .afiwa-preview :is(.pv-button).is-now{animation:pv-press .7s ease-out}
.welcome-page .afiwa-preview :is(.pv-button).is-now::after{content:"👆";position:absolute;right:2px;bottom:-6px;font-size:14px;animation:pv-finger .7s ease-out}
@keyframes pv-press{30%{transform:scale(.93);box-shadow:0 0 0 5px #b7791f55}}
@keyframes pv-finger{from{transform:translate(10px,12px);opacity:0}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.welcome-page .afiwa-preview *{animation:none!important}}
/* Without calls, Main menu keeps its place above the Next step arrow: a topic's options go above it. */
:root body.welcome-page .guide-world.in-topic:not(:has(#afiwa-talk)) .afiwa-options{bottom:calc(6cqh + 22px + 62px + 12px + 56px);max-height:calc(100% - 6cqh - 152px - 76px)}

/* The welcome again (her film from the greeting): a round green button with a gold ring, unlike the cream option
   cards, in Main menu's place at the bottom right; it shows while her options do, and Main menu once they are away. */
:root body.welcome-page .guide-world .afiwa-welcome{position:absolute;z-index:4;bottom:calc(6cqh + 31px);right:max(16px,calc(50cqw - 31.3cqh + 2.5cqh));display:grid;place-items:center;width:44px;min-width:0;height:44px;min-height:0;margin:0;padding:0;border-radius:50%;background:#7a502f;color:#fff8e8;border:2px solid #e9cf9f;box-shadow:0 8px 20px #3d2a1b55;cursor:pointer}
:root body.welcome-page .guide-world:is(.in-topic,.is-calling,.is-resumed) .afiwa-welcome{display:none}
:root body.welcome-page .guide-world .afiwa-welcome svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
:root body.welcome-page .guide-world .afiwa-welcome:hover{background:#5f3d22}
:root body.welcome-page .guide-world .afiwa-welcome:focus-visible{outline:3px solid #e9cf9f;outline-offset:2px}

/* Shopping: what she found, a numbered list of products over the video, between the picker and her captions; a
   tap opens one (a big store's in a new tab). The product she is talking about is ringed in gold. */
.welcome-page .guide-world .shop-results{margin:0;padding:0;border:0;position:absolute;z-index:4;top:104px;left:max(12px,var(--talk-edge,12px));right:max(12px,var(--talk-edge,12px));max-height:calc(100% - 104px - var(--talk-at,33px) - 62px - 120px);display:flex;flex-direction:column;border-radius:16px;background:#fffaf0f2;box-shadow:0 12px 32px #3d2a1b55;overflow:hidden;color:#3d2a1b;font:13px/1.3 system-ui,sans-serif}
.welcome-page .guide-world .shop-results[hidden]{display:none}
.welcome-page .guide-world .shop-results header{display:flex;align-items:baseline;gap:8px;padding:9px 12px;background:#7a502f;color:#fff8e8}
.welcome-page .guide-world .shop-results header strong{font-size:14px}
.welcome-page .guide-world .shop-results header span{font-size:12px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.welcome-page .guide-world .shop-list{list-style:none;margin:0;padding:6px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.welcome-page .guide-world .shop-list a{position:relative;display:flex;align-items:center;gap:10px;padding:6px 8px 6px 6px;border-radius:12px;background:#fff;color:inherit;text-decoration:none;border:2px solid transparent}
.welcome-page .guide-world .shop-list li.is-focus a{border-color:#c8921e;box-shadow:0 0 0 3px #e9cf9f88}
.welcome-page .guide-world .shop-list em{position:absolute;left:2px;top:2px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#c8921e;color:#fff;font:700 11px/18px system-ui,sans-serif;text-align:center;font-style:normal}
.welcome-page .guide-world .shop-list img{flex:none;width:56px;height:56px;object-fit:contain;border-radius:8px;background:#fff}
.welcome-page .guide-world .shop-about{display:flex;flex-direction:column;gap:2px;min-width:0}
.welcome-page .guide-world .shop-about b{font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.welcome-page .guide-world .shop-about strong{color:#7a502f;font-size:14px}
.welcome-page .guide-world .shop-about small{color:#6b6b6b;font-size:11.5px}
/* While shopping, the preview of the market's own screens and the listening hint give way, and
   her captions keep to her latest words in two lines (she says them all; the products are on the screen). */
.welcome-page .guide-world.is-shopping :is(.afiwa-preview,.guide-status){display:none}
.welcome-page .guide-world.is-shopping .afiwa-captions p:not(:last-child){display:none}
.welcome-page .guide-world.is-shopping .afiwa-captions p:last-child span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.welcome-page .guide-world .shop-list a{text-align:left}

/* The cart: a round button with its count at the video's top right (below the page header), and its window in the
   place of the products, with − and + and ×, the total and Send to Walmart cart. */
.welcome-page .guide-world .shop-cart{margin:0;padding:0;border:0;position:absolute;z-index:5;top:110px;left:max(12px,var(--talk-edge,12px));right:max(12px,var(--talk-edge,12px));max-height:calc(100% - 110px - var(--talk-at,33px) - 62px - 90px);display:flex;flex-direction:column;border-radius:16px;background:#fffaf0f4;box-shadow:0 12px 32px #3d2a1b55;overflow:hidden;color:#3d2a1b;font:13px/1.3 system-ui,sans-serif}
.welcome-page .guide-world .shop-cart[hidden]{display:none}
.welcome-page .guide-world .shop-cart header{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 12px;background:#7a502f;color:#fff8e8}
.welcome-page .guide-world .shop-cart header span{flex:1;font-size:12px;opacity:.9}
:root body.welcome-page .guide-world .shop-cart button{min-width:0;min-height:0;padding:0;border:0;box-shadow:none;cursor:pointer}
.welcome-page .guide-world .shop-cart-list{list-style:none;margin:0;padding:6px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.welcome-page .guide-world .shop-cart-list li{display:flex;flex-direction:column;gap:4px;padding:6px;border-radius:12px;background:#fff}
.welcome-page .guide-world .shop-cart-item{position:relative;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;color:inherit;text-decoration:none;text-align:left}
.welcome-page .guide-world .shop-cart-item em{position:absolute;left:-2px;top:-2px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:#c8921e;color:#fff;font:700 10px/16px system-ui,sans-serif;text-align:center;font-style:normal}
.welcome-page .guide-world .shop-cart-item img{width:44px;height:44px;object-fit:contain;border-radius:6px;background:#fff}
.welcome-page .guide-world .shop-cart-item span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:600}
.welcome-page .guide-world .shop-cart-item strong{color:#7a502f}
.welcome-page .guide-world .shop-cart-amount{display:flex;align-items:center;justify-content:flex-end;gap:6px}
:root body.welcome-page .guide-world .shop-cart-amount button{width:28px;height:28px;border-radius:50%;background:#f5ecda;color:#3d2a1b;font:700 16px/1 system-ui,sans-serif}
:root body.welcome-page .guide-world .shop-cart-amount button:last-child{margin-left:6px;background:#f6e1dd;color:#8a3b2f}
.welcome-page .guide-world .shop-cart-amount b{min-width:18px;text-align:center}
.welcome-page .guide-world .shop-cart footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 10px 10px;border-top:1px solid #e9e2cf}
.welcome-page .guide-world .shop-cart-send{display:flex;flex-direction:column;gap:6px;width:100%}
.welcome-page .guide-world .shop-cart-to{display:block;padding:10px 14px;border-radius:999px;background:#c8921e;color:#fff;font:800 14px/1.2 system-ui,sans-serif;text-align:center;text-decoration:none}
.welcome-page .guide-world .shop-cart-to-walmart{background:#0071dc}
.welcome-page .guide-world .shop-cart-to-amazon{background:#232f3e;color:#ff9900}
.welcome-page .guide-world .shop-cart-note{color:#6b6b6b;font-size:11.5px;text-align:center}

/* The video has one button now: Talk to the assistant (Hang up during a talk), with the cart's when it holds
   something. Her options, the step arrows, Main menu, Welcome again and Start listening are gone from it. */
:root body.welcome-page:not(#none) .guide-world :is(.afiwa-options,.afiwa-steps,.afiwa-menu,.afiwa-welcome,.afiwa-start-voice){display:none!important}
:root body.welcome-page:not(#none) .guide-world{--talk-at:33px}  /* at the bottom: nothing below it to make room for */

/* The stores to shop at, a column of their logos inside the video, at its bottom left just above Talk to the
   assistant, the one being shopped at ringed in gold, its name showing beside it on hover (or keyboard focus). They
   give way during a talk (for her captions and the products) and to the first-time consent card. */
.welcome-page .shop-stores{--logo:70px;position:absolute;z-index:7;left:10px;bottom:calc(var(--footer) + 14px);display:grid;grid-template-columns:repeat(2,var(--logo));gap:10px;max-height:min(50vh,calc(4 * var(--logo) + 50px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:6px;-webkit-mask:linear-gradient(transparent,#000 22px);mask:linear-gradient(transparent,#000 22px)}
.welcome-page .shop-stores::-webkit-scrollbar{display:none}
@media (min-width:768px){.welcome-page .shop-stores{--logo:84px}}
/* The logos keep drifting while she and the person talk; only a window shown (the rule hiding them under .shop-results and the other windows) or the
   microphone's consent card hides them. */
.welcome-page:has(.afiwa-call-card:not([hidden])) .shop-stores{display:none}
:root body.welcome-page:not(#none) .store-button{position:relative;display:grid;place-items:center;width:56px;min-width:0;height:56px;min-height:0;padding:10px;border-radius:50%;border:2px solid #ffffffd9;background:#fff;box-shadow:0 8px 20px #0004;cursor:pointer}
:root body.welcome-page:not(#none) .store-button img{display:block;width:100%;height:100%;object-fit:contain}
:root body.welcome-page:not(#none) .store-home_depot{padding:calc(var(--logo) * .16)}  /* its square logo, whole inside the circle */
:root body.welcome-page .store-name{position:absolute;left:calc(100% + 10px);top:50%;translate:0 -50%;padding:6px 11px;border-radius:999px;background:#3d2a1bf2;color:#fff8e8;font:700 13px/1 system-ui,sans-serif;white-space:nowrap;box-shadow:0 6px 16px #0003;opacity:0;pointer-events:none;transition:opacity .15s}
:root body.welcome-page .store-button:is(:hover,:focus-visible) .store-name{opacity:1}
:root body.welcome-page:not(#none) .store-button[aria-pressed=true]{border-color:#e9cf9f;box-shadow:0 0 0 3px #c8921e,0 8px 20px #0004}
:root body.welcome-page .store-button:focus-visible{outline:3px solid #e9cf9f;outline-offset:2px}
@media (min-width:768px){  /* the video is a column with space below it: its bottom, then Talk's line, then the logos */
 .welcome-page .shop-stores{left:12px;bottom:calc(100% - 12px - min(var(--col) * 16 / 9, 100% - 32px) + var(--footer) + 6px)}
}
.welcome-page .guide-world .afiwa-call-card{z-index:8}
/* The products, and the cart in their place, fill the video's width from its top down to just above her latest
   words (two lines at most while shopping), which stay readable below them; the cart button sits at the right of
   their header, left of the page's × where it is over the video (a phone). */
:root body.welcome-page .guide-world :is(.shop-results,.shop-cart,.shop-product,.shop-reel){top:0;left:0;right:0;bottom:var(--footer);max-height:none;border-radius:0}
:root body.welcome-page .guide-world :is(.shop-results,.shop-cart,.shop-product,.shop-reel) header{min-height:58px;align-items:center;padding-right:56px}
/* Every window the app opens closes with its own × at its top right corner: light on the green headers, dark on a
   light card. On a phone the page's × sits on that corner, so it steps aside while a window is open. */
:root body.welcome-page:not(#none) .guide-world .window-close{position:absolute;z-index:2;top:11px;right:10px;display:grid;place-items:center;width:36px;min-width:0;height:36px;min-height:0;padding:0;border:1px solid #fff8e855;border-radius:50%;background:#ffffff22;color:#fff8e8;font:400 24px/1 system-ui,sans-serif;box-shadow:none;cursor:pointer}
:root body.welcome-page:not(#none) .guide-world .window-close:is(:hover,:focus-visible){background:#ffffff44}
:root body.welcome-page:not(#none) .guide-world .afiwa-call-card .window-close{top:8px;right:8px;width:32px;height:32px;border-color:#3d2a1b33;background:#3d2a1b10;color:#3d2a1b;font-size:22px}
.welcome-page .guide-world .afiwa-call-card>strong{display:block;padding-right:36px}

/* Actions beside the video:
   a white icon in a soft translucent circle, its name below. Level with the video's bottom: over its right side on a
   phone, outside it to the right on a computer. The music button (silence mode) is the first: its note crossed out while the background music is off. */
.welcome-page .video-actions{position:absolute;z-index:7;right:20px;bottom:calc(var(--footer) + 22px);display:flex;flex-direction:column;align-items:center;gap:14px}  /* on Talk's line, clear of the bottom bar's "How can I help you?" */
:root body.welcome-page:not(#none) .video-action{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;min-height:0;padding:0;background:none;border:0;box-shadow:none;color:#fff;font:600 11px/1 system-ui,sans-serif;text-shadow:0 1px 3px #000a;cursor:pointer}
:root body.welcome-page .video-action[hidden]{display:none}
:root body.welcome-page .video-action svg{box-sizing:content-box;width:24px;height:24px;padding:11px;border-radius:50%;background:#ffffff26;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
:root body.welcome-page .video-action:is(:hover,:focus-visible) svg{background:#ffffff40}
:root body.welcome-page .video-action:focus-visible{outline:none}
:root body.welcome-page .video-action:focus-visible svg{outline:2px solid #fff;outline-offset:2px}
:root body.welcome-page .video-action .video-action-slash{display:none;stroke:#fff;stroke-width:1.9}
/* The cart at the top of the column: on a phone, inside the video beside the page's × (and the windows' headers
   leave it room); on a computer, outside it level with its top (below). */
@media (max-width:767px){
 :root body.welcome-page .guide-world :is(.shop-results,.shop-cart,.shop-product,.shop-reel) header{padding-right:56px}
}
/* The cart's count, a gold badge on its circle. */
:root body.welcome-page .shop-cart-button{position:relative}
:root body.welcome-page .shop-cart-button b{position:absolute;top:-3px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#c8921e;color:#fff;font:800 11px/20px system-ui,sans-serif;text-align:center;text-shadow:none}
:root body.welcome-page .video-action[aria-pressed=true] .video-action-slash{display:inline}
@media (min-width:768px){
 .welcome-page .video-actions{right:auto;top:auto;left:calc(100% + 18px);bottom:calc(100% - 12px - min(var(--col) * 16 / 9, 100% - 32px) + 18px)}
}

/* A product opened in the app (welcome.js productShow): the products' window, over them, as the store's page would
   show it: photos side by side, the price, Add to cart and Buy at the store, then the details to scroll. */
.welcome-page .guide-world .shop-product{margin:0;padding:0;border:0;position:absolute;z-index:5;display:flex;flex-direction:column;background:#fffaf0;box-shadow:0 12px 32px #3d2a1b55;overflow:hidden;color:#3d2a1b;font:13px/1.4 system-ui,sans-serif}
.welcome-page .guide-world .shop-product[hidden]{display:none}
.welcome-page .guide-world .shop-product header{display:flex;gap:10px;padding:6px 12px;background:#7a502f;color:#fff8e8}
.welcome-page .guide-world .shop-product-store{font-size:14px}
.welcome-page .guide-world .shop-product-body{overflow-y:auto;padding:12px 14px 16px;text-align:left}
.welcome-page .guide-world .shop-product-photos{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -14px 10px;padding:0 14px}
/* Each photo waits in a shimmering frame with a spinner until it has arrived, then fades in. */
.welcome-page .guide-world .shop-product-photos .shop-photo{flex:none;position:relative;width:min(220px,70%);aspect-ratio:1;border-radius:12px;overflow:hidden;scroll-snap-align:start;background:linear-gradient(90deg,#f0ece3 0px,#faf7f0 60px,#f0ece3 120px) 0 0/480px 100% #f0ece3;animation:shop-shimmer 1.2s linear infinite}
.welcome-page .guide-world .shop-product-photos .shop-photo::after{content:"";position:absolute;inset:50% auto auto 50%;width:40px;height:40px;margin:-32px 0 0 -20px;border-radius:50%;border:4px solid #e2d6bf;border-top-color:#7a502f;border-right-color:#c8921e;animation:shop-spin .8s linear infinite}
/* Said in words under the spinner too, so a photo still on its way is never mistaken for an empty frame. */
.welcome-page .guide-world .shop-product-photos .shop-photo::before{content:"Loading photo…";position:absolute;left:0;right:0;top:calc(50% + 18px);text-align:center;font:600 12px/1.2 system-ui,sans-serif;color:#6b5a48}
.welcome-page .guide-world .shop-product-photos .shop-photo img{display:block;width:100%;height:100%;object-fit:contain;background:#fff;opacity:0;transition:opacity .3s}
.welcome-page .guide-world .shop-product-photos .shop-photo.is-loaded{background:#fff;animation:none}
.welcome-page .guide-world .shop-product-photos .shop-photo.is-loaded::after,.welcome-page .guide-world .shop-product-photos .shop-photo.is-loaded::before{display:none}
.welcome-page .guide-world .shop-product-photos .shop-photo.is-loaded img{opacity:1}
.welcome-page .guide-world .shop-product-photos .shop-photo.is-loaded{cursor:zoom-in}
.welcome-page .guide-world .shop-product-photos .shop-photo:focus-visible{outline:3px solid #c8921e;outline-offset:2px}
/* A photo tapped in the details: the item's photos, large, in the same window under the store's band, in place of
   the details, one at a time, scrolled up and down (photoViewer). */
.welcome-page .guide-world .shop-product.is-viewing .shop-product-body{display:none}
.welcome-page .guide-world .shop-viewer{flex:1;min-height:0;position:relative;display:flex;background:#fffaf0;animation:shop-arrive .2s ease-out}
.welcome-page .guide-world .shop-viewer-track{flex:1;display:flex;flex-direction:column;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain}
.welcome-page .guide-world .shop-viewer-track::-webkit-scrollbar{display:none}
.welcome-page .guide-world .shop-viewer-track figure{flex:0 0 100%;box-sizing:border-box;margin:0;padding:62px 68px 48px 14px;display:flex;align-items:center;justify-content:center;scroll-snap-align:start}
.welcome-page .guide-world .shop-viewer-track img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;background:#fff;box-shadow:0 2px 10px #3d2a1b1f}
:root body.welcome-page:not(#none) .guide-world .shop-viewer button{position:absolute;display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;background:#7a502f;color:#fff;font:400 28px/1 system-ui,sans-serif;box-shadow:0 4px 12px #3d2a1b40;cursor:pointer}
:root body.welcome-page:not(#none) .guide-world .shop-viewer button:is(:hover,:focus-visible){background:#c8921e;color:#fff}
:root body.welcome-page:not(#none) .guide-world .shop-viewer button:disabled{opacity:.3;cursor:default;background:#7a502f}
:root body.welcome-page:not(#none) .guide-world .shop-viewer .shop-viewer-close{top:12px;left:12px;width:auto;height:38px;display:flex;align-items:center;gap:2px;padding:0 16px 0 8px;border-radius:999px;font:700 14px/1 system-ui,sans-serif}
:root body.welcome-page:not(#none) .guide-world .shop-viewer .shop-viewer-prev{right:12px;top:50%;translate:0 calc(-100% - 6px)}
:root body.welcome-page:not(#none) .guide-world .shop-viewer .shop-viewer-next{right:12px;top:50%;translate:0 6px}
.welcome-page .guide-world .shop-viewer-count{position:absolute;bottom:12px;left:50%;translate:-50% 0;padding:4px 12px;border-radius:999px;background:#7a502f;color:#fff;font:700 13px/1.2 system-ui,sans-serif}
@keyframes shop-spin{to{transform:rotate(1turn)}}
.welcome-page .guide-world .shop-product h3{margin:0 0 6px;font:700 15px/1.3 system-ui,sans-serif;color:#3d2a1b}
.welcome-page .guide-world .shop-product-price{display:flex;align-items:baseline;gap:8px;margin:0 0 4px}
.welcome-page .guide-world .shop-product-price strong{font-size:20px;color:#7a502f}
.welcome-page .guide-world .shop-product-price s,.welcome-page .guide-world .shop-product-price small{color:#6b7468}
.welcome-page .guide-world :is(.shop-product-rating,.shop-product-stock,.shop-product-loading){margin:0 0 4px;color:#6b5a48;font-size:12px}
.welcome-page .guide-world .shop-product-loading{font-style:italic;display:flex;align-items:center;gap:8px}
.welcome-page .guide-world .shop-product-loading::before{content:"";flex:none;width:14px;height:14px;border-radius:50%;border:2px solid #d9cfbd;border-top-color:#7a502f;animation:shop-spin .8s linear infinite}
.welcome-page .guide-world .shop-product-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 6px}
:root body.welcome-page:not(#none) .guide-world :is(.shop-product-add,.shop-product-buy){flex:1 1 140px;min-width:0;min-height:0;padding:10px 14px;border-radius:999px;font:700 14px/1.2 system-ui,sans-serif;text-align:center;text-decoration:none;cursor:pointer;box-shadow:none}
/* Everywhere alike, as in the cart: Buy at the store in gold, Add to cart in white edged in green. */
:root body.welcome-page:not(#none) .guide-world .shop-product-add{border:2px solid #7a502f;background:#fff;color:#7a502f}
:root body.welcome-page:not(#none) .guide-world .shop-product-buy{border:2px solid #c8921e;background:#c8921e;color:#fff}
:root body.welcome-page .guide-world .shop-product section{margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.welcome-page .guide-world .shop-product h4{margin:14px 0 6px;font:700 13px/1.3 system-ui,sans-serif;color:#7a502f;text-transform:uppercase;letter-spacing:.04em}
.welcome-page .guide-world .shop-product ul{margin:0;padding-left:18px}
.welcome-page .guide-world .shop-product li{margin:0 0 5px}
.welcome-page .guide-world .shop-product dl{display:grid;grid-template-columns:minmax(90px,40%) 1fr;gap:4px 10px;margin:0}
.welcome-page .guide-world .shop-product dt{color:#6b7468}
.welcome-page .guide-world .shop-product dd{margin:0}
.welcome-page .guide-world .shop-product blockquote{margin:0 0 8px;padding:8px 10px;border-radius:10px;background:#fff}
.welcome-page .guide-world .shop-product blockquote p{margin:4px 0}
.welcome-page .guide-world .shop-product blockquote strong{color:#c8921e}
.welcome-page .guide-world .shop-product blockquote small{color:#6b7468}
/* The page's header is a clear strip over the top of the video: only its own buttons and links take taps there,
   so the products' header under it (Back, the cart) can be tapped. */
body.welcome-page header.topbar{pointer-events:none}
body.welcome-page header.topbar :is(a,button,input,select,textarea,label,summary,[role=button],[tabindex]:not([tabindex="-1"])){pointer-events:auto}
/* Photo mode (welcome.js showStill), the portrait one and a half times the store logos (84 and 70 px): her video hides, frozen, and her face and shoulders show still in a round
   portrait at the top centre of the window, on the window's own warm background. The portrait crops the picture as
   every assistant's is framed (add_assistant): the head in the upper left-centre of a 2:3 picture. */
.welcome-page .guide-world .afiwa-still{display:none}
.welcome-page .guide-world.is-still .afiwa-stage{visibility:hidden}
.welcome-page .guide-world.is-still .afiwa-still{display:flex;flex-direction:column;align-items:center;gap:6px;position:absolute;z-index:1;top:58px;left:50%;translate:-50% 0;width:min(88%,400px);text-align:center}
/* Above the assistant, what the app is for, in the welcome page's own voice: a serif headline with its
   gold italic turn, and "with your personal assistant" leading to their portrait and name. */
.welcome-page .guide-world .afiwa-still-intro{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0}
.welcome-page .guide-world .afiwa-still-title{color:#3d2a1b;font:400 27px/1.08 Georgia,serif;letter-spacing:-.03em}
.welcome-page .guide-world .afiwa-still-title em{color:#b7791f}
.welcome-page .guide-world .afiwa-still-with{margin:2px 0 6px;color:#6b7468;font:italic 400 16px/1.2 Georgia,serif}
@media (min-width:768px){.welcome-page .guide-world .afiwa-still-title{font-size:32px}}
@media (max-width:767px){.welcome-page .guide-world .afiwa-still-title em{display:block}}  /* its own line on a phone, not broken mid-phrase */
.welcome-page .guide-world .afiwa-still-photo{position:relative;display:block;width:105px;aspect-ratio:1;border-radius:50%;overflow:hidden;border:3px solid #fffaf0;box-shadow:0 10px 26px #3d2a1b55;background:#f5e0b9}
.welcome-page .guide-world .afiwa-still-name{color:#3d2a1b;font:400 18px/1.1 system-ui,sans-serif;letter-spacing:.01em}
@media (min-width:768px){.welcome-page .guide-world .afiwa-still-photo{width:126px}.welcome-page .guide-world .afiwa-still-name{font-size:20px}}
.welcome-page .guide-world .afiwa-still img{position:absolute;left:-30%;top:-15%;width:200%;max-width:none;height:auto}
/* On a phone the actions sit over the window: in photo mode, on its light background, they turn dark to stay clear. */
@media (max-width:767px){
 :root body.welcome-page:not(#none):has(.guide-world.is-still) :is(.video-action,.afiwa-talk){color:#3d2a1b;text-shadow:none}
}
/* The products' and a product's window in the colours of the store they come from, its logo in the header in
   place of its name (welcome.js storeHeader): Walmart blue with its yellow spark; Amazon's navy with its orange
   smile underneath and its logo on a white tile; Home Depot orange with its logo ringed in white. The cart
   (from any store) keeps the app's green. */
.welcome-page .guide-world .shop-logo{flex:none;width:34px;height:34px;object-fit:contain;align-self:center}
.welcome-page .guide-world .shop-logo[hidden],.welcome-page .guide-world header strong.is-logo{display:none}
.welcome-page .guide-world :is(.shop-results,.shop-product) header{transition:background-color .25s}
.welcome-page .guide-world :is(.shop-results,.shop-product)[data-store=amazon] header{background:#232f3e;box-shadow:inset 0 -3px #ff9900}
.welcome-page .guide-world :is(.shop-results,.shop-product) header .shop-query{font-size:13px;opacity:.95}
/* Every store's logo sits in a circle: in the windows' headers and the recent searches as on the video's buttons,
   each on its store's colour, the square Home Depot logo whole inside its orange circle. */
:root body.welcome-page .guide-world .shop-logo{box-sizing:border-box;border-radius:50%;padding:6px;object-fit:contain}
:root body.welcome-page .guide-world .shop-logo{width:40px;height:40px;padding:5px}
@keyframes afiwa-talk-glow{0%,100%{box-shadow:0 8px 22px #0006,0 0 0 0 #e9cf9f88}50%{box-shadow:0 8px 22px #0006,0 0 0 10px #e9cf9f00}}
@keyframes afiwa-live-dot{50%{opacity:.25}}
/* Talk to Afiwa, the microphone: the last of the actions beside the video, under Photo and Music, and set apart from
   them: a bigger disc in her green and gold with a gentle glow, its name below. During a call it is Hang up: a red
   layer fades in, the microphone spins into a cross, a ring swells with her voice and the time left shows under it. */
:root body.welcome-page:not(#none) .afiwa-talk{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;min-height:0;padding:0;border:0;background:none;box-shadow:none;color:#fff;font:700 11px/1.15 system-ui,sans-serif;text-align:center;text-shadow:0 1px 3px #000a;cursor:pointer}
:root body.welcome-page .afiwa-talk-mic{position:relative;isolation:isolate;display:grid;place-items:center;width:60px;height:60px;border-radius:50%;border:2px solid #e9cf9f;background:linear-gradient(135deg,#7a502f,#9a6a3a 60%,#b7791f);color:#fff8e8;box-shadow:0 8px 22px #0006;animation:afiwa-talk-glow 2.6s ease-in-out infinite;transition:transform .55s cubic-bezier(.3,1.5,.5,1),border-color .35s,box-shadow .12s}
:root body.welcome-page .afiwa-talk-mic::before{content:"";position:absolute;inset:-2px;z-index:-1;border-radius:50%;background:linear-gradient(135deg,#e5484d,#b42318 55%,#7a1a12);opacity:0;transition:opacity .35s}
:root body.welcome-page .afiwa-talk svg{grid-area:1/1;width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:opacity .25s,transform .35s}
:root body.welcome-page .afiwa-talk-off{opacity:0;transform:scale(.3)}
:root body.welcome-page .afiwa-talk:hover .afiwa-talk-mic{filter:brightness(1.1)}
:root body.welcome-page .afiwa-talk:focus-visible{outline:none}
:root body.welcome-page .afiwa-talk:focus-visible .afiwa-talk-mic{outline:3px solid #e9cf9f;outline-offset:3px}
:root body.welcome-page .afiwa-talk[aria-pressed=true] .afiwa-talk-mic{border-color:#fecdca;animation:none;transform:rotate(180deg);box-shadow:0 8px 22px #7a1a1266,0 0 0 calc(var(--voice,0)*12px) #f9706650}
:root body.welcome-page .afiwa-talk[aria-pressed=true] .afiwa-talk-mic::before{opacity:1}
:root body.welcome-page .afiwa-talk[aria-pressed=true] .afiwa-talk-on{opacity:0;transform:scale(.3)}
:root body.welcome-page .afiwa-talk[aria-pressed=true] .afiwa-talk-off{opacity:1;transform:none}
:root body.welcome-page .afiwa-talk-words{display:flex;flex-direction:column;align-items:center;gap:3px;max-width:86px}
:root body.welcome-page .afiwa-talk .afiwa-call-clock{display:flex;align-items:center;gap:4px;font:600 11px/1 system-ui,sans-serif;font-variant-numeric:tabular-nums}
:root body.welcome-page .afiwa-talk .afiwa-call-clock::before{content:"";width:6px;height:6px;border-radius:50%;background:#f97066;animation:afiwa-live-dot 1.2s ease-in-out infinite}
:root body.welcome-page .afiwa-talk .afiwa-call-clock:empty{display:none}
@media(prefers-reduced-motion:reduce){:root body.welcome-page .afiwa-talk-mic,:root body.welcome-page .afiwa-talk-mic::before,:root body.welcome-page .afiwa-talk svg{animation:none;transition:none}:root body.welcome-page .afiwa-talk .afiwa-call-clock::before{animation:none}}
/* With Talk outside the video, its captions sit low in the window, and the windows above them reach lower too. */
:root body.welcome-page .guide-world .afiwa-call-overlay{bottom:16px}
/* A phone has no room outside the video: the column stays over its right side, and during a call only Hang up shows
   there, her captions leaving it room. */
@media (max-width:767px){
 :root body.welcome-page:not(#none):has(.guide-world.is-calling) #afiwa-music{display:none}  /* the cart and history stay */
 :root body.welcome-page .guide-world .afiwa-call-overlay{left:12px;right:92px;width:auto;transform:none}
}
/* Every store in its own colours (shopping.STORES, on its button: data-color, --tile): its logo in a circle of its
   tile colour, on the video and in the recent searches, and its windows' headers in its colour (welcome.js
   storeHeader), the logo's circle ringed in white. Amazon's header keeps its orange smile underneath. */
:root body.welcome-page:not(#none) .store-button{width:var(--logo);height:var(--logo);padding:calc(var(--logo) * .2);background:var(--tile,#fff)}
/* A logo that is the store's name written out spans the circle, so its letters are as big as it allows. */
:root body.welcome-page:not(#none) .store-button.is-wordmark{padding:0 4px}
:root body.welcome-page:not(#none) .store-button:is(:hover,:focus-visible){z-index:2}
:root body.welcome-page .store-name{z-index:3}
.welcome-page .guide-world :is(.shop-results,.shop-product)[data-store] header{background:var(--store-color,#7a502f)}
.welcome-page .guide-world :is(.shop-results,.shop-product)[data-store=local] header{background:#7a502f}
:root body.welcome-page .guide-world :is(.shop-results,.shop-product) .shop-logo{background:var(--store-tile,#fff);box-shadow:0 0 0 2px #ffffffcc}
/* In a missing product picture's place, the store's logo, smaller, in the middle. */
.welcome-page .guide-world img.is-store-logo{box-sizing:border-box;padding:6px;object-fit:contain}
/* In photo mode the logos leave their scrolling columns to drift about the whole window. */
.welcome-page:has(.guide-world.is-still) .shop-stores{overflow:visible;max-height:none;-webkit-mask:none;mask:none}
@media (max-width:767px){.welcome-page:has(.guide-world.is-still) .shop-stores{--logo:56px}}  /* room to drift below the title on a phone */
:root body.welcome-page .store-name{display:none}
/* The window's header and footer. The footer, in both modes, is where she and the person talk: their last turns on the
   left, newest at the bottom, the microphone on the right; the windows, the store logos and the actions on a phone
   stay above it. In photo mode the header holds the assistant and what the app is for; the logos drift between the
   two (welcome.js drift). */
.welcome-page{--footer:144px}
@media (max-width:767px){.welcome-page{--footer:140px}}
.welcome-page .guide-world .afiwa-footer{position:absolute;z-index:6;left:0;right:0;bottom:0;height:var(--footer);background:#fff;border-top:1px solid #ebe5d6;box-shadow:0 -8px 24px #3d2a1b14}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{left:14px;right:104px;top:10px;bottom:10px;width:auto;transform:none;overflow-y:auto;scrollbar-width:thin;pointer-events:auto}
.welcome-page .guide-world .afiwa-footer .afiwa-captions{margin-top:auto;gap:6px}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p{display:block;max-width:94%;padding:6px 11px;font-size:14px;line-height:1.35;text-align:left}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p.from-afiwa{align-self:flex-start;border-bottom-left-radius:4px}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p.from-you{align-self:flex-end;border-bottom-right-radius:4px;background:#f1ece0;color:#3d2a1b}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p span{display:inline;-webkit-line-clamp:unset}
.welcome-page .guide-world .afiwa-footer .afiwa-captions:empty::before{content:attr(data-hint);color:#6b7468;font:italic 16px/1.35 Georgia,serif}
:root body.welcome-page:not(#none) .video-actions .afiwa-talk{position:absolute;right:16px;top:50%;translate:0 -50%;color:#3d2a1b;text-shadow:none}
/* Photo mode's header: the portrait with the name under it, and beside them, what the app is for. */
:root body.welcome-page .guide-world.is-still .afiwa-still{top:0;left:0;right:0;translate:none;width:auto;flex-direction:row;align-items:center;justify-content:center;gap:16px;padding:18px 20px 16px;background:#fff;border-bottom:1px solid #ebe5d6;text-align:left;z-index:2}
.welcome-page .guide-world .afiwa-still-who{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none}
:root body.welcome-page .guide-world .afiwa-still-intro{align-items:flex-start}
:root body.welcome-page .guide-world .afiwa-still-title em{display:block}
:root body.welcome-page .guide-world .afiwa-still-with{margin:2px 0 0}
@media (max-width:767px){
 :root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{bottom:22px}  /* clear of the bottom bar's bubble, which reaches over the window */
 :root body.welcome-page:not(#none) .video-actions .afiwa-talk{top:calc(50% - 8px)}
 :root body.welcome-page .video-actions .afiwa-talk-mic{width:44px;height:44px}
 :root body.welcome-page .guide-world.is-still .afiwa-still{padding:10px 56px 10px 12px;gap:10px;justify-content:flex-start}  /* beside the page's × */
 :root body.welcome-page .guide-world .afiwa-still-photo{width:52px}
 :root body.welcome-page .guide-world .afiwa-still-title{font-size:19px}
 :root body.welcome-page .guide-world .afiwa-still-title em{display:block}
}
/* Header and footer at about half their first height: a smaller portrait and microphone, the headline on one line on
   a computer, the conversation scrolling in the footer. */
:root body.welcome-page .guide-world.is-still .afiwa-still{padding:12px 18px;gap:14px}
:root body.welcome-page .guide-world .afiwa-still-photo{width:64px;border-width:2px}
:root body.welcome-page .guide-world .afiwa-still-who{gap:3px}
:root body.welcome-page .guide-world .afiwa-still-name{font-size:14px}
:root body.welcome-page .guide-world .afiwa-still-intro{gap:3px}
:root body.welcome-page .guide-world .afiwa-still-title{font-size:23px}
:root body.welcome-page .guide-world .afiwa-still-title em{display:inline}
:root body.welcome-page .guide-world .afiwa-still-with{font-size:14px}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{top:8px;bottom:8px}
:root body.welcome-page .video-actions .afiwa-talk-mic{width:48px;height:48px}
:root body.welcome-page .video-actions .afiwa-talk svg{width:22px;height:22px}
:root body.welcome-page .video-actions .afiwa-talk{gap:3px;font-size:10px}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions:empty::before{font-size:15px}
@media (max-width:767px){
 :root body.welcome-page .guide-world.is-still .afiwa-still{padding:10px 56px 10px 12px;gap:10px;justify-content:flex-start}  /* beside the page's × */
 :root body.welcome-page .guide-world .afiwa-still-photo{width:52px}
 :root body.welcome-page .guide-world .afiwa-still-name{font-size:13px}
 :root body.welcome-page .guide-world .afiwa-still-title{font-size:19px}
 :root body.welcome-page .guide-world .afiwa-still-title em{display:block}
 :root body.welcome-page .guide-world .afiwa-still-with{font-size:12px}
 :root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{bottom:22px}
 :root body.welcome-page .video-actions .afiwa-talk-mic{width:44px;height:44px}
}
/* The footer always shows the last two messages whole: no speaker names (the bubbles' sides say who), the person's at
   most two lines, hers her newest four lines (three on a phone), scrolling on as she speaks (welcome.js caption). */
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions small{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p.from-you span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p.from-afiwa span{display:block;max-height:calc(1.35em * 4);overflow-y:auto;scrollbar-width:none}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p.from-afiwa span::-webkit-scrollbar{display:none}
@media (max-width:767px){:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p.from-afiwa span{max-height:calc(1.35em * 3)}}
/* A window open over the main one (results, a product, the cart, recent searches): the store logos give way, and in photo
   mode the window fills the body between the header and the footer (--header, set by welcome.js from the header). */
.welcome-page:has(.guide-world :is(.shop-results,.shop-cart,.shop-product,.shop-reel):not([hidden])) .shop-stores{display:none}
:root body.welcome-page .guide-world.is-still :is(.shop-results,.shop-cart,.shop-product,.shop-reel){top:var(--header,0px)}
/* One at a time (welcome.js reelShow): a window like the others, the product window able to open over it; one item to
   a screen, snapping from one to the next as it scrolls, its place counted in the header. */
.welcome-page .guide-world .shop-reel{margin:0;padding:0;border:0;position:absolute;z-index:5;display:flex;flex-direction:column;background:#fffaf0;box-shadow:0 12px 32px #3d2a1b55;overflow:hidden;color:#3d2a1b;font:14px/1.35 system-ui,sans-serif}
.welcome-page .guide-world .shop-reel[hidden]{display:none}
.welcome-page .guide-world .shop-product{z-index:6}
.welcome-page .guide-world .shop-reel header{display:flex;align-items:center;gap:10px;padding:6px 12px;background:#7a502f;color:#fff8e8}
.welcome-page .guide-world .shop-reel header strong{font-size:14px}
.welcome-page .guide-world .shop-reel-count{font-size:12px;opacity:.85;font-variant-numeric:tabular-nums}
.welcome-page .guide-world .shop-reel-track{flex:1;min-height:0;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none}
.welcome-page .guide-world .shop-reel-track::-webkit-scrollbar{display:none}
/* Each item exactly one page of the body, all of it showing: the site's own card look for articles (its margin,
   border, background) is undone, nothing scrolls inside an item, and the picture takes what the words and buttons
   leave. Scrolling goes from one item to the next. */
.welcome-page .guide-world .shop-reel-slide{box-sizing:border-box;height:100%;margin:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;gap:8px;padding:12px 14px 14px}
.welcome-page .guide-world .shop-reel-slide>*{flex:none;min-width:0}
.welcome-page .guide-world .shop-reel-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* A phone's actions over the window (Music) step aside while a window is open, not to cover its buttons. */

.welcome-page .guide-world .shop-reel-picture{flex:1;min-height:0;display:grid;place-items:center;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1px #0000000d}
.welcome-page .guide-world .shop-reel-picture img{max-width:90%;max-height:100%;object-fit:contain}
.welcome-page .guide-world .shop-reel-about{display:flex;align-items:center;gap:10px}
.welcome-page .guide-world .shop-reel-about strong{font-size:16px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.welcome-page .guide-world .shop-reel-logo{flex:none;box-sizing:border-box;width:40px;height:40px;padding:6px;border-radius:50%;object-fit:contain;background:var(--tile,#fff);box-shadow:0 0 0 1px #0000001a}
.welcome-page .guide-world .shop-reel-price{display:flex;align-items:baseline;gap:8px;margin:0}
.welcome-page .guide-world .shop-reel-price strong{font-size:22px;color:#7a502f}
.welcome-page .guide-world :is(.shop-reel-price small,.shop-reel-meta){color:#6b7468;font-size:13px;margin:0}
.welcome-page .guide-world .shop-reel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
:root body.welcome-page:not(#none) .guide-world :is(.shop-reel-step,.shop-reel-remove,.shop-reel-go,.shop-reel-more,.shop-reel-add){min-width:0;min-height:0;box-shadow:none;cursor:pointer;font:700 14px/1 system-ui,sans-serif;text-decoration:none}
.welcome-page .guide-world .shop-reel-amount{display:flex;align-items:center;gap:6px;padding:4px;border-radius:999px;background:#f1ece0}
:root body.welcome-page:not(#none) .guide-world .shop-reel-step{width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#fff;color:#3d2a1b;font-size:18px}
:root body.welcome-page:not(#none) .guide-world :is(.shop-reel-remove,.shop-reel-more){padding:10px 14px;border:1px solid #d9d2c2;border-radius:999px;background:#fff;color:#3d2a1b}
:root body.welcome-page:not(#none) .guide-world .shop-reel-go{flex:1 1 140px;padding:12px 16px;border:0;border-radius:999px;background:#c8921e;color:#fff;text-align:center}
/* Remove, in the cart's slides and a cart item's details: a soft red, apart from the other buttons. */
:root body.welcome-page:not(#none) .guide-world .shop-reel-remove{border-color:#f3c4be;background:#fdecea;color:#b42318}
:root body.welcome-page:not(#none) .guide-world .shop-reel-remove:is(:hover,:focus-visible){border-color:#e5484d;background:#fbd9d5;color:#912018}
:root body.welcome-page:not(#none) .guide-world .shop-reel-add{padding:12px 16px;border:2px solid #7a502f;border-radius:999px;background:#fff;color:#7a502f}
/* On an item's page: Details on the price's line, at its right; Add to cart and Buy at the store side by side below,
   the same size, on one line. */
.welcome-page .guide-world .shop-reel-price{display:flex;align-items:center;justify-content:space-between;gap:10px}
.welcome-page .guide-world .shop-reel-price>span{display:flex;align-items:baseline;gap:8px;min-width:0}
:root body.welcome-page:not(#none) .guide-world .shop-reel-price .shop-reel-more{flex:none;padding:9px 14px}
.welcome-page .guide-world .shop-reel-pair{flex-wrap:nowrap}
:root body.welcome-page:not(#none) .guide-world .shop-reel-pair>:is(.shop-reel-add,.shop-reel-go){box-sizing:border-box;flex:1 1 0;min-width:0;height:46px;display:flex;align-items:center;justify-content:center;padding:0 10px;border:2px solid;border-radius:999px;font:700 15px/1 system-ui,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* As in the product window: Buy at the store in gold, Add to cart in white edged in green. */
:root body.welcome-page:not(#none) .guide-world .shop-reel-pair>.shop-reel-add{border-color:#7a502f;background:#fff;color:#7a502f}
:root body.welcome-page:not(#none) .guide-world .shop-reel-pair>.shop-reel-go{border-color:#c8921e;background:#c8921e;color:#fff}
@media (max-width:767px){:root body.welcome-page:not(#none) .guide-world .shop-reel-pair>:is(.shop-reel-add,.shop-reel-go){padding:0 6px;font-size:13px;letter-spacing:-.01em}}
/* The header's words on the left, set toward her, and her portrait with her name on the right: "with your personal
   assistant" ends right beside her. */
:root body.welcome-page .guide-world.is-still .afiwa-still{flex-direction:row-reverse}
:root body.welcome-page .guide-world .afiwa-still-intro{align-items:flex-start;text-align:left}
/* Above the headline, a small gold line: ONE PLACE · ONE VOICE. */
.welcome-page .guide-world .afiwa-still-eyebrow{color:#91662f;font:800 10px/1 system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}
@media (max-width:767px){.welcome-page .guide-world .afiwa-still-eyebrow{font-size:9px;letter-spacing:.14em}}
/* "with your personal assistant" on the same line as the assistant's name: the title's last line and the name share
   their baseline, the title sitting a little lower for it. */
:root body.welcome-page .guide-world.is-still .afiwa-still{align-items:flex-end;align-items:last baseline}
.welcome-page .guide-world .afiwa-still-pic{position:relative;display:block;line-height:0}
/* The cart by store: each store a section, its logo, name, count and subtotal on top, its items, and at its bottom its
   own button sending them to the person's cart there (or how to buy them at a store without one). */
.welcome-page .guide-world .shop-cart-list{display:flex;flex-direction:column;gap:12px}
.welcome-page .guide-world .shop-cart-group{list-style:none;display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:16px;background:#fff;box-shadow:0 2px 10px #3d2a1b14}
.welcome-page .guide-world .shop-cart-group-head{display:flex;align-items:center;gap:10px;padding:0 2px 4px;border-bottom:1px solid #efe9dc}
.welcome-page .guide-world .shop-cart-group-head .shop-reel-logo{width:34px;height:34px;padding:5px}
.welcome-page .guide-world .shop-cart-group-head strong{font-size:15px}
.welcome-page .guide-world .shop-cart-group-head small{margin-left:auto;color:#6b7468;font-size:12px;white-space:nowrap}
.welcome-page .guide-world .shop-cart-group-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.welcome-page .guide-world .shop-cart-group .shop-cart-to{display:block;margin-top:4px;text-align:center}
.welcome-page .guide-world .shop-cart-group-note{margin:2px 0 0;color:#6b7468;font-size:12px;text-align:center}
/* Each store's section in the cart: its header a band in the store's own colour, full width, its logo and name in
   white; at its bottom a green Checkout at the store when it has a shared cart, or a red note when it has none. */
:root body.welcome-page .guide-world .shop-cart-group{flex:none;padding:0 0 10px;overflow:hidden}  /* whole, the list scrolling past it, never squeezed */
:root body.welcome-page .guide-world .shop-cart-group-head{padding:10px 12px;border:0;background:var(--store-color,#7a502f);color:#fff}
:root body.welcome-page .guide-world .shop-cart-group-head small{color:#ffffffd9}
:root body.welcome-page .guide-world .shop-cart-group-head .shop-reel-logo{box-shadow:0 0 0 2px #ffffffcc}
:root body.welcome-page .guide-world .shop-cart-group-items{padding:4px 10px 0}
:root body.welcome-page .guide-world .shop-cart-group :is(.shop-cart-to,.shop-cart-group-note){margin:6px 10px 0;padding:12px 14px;border-radius:999px;font:800 14px/1.2 system-ui,sans-serif;text-align:center}
:root body.welcome-page .guide-world .shop-cart-group .shop-cart-to{background:#c8921e;color:#fff}
:root body.welcome-page .guide-world .shop-cart-group .shop-cart-to:is(:hover,:focus-visible){background:#a87516}
:root body.welcome-page .guide-world .shop-cart-group-note{background:#e8710a;color:#fff;font-size:13px}  /* orange: no checkout here, each item bought at the store */
/* The section's ending only as wide as its words, centred: Checkout at the store, or the short label of a store without a
   shared cart, its reason in a bubble above it on hover or tap (the site's data-tip, here wrapping, dark). */
:root body.welcome-page .guide-world .shop-cart-group :is(.shop-cart-to,.shop-cart-group-note){align-self:center;width:fit-content;max-width:calc(100% - 20px);margin:8px auto 0;padding:10px 22px;box-sizing:border-box}
:root body.welcome-page .guide-world .shop-cart-group{overflow:visible}
:root body.welcome-page .guide-world .shop-cart-group-head{border-radius:16px 16px 0 0}
:root body.welcome-page .guide-world .shop-cart-group-note{position:relative;cursor:help;outline:none}
:root body.welcome-page .guide-world .shop-cart-group-note[data-tip]::after{content:attr(data-tip);display:block;position:absolute;left:50%;translate:-50% 4px;opacity:0;pointer-events:none;transition:opacity .15s,translate .15s;bottom:calc(100% + 8px);width:max-content;max-width:min(260px,70vw);padding:7px 11px;border-radius:10px;background:#3d2a1b;color:#fff;font:600 12px/1.35 system-ui,sans-serif;white-space:normal;text-align:center;box-shadow:0 8px 20px #0003;z-index:3}
:root body.welcome-page .guide-world .shop-cart-group-note[data-tip]:is(:hover,:focus)::after{opacity:1;translate:-50% 0}
/* The store's band in the cart, thin: its colour a slim strip with a small logo and the name, not a big block. */
:root body.welcome-page .guide-world .shop-cart-group-head{gap:8px;padding:5px 10px;min-height:0}
:root body.welcome-page .guide-world .shop-cart-group-head .shop-reel-logo{width:24px;height:24px;padding:3px;box-shadow:0 0 0 1.5px #ffffffcc}
:root body.welcome-page .guide-world .shop-cart-group-head strong{font-size:13px;letter-spacing:.01em}
:root body.welcome-page .guide-world .shop-cart-group-head small{font-size:11px}
/* The store's line in the cart, refined: a light tint of its colour, its name in the colour itself, and a thin strip of
   it along the left edge, so it reads as that store without a block of colour. */
:root body.welcome-page .guide-world .shop-cart-group-head{background:color-mix(in srgb,var(--store-color,#7a502f) 11%,#fff);color:var(--store-color,#7a502f);box-shadow:inset 4px 0 0 var(--store-color,#7a502f);border-bottom:1px solid color-mix(in srgb,var(--store-color,#7a502f) 22%,#fff)}
:root body.welcome-page .guide-world .shop-cart-group-head strong{color:color-mix(in srgb,var(--store-color,#7a502f) 85%,#000)}
:root body.welcome-page .guide-world .shop-cart-group-head small{color:#5b6358}
:root body.welcome-page .guide-world .shop-cart-group-head .shop-reel-logo{box-shadow:0 0 0 1px color-mix(in srgb,var(--store-color,#7a502f) 30%,#fff)}
/* The section's ending, refined like its store line: a light tint of its colour, its words in the colour, a thin edge;
   Checkout fills with green on hover, as the action it is. */
:root body.welcome-page .guide-world .shop-cart-group :is(.shop-cart-to,.shop-cart-group-note){padding:8px 18px;font:700 13px/1.2 system-ui,sans-serif;box-shadow:none}
:root body.welcome-page .guide-world .shop-cart-group .shop-cart-to{background:color-mix(in srgb,#c8921e 10%,#fff);color:#a87516;border:1.5px solid color-mix(in srgb,#c8921e 55%,#fff);transition:background-color .15s,color .15s}
:root body.welcome-page .guide-world .shop-cart-group .shop-cart-to:is(:hover,:focus-visible){background:#c8921e;color:#fff;border-color:#c8921e}
:root body.welcome-page .guide-world .shop-cart-group-note{background:color-mix(in srgb,#e8710a 10%,#fff);color:#b45309;border:1.5px solid color-mix(in srgb,#e8710a 50%,#fff)}
/* Checkout's reminder and link: the bubble over the button on hover or tap (as the orange label's), and under it a
   small link to the store's own cart, to empty it first. */
.welcome-page .guide-world .shop-cart-checkout{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:8px}
:root body.welcome-page .guide-world .shop-cart-checkout .shop-cart-to{margin:0;position:relative}
:root body.welcome-page .guide-world .shop-cart-group .shop-cart-to[data-tip]::after{content:attr(data-tip);display:block;position:absolute;left:50%;translate:-50% 4px;bottom:calc(100% + 8px);width:max-content;max-width:min(260px,70vw);padding:7px 11px;border-radius:10px;background:#3d2a1b;color:#fff;font:600 12px/1.35 system-ui,sans-serif;white-space:normal;text-align:center;box-shadow:0 8px 20px #0003;opacity:0;pointer-events:none;transition:opacity .15s,translate .15s;z-index:3}
:root body.welcome-page .guide-world .shop-cart-group .shop-cart-to[data-tip]:is(:hover,:focus)::after{opacity:1;translate:-50% 0}
:root body.welcome-page .guide-world .shop-cart-empty-first{color:#5b6358;font:600 12px/1.2 system-ui,sans-serif;text-decoration:underline;text-underline-offset:2px}
:root body.welcome-page .guide-world .shop-cart-empty-first:is(:hover,:focus-visible){color:#3d2a1b}
:root body.welcome-page .guide-world .shop-cart-signin{color:#5b6358;font:12px/1.3 system-ui,sans-serif;text-align:center}
/* The cart in the header, at its far right beside the assistant's portrait (left of the page's × on a phone): a green
   disc with the cart and its gold count; nothing else stays outside the window. */
:root body.welcome-page .guide-world.is-still .afiwa-still:has(.header-profile){justify-content:flex-end;padding-right:72px}
:root body.welcome-page:not(#none) .guide-world .afiwa-still .shop-cart-button{position:absolute;top:50%;right:18px;translate:0 -50%;width:42px;height:42px;padding:0;display:grid;place-items:center;border-radius:50%;background:#7a502f;color:#fff;box-shadow:0 4px 12px #3d2a1b33;text-shadow:none}
:root body.welcome-page:not(#none) .guide-world .afiwa-still .shop-cart-button[hidden]{display:none}
:root body.welcome-page .guide-world .afiwa-still .shop-cart-button svg{box-sizing:content-box;width:22px;height:22px;padding:0;background:none;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;-webkit-backdrop-filter:none;backdrop-filter:none}
:root body.welcome-page .guide-world .afiwa-still .shop-cart-button span{display:none}
:root body.welcome-page .guide-world .afiwa-still .shop-cart-button b{top:-5px;right:-5px}
:root body.welcome-page .guide-world .afiwa-still .shop-cart-button:is(:hover,:focus-visible){background:#5f3d22}
@media (max-width:767px){
 :root body.welcome-page .guide-world.is-still .afiwa-still:has(.header-profile){padding-right:104px}
 :root body.welcome-page:not(#none) .guide-world .afiwa-still .shop-cart-button{right:56px;width:38px;height:38px}
}
/* The centered header pairs the words with the assistant's portrait and name, with the cart at the top right. */
:root body.welcome-page .guide-world.is-still .afiwa-still,:root body.welcome-page .guide-world.is-still .afiwa-still:has(.header-profile){display:block;min-height:0;padding:8px 14px 10px}
.welcome-page .guide-world .afiwa-still-main{display:flex;justify-content:flex-start;align-items:center;gap:14px;margin-top:2px}
:root body.welcome-page:not(#none) .guide-world .afiwa-still .shop-cart-button{top:8px;right:14px;translate:none;width:34px;height:34px}
:root body.welcome-page .guide-world .afiwa-still .shop-cart-button svg{width:19px;height:19px}
@media (max-width:767px){
 :root body.welcome-page .guide-world.is-still .afiwa-still,:root body.welcome-page .guide-world.is-still .afiwa-still:has(.header-profile){padding:8px 12px 8px}
 :root body.welcome-page:not(#none) .guide-world .afiwa-still .shop-cart-button{right:56px;width:32px;height:32px}  /* left of the page's × */
 .welcome-page .guide-world .afiwa-still-main{gap:10px}
}
/* The footer a little lower: her newest three lines, and on a phone the person's one line, so the last two messages
   still both show. */
:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p.from-afiwa span{max-height:calc(1.35em * 3)}
@media (max-width:767px){:root body.welcome-page .guide-world .afiwa-footer .afiwa-captions p.from-you span{-webkit-line-clamp:1}}
/* The microphone at the left of the footer, the conversation to its right. */
:root body.welcome-page:not(#none) .video-actions .afiwa-talk{right:auto;left:16px}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{left:104px;right:14px}
@media (max-width:767px){
 :root body.welcome-page:not(#none) .video-actions .afiwa-talk{left:10px}
 :root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{left:92px;right:10px}
}
/* The cart at the right of the footer, the conversation between it and the microphone. */
:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button{position:absolute;top:50%;right:16px;translate:0 -50%;width:46px;height:46px;padding:0;display:grid;place-items:center;border-radius:50%;background:#7a502f;color:#fff;box-shadow:0 4px 12px #3d2a1b33;text-shadow:none}
:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button[hidden]{display:none}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button svg{box-sizing:content-box;width:22px;height:22px;padding:0;background:none;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;-webkit-backdrop-filter:none;backdrop-filter:none}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button span{display:none}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button b{top:-5px;right:-5px}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button:is(:hover,:focus-visible){background:#5f3d22}

@media (max-width:767px){
 :root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button{right:10px;top:calc(50% - 8px);width:42px;height:42px}
}
/* The microphone and the cart in black and white: a white disc with a thin black edge and a black icon, black with a
   white icon on hover; the cart's count black. In a call the microphone still turns red, as Hang up. */
:root body.welcome-page .video-actions .afiwa-talk:not([aria-pressed=true]) .afiwa-talk-mic{background:#fff;color:#111;border:1.5px solid #111;box-shadow:0 2px 8px #0000001f;animation:none}
:root body.welcome-page .video-actions .afiwa-talk:not([aria-pressed=true]):is(:hover,:focus-visible) .afiwa-talk-mic{background:#111;color:#fff;filter:none}
:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button{background:#fff;border:1.5px solid #111;box-shadow:0 2px 8px #0000001f}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button svg{stroke:#111}
:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button:is(:hover,:focus-visible){background:#111}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button:is(:hover,:focus-visible) svg{stroke:#fff}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button b{background:#111;color:#fff;box-shadow:0 0 0 2px #fff}
/* The microphone and the cart: a light cream disc (white at the top, warm cream below), a thin dark rim and a soft
   shadow, the icon dark; they lift a little and deepen on hover. The microphone breathes a faint warm glow; the cart's
   count is a small black badge. In a call the microphone still turns red, as Hang up. */
@keyframes afiwa-light-glow{0%,100%{box-shadow:0 0 0 1.5px #2b2b2b,0 5px 14px #00000026,0 0 0 0 #d9c7a066}50%{box-shadow:0 0 0 1.5px #2b2b2b,0 5px 14px #00000026,0 0 0 9px #d9c7a000}}
:root body.welcome-page .video-actions .afiwa-talk:not([aria-pressed=true]) .afiwa-talk-mic,:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button{background:linear-gradient(180deg,#fff 0%,#f7f1e4 100%);color:#1c1c1c;border:0;box-shadow:0 0 0 1.5px #2b2b2b,0 5px 14px #00000026;transition:transform .18s,box-shadow .18s,background .18s}
:root body.welcome-page .video-actions .afiwa-talk:not([aria-pressed=true]) .afiwa-talk-mic{animation:afiwa-light-glow 2.6s ease-in-out infinite}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button svg{stroke:#1c1c1c}
:root body.welcome-page .video-actions .afiwa-talk:not([aria-pressed=true]):is(:hover,:focus-visible) .afiwa-talk-mic,:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button:is(:hover,:focus-visible){background:linear-gradient(180deg,#fffdf8 0%,#efe4cc 100%);color:#000;transform:translateY(-2px);filter:none;box-shadow:0 0 0 1.5px #111,0 9px 20px #00000033}
:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button:is(:hover,:focus-visible){translate:0 calc(-50% - 2px);transform:none}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button:is(:hover,:focus-visible) svg{stroke:#000}
:root body.welcome-page :is(.video-actions,.afiwa-still) .shop-cart-button b{background:#111;color:#fff;box-shadow:0 0 0 2px #fff;font-weight:800}
@media(prefers-reduced-motion:reduce){:root body.welcome-page .video-actions .afiwa-talk .afiwa-talk-mic{animation:none}}
/* No dark ring: a light grey disc shows the button's edge, with a soft shadow; a little deeper grey on hover. */
@keyframes afiwa-grey-glow{0%,100%{box-shadow:0 3px 10px #0000001f,0 0 0 0 #0000001a}50%{box-shadow:0 3px 10px #0000001f,0 0 0 9px #00000000}}
:root body.welcome-page .video-actions .afiwa-talk:not([aria-pressed=true]) .afiwa-talk-mic,:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button{background:#ececec;box-shadow:0 3px 10px #0000001f}
:root body.welcome-page .video-actions .afiwa-talk:not([aria-pressed=true]) .afiwa-talk-mic{animation-name:afiwa-grey-glow}
:root body.welcome-page .video-actions .afiwa-talk:not([aria-pressed=true]):is(:hover,:focus-visible) .afiwa-talk-mic,:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button:is(:hover,:focus-visible){background:#dedede;box-shadow:0 7px 16px #00000029}
/* The free listening (the rule base, before any call): the button stays grey, its mic turned to a stop cross, a soft
   ring pulsing while the browser hears; only a GPT-Live call turns it red with the time left. */
:root body.welcome-page .video-actions .afiwa-talk[aria-pressed=true][data-mode=free] .afiwa-talk-mic{background:#ececec;color:#1c1c1c;border-color:transparent;transform:none;animation:afiwa-grey-glow 1.6s ease-in-out infinite}
:root body.welcome-page .video-actions .afiwa-talk[aria-pressed=true][data-mode=free] .afiwa-talk-mic::before{opacity:0}
/* The cart and the microphone beside the window at its bottom right, as on TikTok or YouTube: the cart above, the
   microphone below; on a phone, over the window's bottom right, in the footer, without the microphone's name. The
   footer is all conversation. */
:root body.welcome-page .video-actions{gap:16px}
:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button,:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button:is(:hover,:focus-visible){position:relative;top:auto;right:auto;translate:none}
:root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button:is(:hover,:focus-visible){transform:translateY(-2px)}
:root body.welcome-page:not(#none) .video-actions .afiwa-talk{position:relative;left:auto;right:auto;top:auto;translate:none;color:#fff;text-shadow:0 1px 3px #000a}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{left:14px;right:14px}
@media (max-width:767px){
 :root body.welcome-page .video-actions{right:10px;bottom:12px;gap:8px}
 :root body.welcome-page .video-actions .afiwa-talk-words{display:none}
 :root body.welcome-page .video-actions .afiwa-talk-mic{width:50px;height:50px}
 :root body.welcome-page:not(#none) :is(.video-actions,.afiwa-still) .shop-cart-button{width:40px;height:40px}
 :root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{left:12px;right:70px;bottom:22px}
}
/* The assistant portrait opens customization, with a gold ring on hover. */
:root body.welcome-page:not(#none) .guide-world .afiwa-still-who{min-width:0;min-height:0;padding:0;border:0;background:none;box-shadow:none;color:inherit;font:inherit;cursor:pointer}
.welcome-page .guide-world .afiwa-still-who:is(:hover,:focus-visible) .afiwa-still-photo{box-shadow:0 0 0 3px #c8921e,0 10px 26px #3d2a1b55}
.welcome-page .guide-world .afiwa-still-who:focus-visible{outline:none}
@media (max-width:767px){:root body.welcome-page .video-actions{right:20px;bottom:18px}}

/* The virtual avatar fits whole inside its circle. */
:root body.welcome-page .guide-world .afiwa-still .is-mascot img,.welcome-page .guide-portrait img[src*="afiwa-shopping-assistant.png"]{position:static;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center;transform:none}

/* The cart stays at the right of the header, clear of the assistant and introduction. */
:root body.welcome-page:not(#none) .guide-world .afiwa-still .shop-cart-button,:root body.welcome-page:not(#none) .guide-world .afiwa-still .shop-cart-button:is(:hover,:focus-visible){position:absolute;top:50%;right:14px;translate:0 -50%;width:40px;height:40px}
:root body.welcome-page .guide-world .afiwa-still:has(.header-profile) .afiwa-still-main{padding-right:52px}

/* The microphone sits inside the footer at the right, beside the conversation. */
:root body.welcome-page .guide-world .afiwa-footer .video-actions{position:absolute;top:50%;right:16px;bottom:auto;left:auto;translate:0 -50%;margin:0;gap:0}
:root body.welcome-page:not(#none) .guide-world .afiwa-footer .afiwa-talk{color:#3d2a1b;text-shadow:none}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk-words{display:none}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{left:14px;right:86px}
@media(max-width:767px){
 :root body.welcome-page .guide-world .afiwa-footer .video-actions{right:14px}
 :root body.welcome-page .guide-world .afiwa-footer .afiwa-call-overlay{left:12px;right:80px}
}

/* Neutral when idle, green for browser listening and recorded answers; live calls retain red. */
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk:not([aria-pressed=true]) .afiwa-talk-mic{background:#ececec;color:#1c1c1c;border-color:transparent}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk:not([aria-pressed=true]):is(:hover,:focus-visible) .afiwa-talk-mic{background:#dedede;color:#111}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk[aria-pressed=true][data-mode=free] .afiwa-talk-mic{background:#1f5c3f;color:#fff;border-color:transparent}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk[aria-pressed=true][data-mode=free]:is(:hover,:focus-visible) .afiwa-talk-mic{background:#174a33;color:#fff}

/* A gentle float brings Afiwa's shopping companion to life without shifting the header. */
@keyframes afiwa-avatar-float{
 0%,100%{transform:translateY(0) rotate(-2deg)}
 50%{transform:translateY(-4px) rotate(2deg)}
}
.welcome-page .guide-world .afiwa-still-pic{display:block;animation:afiwa-avatar-float 4s ease-in-out infinite}
.welcome-page .guide-world .afiwa-still-photo{transition:scale .2s ease,box-shadow .2s ease}
.welcome-page .guide-world .afiwa-still-who:is(:hover,:focus-visible) .afiwa-still-photo{scale:1.06}
.welcome-page .guide-world .afiwa-still-who:active .afiwa-still-photo{scale:.96}
@media(prefers-reduced-motion:reduce){
 .welcome-page .guide-world .afiwa-still-pic{animation:none}
 .welcome-page .guide-world .afiwa-still-photo{transition:none}
 .welcome-page .guide-world .afiwa-still-who:is(:hover,:focus-visible,:active) .afiwa-still-photo{scale:1}
}

/* Expressive eyes: occasional double blinks, curious glances and a hover wink. */
.welcome-page .guide-world .afiwa-avatar-face{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
@keyframes afiwa-eye-blink{0%,42%,46%,49%,53%,100%{scale:1 1}44%,51%{scale:1 .06}}
@keyframes afiwa-eye-glance{0%,15%,55%,100%{translate:0 0}24%,36%{translate:-9px -5px}65%,78%{translate:8px 2px}}
.welcome-page .afiwa-eye{transform-box:fill-box;transform-origin:center;animation:afiwa-eye-blink 6.8s infinite}
.welcome-page .afiwa-pupil{animation:afiwa-eye-glance 11s ease-in-out infinite;transform:translate(var(--afiwa-look-x,0px),var(--afiwa-look-y,0px))}
.welcome-page .afiwa-still-who:is(:hover,:focus-visible) .afiwa-eye-right{animation:none;scale:1 .12}
.welcome-page .afiwa-still-who:is(:hover,:focus-visible) .afiwa-eye-left{animation:none;scale:1 1.08}
@media(prefers-reduced-motion:reduce){
 .welcome-page .afiwa-eye,.welcome-page .afiwa-pupil{animation:none;transform:none}
 .welcome-page .afiwa-still-who:is(:hover,:focus-visible) .afiwa-eye{scale:1}
}

/* Equal side columns keep the introduction centered: the VocaShop logo at the left, the profile at the right. */
:root body.welcome-page .guide-world .afiwa-still .afiwa-still-main,:root body.welcome-page .guide-world .afiwa-still:has(.header-profile) .afiwa-still-main{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;padding-right:0}
:root body.welcome-page .guide-world .afiwa-logo{grid-column:1;justify-self:stretch;display:block;width:100%;min-width:0;line-height:0}
:root body.welcome-page .guide-world .afiwa-logo img{position:static;display:block;width:auto;max-width:100%;height:38px;object-fit:contain;object-position:left center}
:root body.welcome-page .guide-world .afiwa-still-intro{grid-column:2;align-items:center;text-align:center;min-width:0}
/* "Shop everywhere, just by talking." on one line, on every screen: its size follows the header's width, so it fits
   between the logo and the profile. */
:root body.welcome-page .guide-world .afiwa-still .afiwa-still-main{container-type:inline-size}
:root body.welcome-page .guide-world .afiwa-still-intro .afiwa-still-title{white-space:nowrap;font-size:clamp(12px,4.1cqi,30px)}
:root body.welcome-page .guide-world .afiwa-still-intro .afiwa-still-title em{display:inline}
@media(max-width:767px){
 :root body.welcome-page .guide-world .afiwa-logo img{height:30px}
}

.welcome-page .assistant-identity{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.welcome-page .assistant-identity .afiwa-still-who{max-width:100%;text-decoration:none}
.welcome-page .guide-world .afiwa-still-name{max-width:100%;overflow-wrap:anywhere;text-align:center}

/* A neutral cart button in the header. */
:root body.welcome-page:not(#none) .guide-world .afiwa-still .shop-cart-button{background:#ececec;color:#1c1c1c;border:0;box-shadow:0 3px 10px #0000001f}
:root body.welcome-page:not(#none) .guide-world .afiwa-still .shop-cart-button:is(:hover,:focus-visible){background:#dedede;color:#111}
:root body.welcome-page .guide-world .afiwa-still .shop-cart-button svg{stroke:#1c1c1c}
:root body.welcome-page .guide-world .afiwa-still .shop-cart-button:is(:hover,:focus-visible) svg{stroke:#111}
:root body.welcome-page .guide-world .afiwa-still .shop-cart-button b{background:#111;color:#fff}
/* Nothing of the old market guide in this app: its options, steps, buttons in a call, picture of the next screen,
   Hear it again, Main menu and Welcome again stay hidden. */
:root body.welcome-page .guide-world :is(.afiwa-options,.afiwa-steps,.afiwa-call-links,#afiwa-replay,.afiwa-menu,.afiwa-welcome,#afiwa-preview){display:none!important}

/* Consistent control and icon sizes across the header, footer and sidebar. */
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk-mic{width:40px;height:40px}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk svg,:root body.welcome-page .guide-world .afiwa-still .shop-cart-button svg{width:26px;height:26px}
/* While a store is searched: cards shimmering where its products will be; then the products come in one after another
   (welcome.js searching, shopShow), the list building as it goes. */
@keyframes shop-shimmer{0%{background-position:-240px 0}100%{background-position:240px 0}}
.welcome-page .guide-world .shop-card-waiting{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;background:#fff}
.welcome-page .guide-world .shop-card-waiting>span:first-child{flex:none;width:56px;height:56px;border-radius:8px}
.welcome-page .guide-world .shop-card-waiting>span:last-child{flex:1;display:flex;flex-direction:column;gap:6px}
.welcome-page .guide-world .shop-card-waiting :is(>span:first-child,b,i){display:block;background:linear-gradient(90deg,#f0ece3 0px,#faf7f0 60px,#f0ece3 120px) 0 0/480px 100% #f0ece3;animation:shop-shimmer 1.2s linear infinite}
.welcome-page .guide-world .shop-card-waiting b{height:12px;width:85%;border-radius:6px}
.welcome-page .guide-world .shop-card-waiting i{height:10px;width:40%;border-radius:5px}
.welcome-page .guide-world .shop-card-waiting i+i{width:60%}
.welcome-page .guide-world .shop-card-none{padding:18px;text-align:center;color:#6b7468}
.welcome-page .guide-world .shop-results.is-searching .shop-query::after{content:"";display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:currentColor;animation:afiwa-live-dot 1s ease-in-out infinite}
@keyframes shop-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.welcome-page .guide-world .shop-list.is-arriving>li{animation:shop-arrive .32s ease-out both}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(2){animation-delay:55ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(3){animation-delay:110ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(4){animation-delay:165ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(5){animation-delay:220ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(6){animation-delay:275ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(7){animation-delay:330ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(8){animation-delay:385ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(9){animation-delay:440ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(10){animation-delay:495ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(11){animation-delay:550ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(12){animation-delay:605ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(13){animation-delay:660ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(14){animation-delay:715ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(15){animation-delay:770ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(16){animation-delay:825ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(17){animation-delay:880ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(18){animation-delay:935ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(19){animation-delay:990ms}
.welcome-page .guide-world .shop-list.is-arriving>li:nth-child(20){animation-delay:1045ms}
@media(prefers-reduced-motion:reduce){.welcome-page .guide-world :is(.shop-card-waiting *,.shop-list.is-arriving>li,.shop-photo){animation:none}}
/* Each cart item's own small yellow button before the −, as the product window's: straight to the item at its store,
   "Buy at <store>" in a bubble on hover. */
:root body.welcome-page .guide-world .shop-cart-amount .shop-cart-buy{position:relative;display:inline-grid;place-items:center;width:28px;height:28px;margin-right:2px;border-radius:50%;background:#c8921e;color:#fff;text-decoration:none;transition:background-color .15s}
:root body.welcome-page .guide-world .shop-cart-amount .shop-cart-buy:is(:hover,:focus-visible){background:#a8780f}
:root body.welcome-page .guide-world .shop-cart-amount .shop-cart-buy::after{content:attr(data-tip);position:absolute;right:50%;bottom:calc(100% + 6px);translate:50% 4px;width:max-content;padding:6px 10px;border-radius:8px;background:#3d2a1b;color:#fff;font:600 12px/1.2 system-ui,sans-serif;white-space:nowrap;box-shadow:0 6px 16px #0003;opacity:0;pointer-events:none;transition:opacity .15s,translate .15s;z-index:3}
:root body.welcome-page .guide-world .shop-cart-amount .shop-cart-buy:is(:hover,:focus-visible)::after{opacity:1;translate:50% 0}
/* Match the cart and one-at-a-time headers with warm cream and dark text. */
:root body.welcome-page:not(#none) .guide-world :is(.shop-cart,.shop-reel) header{background:linear-gradient(135deg,#f3e6cb,#e6d2ab);color:#3a2a17}
:root body.welcome-page:not(#none) .guide-world :is(.shop-cart,.shop-reel) header .window-close{border-color:#3a2a1733;background:#ffffff66;color:#3a2a17}
:root body.welcome-page:not(#none) .guide-world .shop-cart header strong{font-size:19px}
:root body.welcome-page:not(#none) .guide-world .shop-cart header .shop-cart-total{font-size:15px;font-weight:600;opacity:1}
/* The same honey-gold line on top of each store's name in the cart, separating the stores. */
:root body.welcome-page:not(#none) .guide-world .shop-cart-group-head{border-top:3px solid #c8921e}
/* The page's header (Afiwa, "Shop everywhere") ends with a thin cocoa line, whatever window is open below it. */
:root body.welcome-page:not(#none) .guide-world.is-still .afiwa-still{border-bottom:2px solid #7a5a3c}
/* The footer (the conversation and the microphone) a little shorter, with the header's thin cocoa line on its top edge. */
:root body.welcome-page{--footer:122px}
@media (max-width:767px){:root body.welcome-page{--footer:118px}}
:root body.welcome-page:not(#none) .guide-world .afiwa-footer{border-top:2px solid #7a5a3c}
/* The home screen's header has the profile where the cart was (a grey circle with its icon, its menu opening below),
   and its left menu the cart where the profile is, with its count. */
:root body.welcome-page:not(#none) .guide-world .afiwa-still .header-profile{position:absolute;z-index:4;top:50%;right:14px;translate:0 -50%}
:root body.welcome-page:not(#none) .guide-world .afiwa-still .header-profile summary{display:grid;place-items:center;width:48px;height:48px;padding:0;border-radius:50%;background:#ececec;color:#1c1c1c;box-shadow:0 3px 10px #0000001f;cursor:pointer;list-style:none}
:root body.welcome-page:not(#none) .guide-world .afiwa-still .header-profile summary::-webkit-details-marker{display:none}
:root body.welcome-page:not(#none) .guide-world .afiwa-still .header-profile summary:is(:hover,:focus-visible){background:#dedede}
:root body.welcome-page .guide-world .afiwa-still .header-profile summary>svg{display:block;width:28px;height:28px;fill:none;stroke:#1c1c1c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
:root body.welcome-page:not(#none) .guide-world .afiwa-still .header-profile nav{position:absolute;top:calc(100% + 10px);right:0;left:auto;bottom:auto;text-align:left}
:root body.welcome-page .reel-bar .shop-cart-button span{display:none}
:root body.welcome-page .reel-bar .shop-cart-button[hidden]{display:grid}
:root body.welcome-page:not(#none) .reel-bar>button.shop-cart-button{position:relative;display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:12px;background:none;box-shadow:none;color:inherit}
@media(min-width:768px){:root body.welcome-page:not(#none) .reel-bar>button.shop-cart-button{width:40px;height:40px;margin-inline:auto;border-radius:50%;background:#ececec;color:#1c1c1c;box-shadow:0 3px 10px #0000001f}
 :root body.welcome-page:not(#none) .reel-bar>button.shop-cart-button:hover{background:#dedede}}
:root body.welcome-page .reel-bar>button.shop-cart-button>svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
:root body.welcome-page .guide-world .afiwa-still:has(.header-profile[open]){z-index:9}  /* its menu over any window */
/* Afiwa at the footer's left, beside the conversation. */
:root body.welcome-page .guide-world .afiwa-footer .assistant-identity{position:absolute;z-index:2;left:12px;top:50%;translate:0 -50%;gap:2px}
:root body.welcome-page:not(#none) .guide-world .afiwa-footer .afiwa-still-photo{width:56px;border-width:2px}
:root body.welcome-page:not(#none) .guide-world .afiwa-footer .afiwa-still-name{font-size:12px}
:root body.welcome-page:not(#none) .guide-world .afiwa-footer .afiwa-call-overlay{left:84px}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-still-photo img{position:absolute;left:-30%;top:-15%;width:200%;max-width:none;height:auto}
:root body.welcome-page:not(#none) .guide-world .afiwa-footer .is-mascot img{position:static;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center;transform:none}

/* Match the cart count and voice-search icon to the VocaShop wordmark. */
.welcome-page{--brand-brown:#7a5a3c}
:root body.welcome-page .shop-cart-button .shop-cart-count{background:var(--brand-brown);color:#fff}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk:not([aria-pressed=true]) .afiwa-talk-mic{background:transparent;color:var(--brand-brown);border-color:transparent;box-shadow:none;animation:none}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk:not([aria-pressed=true]):is(:hover,:focus-visible) .afiwa-talk-mic{background:transparent;color:var(--brand-brown);box-shadow:none}
/* What the voice search is doing, by its colour: idle in brown; listening with the free rule base (data-mode=free) in
   Afiwa's green, softly pulsing; in a GPT-Live call (data-mode=live, billed) in red with the time left. */
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk[aria-pressed=true][data-mode=free] .afiwa-talk-mic{background:#1f5c3f;color:#fff;border-color:transparent;box-shadow:0 4px 12px #1f5c3f55;transform:none;animation:afiwa-free-listening 1.8s ease-in-out infinite}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk[aria-pressed=true][data-mode=free]:is(:hover,:focus-visible) .afiwa-talk-mic{background:#174a33;color:#fff}
@keyframes afiwa-free-listening{50%{box-shadow:0 4px 12px #1f5c3f55,0 0 0 8px #1f5c3f22}}
@media(prefers-reduced-motion:reduce){:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk[data-mode=free] .afiwa-talk-mic{animation:none}}

/* One combined voice-search control, with room for both symbols. */
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk-mic{width:56px;height:56px}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk svg{width:36px;height:36px;stroke-width:1.7}

/* Keep the voice-search label visible below its combined icon on every screen. */
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk-words{display:flex;max-width:none}
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk-words strong{font-size:10px;font-weight:600;white-space:nowrap;color:#7a5a3c}

:root body.welcome-page .guide-world .afiwa-still .header-profile .bar-avatar{width:40px;height:40px;font-size:22px}

:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk:not([aria-pressed=true]) .afiwa-talk-mic::before,
:root body.welcome-page .guide-world .afiwa-footer .afiwa-talk[data-mode=free] .afiwa-talk-mic::before{opacity:0}

/* The search's products as tiles, three to a row, as a store's own search page shows them: a big square picture, its
   number on it, then its name (two lines), its price and its rating under it. The waiting cards are tiles too. */
.welcome-page .guide-world .shop-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:8px;padding:8px}
.welcome-page .guide-world .shop-list>li{min-width:0}
.welcome-page .guide-world .shop-list a{flex-direction:column;align-items:stretch;gap:6px;height:100%;padding:6px 6px 8px;text-align:left;box-shadow:0 1px 3px #0000001a;transition:transform .15s,box-shadow .15s}
.welcome-page .guide-world .shop-list a:is(:hover,:focus-visible){transform:translateY(-2px);box-shadow:0 6px 16px #3d2a1b26}
.welcome-page .guide-world .shop-list img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:8px;background:#fff}
.welcome-page .guide-world .shop-list em{left:8px;top:8px;z-index:1;min-width:22px;height:22px;border-radius:11px;font-size:12px;line-height:22px;box-shadow:0 1px 3px #0003}
.welcome-page .guide-world .shop-about{gap:3px}
.welcome-page .guide-world .shop-about b{font-size:12px;line-height:1.3;min-height:2.6em}
.welcome-page .guide-world .shop-about strong{font-size:14px;font-weight:800}
.welcome-page .guide-world .shop-about small{font-size:10.5px;line-height:1.3}
.welcome-page .guide-world .shop-card-waiting{flex-direction:column;align-items:stretch;gap:8px;padding:6px 6px 10px}
.welcome-page .guide-world .shop-card-waiting>span:first-child{display:block;width:100%;height:auto;aspect-ratio:1;background:linear-gradient(90deg,#f0ece3 0px,#faf7f0 60px,#f0ece3 120px) 0 0/480px 100% #f0ece3;animation:shop-shimmer 1.2s linear infinite}
.welcome-page .guide-world .shop-card-waiting>span:last-child{flex:none}
@media(prefers-reduced-motion:reduce){.welcome-page .guide-world .shop-card-waiting>span:first-child{animation:none}.welcome-page .guide-world .shop-list a{transition:none}}

/* Buy here (welcome.js buyHere): its button beside Add to cart and Buy at the store, then the checkout in the product's
   window in place of its details: Ship to, the total, the card in Stripe's box, the order placed. */
:root body.welcome-page:not(#none) .guide-world .shop-product-here{flex:1 1 100%;min-width:0;min-height:0;padding:11px 14px;border:0;border-radius:999px;background:#3d2a1b;color:#fff5df;font:800 15px/1.2 system-ui,sans-serif;cursor:pointer}
:root body.welcome-page:not(#none) .guide-world .shop-product-here:is(:hover,:focus-visible){background:#7a502f}
.welcome-page .guide-world .shop-product.is-buying .shop-product-body{display:none}
.welcome-page .guide-world .shop-buy{flex:1;min-height:0;overflow-y:auto;padding:14px 16px 24px;text-align:left;background:#fffaf0;color:#3d2a1b;animation:shop-arrive .2s ease-out;font:400 14px/1.4 system-ui,sans-serif}
.welcome-page .guide-world .shop-buy h3{margin:10px 0 8px;font:700 16px/1.3 system-ui,sans-serif}
.welcome-page .guide-world .shop-buy h4{margin:16px 0 8px;color:#91662f;font:800 11px/1 system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
:root body.welcome-page:not(#none) .guide-world .shop-buy .shop-buy-back{display:inline-flex;align-items:center;gap:2px;min-height:0;height:36px;margin:0;padding:0 14px 0 6px;border:0;border-radius:999px;background:#7a502f;color:#fff;font:700 14px/1 system-ui,sans-serif;cursor:pointer}
:root body.welcome-page:not(#none) .guide-world .shop-buy .shop-buy-back:is(:hover,:focus-visible){background:#c8921e}
.welcome-page .guide-world .shop-buy-test{margin:0 0 4px;padding:8px 10px;border-radius:10px;background:#fbf0d4;color:#7a5a12;font-size:12.5px}
.welcome-page .guide-world .shop-buy-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}
.welcome-page .guide-world .shop-buy-field{display:flex;flex-direction:column;gap:3px;min-width:0}
.welcome-page .guide-world .shop-buy-field:is(.is-email,.is-address1,.is-address2){grid-column:1/-1}
.welcome-page .guide-world .shop-buy-field>span{color:#6b5a48;font-size:12px;font-weight:600}
:root body.welcome-page:not(#none) .guide-world .shop-buy-field :is(input,select){box-sizing:border-box;width:100%;min-height:0;height:40px;margin:0;padding:0 10px;border:1.5px solid #dccdb0;border-radius:10px;background:#fff;color:#3d2a1b;font:400 15px/1 system-ui,sans-serif}
:root body.welcome-page:not(#none) .guide-world .shop-buy-field :is(input,select):focus{outline:none;border-color:#c8921e;box-shadow:0 0 0 3px #e9cf9f88}
.welcome-page .guide-world .shop-buy-form .shop-buy-note,.welcome-page .guide-world .shop-buy-form .shop-buy-go{grid-column:1/-1}
.welcome-page .guide-world .shop-buy-note{margin:6px 0;color:#6b6b6b;font-size:12px}
:root body.welcome-page:not(#none) .guide-world .shop-buy-go{display:block;width:100%;min-height:0;margin:10px 0 0;padding:12px 16px;border:0;border-radius:999px;background:#c8921e;color:#fff;font:800 15px/1.2 system-ui,sans-serif;cursor:pointer}
:root body.welcome-page:not(#none) .guide-world .shop-buy-go:is(:hover,:focus-visible){background:#9a6a12}
:root body.welcome-page:not(#none) .guide-world .shop-buy-go:disabled{opacity:.45;cursor:default;background:#c8921e}
:root body.welcome-page .guide-world .shop-buy .shop-buy-total{display:block;margin:0;padding:10px 12px;border-radius:12px;background:#fff;box-shadow:0 1px 3px #0000001a}
.welcome-page .guide-world .shop-buy-total>div{display:flex;justify-content:space-between;gap:10px;padding:3px 0}
.welcome-page .guide-world .shop-buy-total :is(dt,dd){margin:0}
.welcome-page .guide-world .shop-buy-total>.is-total{margin-top:4px;padding-top:8px;border-top:1px solid #eadfc8;font-weight:800;font-size:16px}
.welcome-page .guide-world .shop-buy-card{padding:12px 10px;border:1.5px solid #dccdb0;border-radius:10px;background:#fff}
.welcome-page .guide-world .shop-buy-error{margin:8px 0 0;color:#a3261b;font-weight:600}
.welcome-page .guide-world .shop-buy-error:empty{display:none}
.welcome-page .guide-world .shop-buy-wait{display:flex;align-items:center;gap:12px;margin:24px 0;color:#6b5a48}
.welcome-page .guide-world .shop-buy-wait .shop-buy-spin{flex:none;box-sizing:border-box;width:30px;height:30px;border-radius:50%;border:4px solid #e2d6bf;border-top-color:#7a502f;border-right-color:#c8921e;animation:shop-spin .8s linear infinite}
@media(prefers-reduced-motion:reduce){.welcome-page .guide-world .shop-buy-spin{animation-duration:2.4s}.welcome-page .guide-world .shop-buy{animation:none}}
.welcome-page .guide-world .shop-buy-done{display:flex;flex-direction:column;gap:6px;margin:20px 0 6px;padding:14px;border-radius:12px;background:#eef6ea;color:#24502c}
.welcome-page .guide-world .shop-buy-done strong{font-size:18px}
