:root {
  color-scheme: dark;
  --bt-bg: #0e121b;
  --bt-card: #1c2130;
  --bt-gold: #d4b26a;
  --bt-gold-soft: rgba(212,178,106,.15);
  --bt-gold-medium: rgba(212,178,106,.35);
  --bt-gold-strong: rgba(212,178,106,.5);
  --bt-text: #f5f3ea;
  --bt-secondary: #b9c1ce;
  --bt-muted: #9aa4b3;
}
.bt-brand-symbol { display:block; flex-shrink:0; object-fit:contain; }
.bt-brand-intro { text-align:center; padding:14px 8px 20px; }
.bt-brand-intro .bt-brand-symbol { width:72px; height:56px; margin:0 auto; }
.bt-brand-wordmark-image { display:block; flex-shrink:0; object-fit:contain; }
.bt-brand-intro .bt-brand-wordmark-image { width:224px; height:52px; max-width:100%; margin:6px auto 0; }
.bt-brand-tagline { font-size:14px; color:var(--bt-secondary); line-height:1.5; margin-top:4px; }
.bt-brand-statement { font-size:14px; color:var(--bt-muted); line-height:1.5; margin:10px auto 0; max-width:360px; text-wrap:balance; }
.bt-brand-inline { display:inline-flex; align-items:center; gap:6px; vertical-align:middle; }
.bt-brand-inline .bt-brand-symbol { width:28px; height:22px; }
@media(max-width:360px) { .bt-brand-intro { padding-top:8px; } }

.bt-butler-introduction{font-size:17px;font-weight:700;line-height:1.9;margin:16px auto 0;max-width:440px;overflow-wrap:anywhere}


/* Opening: quiet name at .15s, brand at 3.2s, voice at 4.2s, question at 5.15s; choices follow.
   All content keeps its final layout; only opacity and transform are animated. */
.bt-fv-curtain{position:fixed;inset:0;z-index:100;background:var(--bt-bg);display:grid;place-items:center;pointer-events:none;animation:bt-fv-curtain-out .65s ease 3.2s both}
.bt-fv-curtain .bt-brand-wordmark-image{width:90px;height:21px;animation:bt-fv-name 1.65s cubic-bezier(.25,.1,.25,1) .15s both}
.bt-fv-opening .bt-fv-brand{animation:bt-fv-rise 1s cubic-bezier(.2,.7,.3,1) 3.2s both}
.bt-fv-opening .bt-butler-introduction{animation:bt-fv-rise .85s cubic-bezier(.2,.7,.3,1) 4.2s both}
.bt-fv-opening .bt-fv-first-chat{animation:bt-fv-chat 1.35s ease 5.15s both}
.bt-fv-opening .bt-fv-header{animation:bt-fv-header-in .65s ease 5.15s both}
@keyframes bt-fv-name{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes bt-fv-curtain-out{from{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}
@keyframes bt-fv-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes bt-fv-chat{0%{opacity:0;transform:translateY(14px)}40%,100%{opacity:1;transform:translateY(0)}}
@keyframes bt-fv-header-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 .bt-fv-curtain{display:none;animation:none}
 .bt-fv-opening .bt-fv-brand,.bt-fv-opening .bt-butler-introduction,.bt-fv-opening .bt-fv-first-chat,.bt-fv-opening .bt-fv-header{animation:none;opacity:1;transform:none}
}

/* Questions precede responses. Cap the stagger for long station/car lists. */
[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea){animation:bt-choice-arrive .32s ease-out calc(.34s + var(--bt-choice-order,0)*.065s) both}
[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea):nth-child(2){--bt-choice-order:1}
[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea):nth-child(3){--bt-choice-order:2}
[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea):nth-child(4){--bt-choice-order:3}
[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea):nth-child(5){--bt-choice-order:4}
[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea):nth-child(6){--bt-choice-order:5}
[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea):nth-child(7){--bt-choice-order:6}
[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea):nth-child(8){--bt-choice-order:7}
[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea):nth-child(n+9){--bt-choice-order:7}
/* A candidate arrives as one card, including its action. */
[data-chat-scroll] .bt-journey .bt-candidate button{animation:none}
.bt-fv-opening [data-chat-scroll] .bt-fv-first-chat [data-chat-choices]>button{animation-delay:calc(5.75s + var(--bt-choice-order,0)*.065s)}
@keyframes bt-choice-arrive{0%{opacity:0;visibility:hidden;transform:translateY(7px)}1%{visibility:visible}100%{opacity:1;visibility:visible;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){[data-chat-scroll] :is(.bt-chat-choice,[data-chat-choices]>button,[data-chat-car-choices]>button,[data-chat-station-choices] button,[data-chat-station-choices] input,.bt-journey button,.bt-journey .bt-candidate,.bt-journey .bt-entry-toggle,.bt-journey textarea){animation:none;opacity:1;visibility:visible;transform:none}}
