.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}

[hidden]{ display:none !important; }

.funnel-main{
  min-height:100vh;
  overflow:clip;
}

.funnel-experience{
  position:relative;
}

.arrival{
  position:relative;
  padding:var(--rung-space-8) 0 var(--rung-space-7);
}

.arrival::before,
.arrival::after{
  content:"";
  position:absolute;
  top:var(--rung-space-7);
  bottom:var(--rung-space-6);
  width:var(--rung-space-1);
  border-radius:var(--rung-pill);
  background:var(--rung-line);
  transform:skewY(-18deg);
  opacity:.7;
  pointer-events:none;
}

.arrival::before{ left:var(--rung-space-5); }
.arrival::after{ right:var(--rung-space-5); background:var(--rung-ember); }

.arrival-inner{
  max-width:960px;
  margin:0 auto;
  text-align:center;
}

.arrival-intro.hero-type-source{
  display:block;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}

.hero-type-source h1{
  margin:var(--rung-space-3) auto var(--rung-space-4);
}

.hero-type-source h1 span{
  display:block;
  color:var(--rung-ember-deep);
}

.arrival-intro{
  max-width:650px;
  margin:0 auto var(--rung-space-6);
}

.arrival-intro .lede{
  margin:0;
}

.ask-panel{
  position:relative;
  max-width:860px;
  margin:0 auto;
  padding:var(--rung-space-3);
  border:1px solid var(--rung-line-strong);
  border-radius:var(--rung-radius-xl);
  background:var(--rung-surface);
  box-shadow:var(--rung-shadow-lg);
  text-align:left;
}

.ask-panel:focus-within{
  border-color:var(--rung-ember-deep);
  box-shadow:var(--rung-shadow-md);
}

.ask-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:var(--rung-space-3);
  align-items:end;
}

.ask-form textarea,
.composer-form textarea{
  width:100%;
  min-height:calc(var(--rung-space-8) + var(--rung-space-3));
  resize:none;
  border:0;
  border-radius:var(--rung-radius-lg);
  background:transparent;
  color:var(--rung-text);
  font:inherit;
  line-height:inherit;
  padding:var(--rung-space-4);
}

.ask-form textarea:focus,
.composer-form textarea:focus{
  outline:none;
}

.ask-form textarea::placeholder,
.composer-form textarea::placeholder{
  color:var(--rung-text-faint);
}

.ask-submit{
  min-height:var(--rung-space-8);
  margin:0 var(--rung-space-1) var(--rung-space-1) 0;
}

.key-hint{
  grid-column:1 / -1;
  margin:calc(-1 * var(--rung-space-2)) var(--rung-space-4) var(--rung-space-1);
}

.prompt-label{
  display:block;
  margin:var(--rung-space-5) 0 var(--rung-space-3);
  color:var(--rung-text-muted);
}

.example-prompts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--rung-space-3);
  max-width:860px;
  margin:0 auto;
  text-align:left;
}

.example-prompt{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--rung-space-3);
  min-height:var(--rung-space-8);
  padding:var(--rung-space-3) var(--rung-space-4);
  border:1px solid var(--rung-line);
  border-radius:var(--rung-radius-lg);
  background:var(--rung-surface-alt);
  color:var(--rung-text-body);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:transform var(--rung-dur-enter) var(--rung-ease-enter), border-color var(--rung-dur-enter) var(--rung-ease-enter);
}

.example-prompt:hover{
  transform:translateY(calc(-1 * var(--rung-space-1)));
  border-color:var(--rung-text-muted);
}

.example-prompt::after{
  content:"↗";
  flex:none;
  color:var(--rung-ember-deep);
  font-weight:700;
}

.trust-line{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:var(--rung-space-4);
  margin:var(--rung-space-5) 0 0;
  color:var(--rung-text-muted);
}
.arrival-alternatives{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--rung-space-2) var(--rung-space-4);margin-top:var(--rung-space-4);font-size:14px;color:var(--rung-text-muted)}
.arrival-alternatives a{font-weight:700;text-decoration:none}
.arrival-alternatives a:hover{text-decoration:underline}

.trust-line span{
  display:inline-flex;
  align-items:center;
  gap:var(--rung-space-2);
}

.trust-line span::before{
  content:"";
  width:var(--rung-space-2);
  height:var(--rung-space-2);
  border-radius:var(--rung-pill);
  background:var(--rung-success);
}

.conversation-workspace{
  max-width:1180px;
  margin:0 auto;
  padding:var(--rung-space-5) 0 var(--rung-space-8);
  animation:rungRise var(--rung-dur-enter) var(--rung-ease-enter) both;
}

.conversation-header{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:var(--rung-space-5);
  padding:0 0 var(--rung-space-5);
  border-bottom:1px solid var(--rung-line);
}

.conversation-header-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--rung-space-2);
  justify-content:flex-end;
}

body.ask-route .arrival,
body.ask-route .funnel-trust,
body.ask-route footer.site{
  display:none;
}

body.ask-route nav.primary a.start,
body.ask-route nav.mobile-nav a[href="/start/"]{
  display:none;
}

body.ask-route .funnel-main{
  min-height:calc(100dvh - var(--rung-space-9));
  background:var(--rung-surface);
}

body.ask-route .conversation-workspace{
  min-height:calc(100dvh - var(--rung-space-9));
}

.conversation-header h2{
  margin-top:var(--rung-space-2);
}

.conversation-header p{
  margin:var(--rung-space-2) 0 0;
  color:var(--rung-text-muted);
}

.conversation-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 270px;
  gap:var(--rung-space-7);
  align-items:start;
  padding-top:var(--rung-space-6);
}

.conversation-column{
  min-width:0;
}

.conversation-transcript{
  display:flex;
  flex-direction:column;
  gap:var(--rung-space-3);
  font-size:var(--rung-font-size-body-sm);
}

.chat-message{
  display:grid;
  grid-template-columns:var(--rung-space-6) minmax(0,1fr);
  gap:var(--rung-space-3);
  align-items:start;
  max-width:calc(var(--rung-space-9) * 7);
  scroll-margin-top:calc(var(--rung-space-8) + var(--rung-space-5));
  animation:rungRise var(--rung-dur-enter) var(--rung-ease-enter) both;
}

.chat-message-user{
  display:flex;
  justify-content:flex-end;
  margin-left:auto;
}

.chat-message-wide{
  max-width:none;
}

.assistant-mark{
  display:grid;
  place-items:center;
  width:var(--rung-space-6);
  height:var(--rung-space-6);
  border:1px solid var(--rung-line);
  border-radius:var(--rung-radius-md);
  background:var(--rung-surface);
}

.assistant-mark img{
  width:var(--rung-space-4);
  height:var(--rung-space-4);
}

.message-bubble{
  min-width:0;
  padding:var(--rung-space-4);
  border:1px solid var(--rung-line);
  border-radius:var(--rung-radius-lg);
  border-top-left-radius:var(--rung-radius-sm);
  background:var(--rung-surface-alt);
}

.chat-message-user .message-bubble{
  max-width:calc(var(--rung-space-9) * 6);
  border-color:var(--rung-ink);
  border-top-left-radius:var(--rung-radius-xl);
  border-top-right-radius:var(--rung-radius-sm);
  background:var(--rung-ink);
  color:var(--rung-white);
}

.message-bubble p:last-child{
  margin-bottom:0;
}

.message-bubble h2{
  margin:var(--rung-space-2) 0 var(--rung-space-3);
}

.message-question{
  padding-top:var(--rung-space-3);
  border-top:1px solid var(--rung-line);
  color:var(--rung-text);
  font-weight:700;
}

.response-chips{
  display:flex;
  flex-wrap:wrap;
  gap:var(--rung-space-2);
  margin-top:var(--rung-space-4);
}

.response-chip{
  padding:var(--rung-space-2) var(--rung-space-4);
  border:1px solid var(--rung-line-strong);
  border-radius:var(--rung-pill);
  background:var(--rung-surface);
  color:var(--rung-text);
  font:inherit;
  font-weight:700;
  cursor:pointer;
}

.response-chip:hover{
  border-color:var(--rung-ember-deep);
  color:var(--rung-ember-deep);
}

.options-bubble,
.gap-bubble,
.permission-bubble,
.pii-bubble{
  background:var(--rung-surface);
  box-shadow:var(--rung-shadow-sm);
}

.options-bubble{
  background:var(--rung-surface-alt);
  box-shadow:none;
}

.options-intro{
  color:var(--rung-text);
}

.option-list{
  margin:0;
  padding-left:var(--rung-space-5);
}

.conversation-path{
  padding:var(--rung-space-3) 0;
  border-top:1px solid var(--rung-line);
}

.conversation-path::marker{
  color:var(--rung-ember-deep);
  font-weight:700;
}

.conversation-path-summary{
  cursor:pointer;
  list-style:none;
}

.conversation-path-summary::-webkit-details-marker{ display:none; }

.conversation-path-lead{
  display:block;
}

.conversation-path-toggle{
  display:inline-block;
  margin-top:var(--rung-space-1);
  color:var(--rung-ember-deep);
  font-weight:700;
}

.conversation-path-body{
  margin-top:var(--rung-space-2);
  padding-left:var(--rung-space-3);
  border-left:var(--rung-space-1) solid var(--rung-line-strong);
  color:var(--rung-text-muted);
}

.conversation-path-body p{
  margin-bottom:var(--rung-space-2);
}

.conversation-path-needed{
  color:var(--rung-text-muted);
}

.option-sources{
  display:flex;
  flex-wrap:wrap;
  gap:var(--rung-space-3);
  margin-top:var(--rung-space-3);
}

.source-link{
  display:inline-block;
  color:var(--rung-ember-deep);
  font-weight:700;
}

.personalization-bridge{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:var(--rung-space-3);
  align-items:stretch;
  margin:var(--rung-space-5) 0;
}

.bridge-step{
  display:grid;
  align-content:center;
  gap:var(--rung-space-2);
  min-height:calc(var(--rung-space-9) + var(--rung-space-4));
  padding:var(--rung-space-5);
  border:1px solid var(--rung-line);
  border-radius:var(--rung-radius-lg);
  background:var(--rung-surface-alt);
}

.bridge-step.is-current{
  border-top:var(--rung-space-1) solid var(--rung-dusk);
}

.bridge-mark{
  align-self:center;
  padding:var(--rung-space-2) var(--rung-space-3);
  border-radius:var(--rung-pill);
  background:var(--rung-ember-tint);
  color:var(--rung-ember-deep);
  font-weight:700;
  white-space:nowrap;
}

.message-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--rung-space-3);
  margin-top:var(--rung-space-5);
}

.permission-grid.mechanism{
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin:var(--rung-space-5) 0;
}

.permission-grid.mechanism .step{
  background:var(--rung-surface-alt);
}

.permission-control{
  padding:var(--rung-space-5);
  border:1px solid var(--rung-line);
  border-left:var(--rung-space-1) solid var(--rung-success);
  border-radius:var(--rung-radius-lg);
  background:var(--rung-surface-alt);
}

.demo-warning{
  margin:var(--rung-space-5) 0;
}

.pii-form{
  display:grid;
  gap:var(--rung-space-5);
}

.field-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--rung-space-4);
}

.field{
  display:grid;
  gap:var(--rung-space-2);
}

.field label,
.consent-field{
  color:var(--rung-text);
  font-weight:700;
}

.field input{
  width:100%;
  padding:var(--rung-space-3) var(--rung-space-4);
  border:1px solid var(--rung-line-strong);
  border-radius:var(--rung-radius-md);
  background:var(--rung-surface);
  color:var(--rung-text);
  font:inherit;
}

.field input[aria-invalid="true"]{
  border-color:var(--rung-danger);
}

.field-error{
  display:block;
  min-height:var(--rung-space-4);
  color:var(--rung-danger);
}

.consent-field{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:var(--rung-space-3);
  align-items:start;
  padding:var(--rung-space-4);
  border:1px solid var(--rung-line);
  border-radius:var(--rung-radius-md);
  background:var(--rung-surface-alt);
}

.consent-field input{
  width:var(--rung-space-5);
  height:var(--rung-space-5);
  accent-color:var(--rung-ember-deep);
}

.consent-field .field-error{
  grid-column:2;
}

.pii-form > .btn{
  justify-self:start;
}

.form-service-error{
  margin-bottom:var(--rung-space-4);
}

.success-bubble{
  border-left:var(--rung-space-1) solid var(--rung-success);
}

.composer{
  margin:0;
  padding:var(--rung-space-3);
  border:1px solid var(--rung-line-strong);
  border-radius:var(--rung-radius-xl);
  background:color-mix(in srgb,var(--rung-surface) 94%,transparent);
  box-shadow:var(--rung-shadow-md);
  backdrop-filter:blur(var(--rung-space-2));
}

.conversation-footer{
  position:sticky;
  bottom:0;
  z-index:20;
  display:grid;
  gap:var(--rung-space-3);
  margin-top:var(--rung-space-5);
  padding:var(--rung-space-3) 0;
  background:color-mix(in srgb,var(--rung-surface) 94%,transparent);
  backdrop-filter:blur(var(--rung-space-2));
}

.personalization-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--rung-space-3);
  padding:var(--rung-space-2) var(--rung-space-3);
  border:1px solid var(--rung-line-strong);
  border-left:var(--rung-space-1) solid var(--rung-ember-deep);
  border-radius:var(--rung-radius-lg);
  background:linear-gradient(135deg, color-mix(in srgb,var(--rung-ember) 10%,var(--rung-surface)), color-mix(in srgb,var(--rung-dusk) 12%,var(--rung-surface)));
  box-shadow:var(--rung-shadow-sm);
}

.personalization-footer-copy{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:0 var(--rung-space-3);
  min-width:0;
}

.personalization-footer h4{
  margin:0;
}

.personalization-footer p{
  margin:0;
  color:var(--rung-text-muted);
}

.personalization-footer .btn{
  flex:none;
}

.personalization-cta-mobile{
  display:none;
}

.composer-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:var(--rung-space-3);
  align-items:end;
}

.composer-form textarea{
  min-height:var(--rung-space-8);
  padding:var(--rung-space-3);
}

.journey-rail{
  position:sticky;
  top:calc(var(--rung-space-9) + var(--rung-space-6));
  padding:var(--rung-space-5);
  border:1px solid var(--rung-line);
  border-radius:var(--rung-radius-lg);
  background:var(--rung-surface-alt);
}

.journey-rail h2{
  margin:var(--rung-space-2) 0 var(--rung-space-5);
}

.stage-list{
  display:grid;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}

.stage-list li{
  position:relative;
  display:grid;
  grid-template-columns:var(--rung-space-6) 1fr;
  gap:var(--rung-space-3);
  min-height:var(--rung-space-8);
  color:var(--rung-text-muted);
}

.stage-list li:not(:last-child)::after{
  content:"";
  position:absolute;
  top:var(--rung-space-6);
  bottom:0;
  left:calc(var(--rung-space-4) - 1px);
  width:1px;
  background:var(--rung-line-strong);
}

.stage-number{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  align-self:start;
  width:var(--rung-space-6);
  height:var(--rung-space-6);
  border:1px solid var(--rung-line-strong);
  border-radius:var(--rung-pill);
  background:var(--rung-surface);
  color:var(--rung-text-muted);
  font-weight:700;
}

.stage-copy{
  display:grid;
  align-content:start;
  gap:var(--rung-space-1);
}

.stage-copy strong{
  color:inherit;
}

.stage-copy small{
  color:inherit;
}

.stage-list li.is-active{
  color:var(--rung-text);
}

.stage-list li.is-active .stage-number{
  border-color:var(--rung-ember-deep);
  background:var(--rung-ember-deep);
  color:var(--rung-white);
  box-shadow:0 0 0 var(--rung-space-1) var(--rung-ember-tint);
}

.stage-list li.is-complete{
  color:var(--rung-success);
}

.stage-list li.is-complete .stage-number{
  border-color:var(--rung-success);
  color:var(--rung-success);
}

.rail-trust{
  margin:var(--rung-space-5) 0 0;
  padding-top:var(--rung-space-4);
  border-top:1px solid var(--rung-line);
  color:var(--rung-text-muted);
}

button:focus-visible,
textarea:focus-visible,
input:focus-visible,
summary:focus-visible{
  outline:var(--rung-space-1) solid var(--rung-ember-deep);
  outline-offset:var(--rung-space-1);
}

button:disabled{
  cursor:wait;
  opacity:.7;
}

@keyframes rungRise{
  from{ opacity:0; transform:translateY(var(--rung-space-3)); }
  to{ opacity:1; transform:translateY(0); }
}

@media(max-width:900px){
  .conversation-layout{ grid-template-columns:1fr; }
  .journey-rail{ position:static; grid-row:1; }
  .stage-list{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--rung-space-2); }
  .stage-list li{ display:grid; grid-template-columns:1fr; gap:var(--rung-space-2); min-height:0; }
  .stage-list li:not(:last-child)::after{ top:calc(var(--rung-space-4) - 1px); bottom:auto; left:var(--rung-space-6); right:calc(-1 * var(--rung-space-3)); width:auto; height:1px; }
  .stage-copy small{ display:none; }
  .rail-trust{ display:none; }
}

@media(max-width:680px){
  .arrival{ padding:var(--rung-space-6) 0; }
  .arrival::before,
  .arrival::after{ display:none; }
  .arrival-intro{ margin-bottom:var(--rung-space-5); }
  .ask-panel{ padding:var(--rung-space-2); }
  .ask-form,
  .composer-form{ grid-template-columns:1fr; }
  .ask-submit,
  .composer-form .btn{ width:100%; margin:0; }
  .example-prompts{ grid-template-columns:1fr; }
  .example-prompt:nth-child(n+4){ display:none; }
  .trust-line{ justify-content:flex-start; gap:var(--rung-space-2) var(--rung-space-4); }
  .conversation-workspace{ padding-top:var(--rung-space-4); }
  .conversation-header{ align-items:flex-start; }
  .conversation-header-actions{ justify-content:flex-start; }
  .conversation-header .btn{ padding-left:var(--rung-space-3); padding-right:var(--rung-space-3); }
  .conversation-layout{ gap:var(--rung-space-5); padding-top:var(--rung-space-4); }
  .journey-rail{ padding:var(--rung-space-4); }
  .journey-rail h2{ display:none; }
  .chat-message{ grid-template-columns:var(--rung-space-6) minmax(0,1fr); gap:var(--rung-space-2); }
  .assistant-mark{ width:var(--rung-space-6); height:var(--rung-space-6); }
  .assistant-mark img{ width:var(--rung-space-4); height:var(--rung-space-4); }
  .message-bubble{ padding:var(--rung-space-4); }
  .permission-grid.mechanism,
  .field-grid{ grid-template-columns:1fr; }
  .success-bubble{ align-items:flex-start; }
  .personalization-bridge{ grid-template-columns:1fr; }
  .bridge-mark{ justify-self:center; transform:rotate(90deg); }
  .message-actions .btn{ width:100%; }
  .conversation-footer{ margin-left:calc(-1 * var(--rung-space-2)); margin-right:calc(-1 * var(--rung-space-2)); }
  .personalization-footer{
    display:block;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
  }
  .personalization-footer-copy{ display:none; }
  .personalization-footer .btn{ width:100%; }
  .personalization-cta-desktop{ display:none; }
  .personalization-cta-mobile{ display:inline; }
}

@media(prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .conversation-workspace,
  .chat-message{ animation:none; }
  .example-prompt{ transition:none; }
}
