/* A tangible Roadmap: the question, the people, and the next useful output. */
.hero-experience {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  align-items:center;
  gap:48px;
  padding-block:70px 66px;
}
.hero-message { min-width:0; }
.hero-message>.eyebrow { font-size:12px; letter-spacing:.16em; }
.hero-message h1 {
  font-size:clamp(44px,4.35vw,64px);
  line-height:1.075;
  letter-spacing:-.055em;
  margin-top:22px;
  text-wrap:balance;
}
.hero-message h1 em {
  display:block;
  width:fit-content;
  position:relative;
  font-style:normal;
  color:var(--green);
  max-width:100%;
  margin-top:10px;
  padding-bottom:9px;
}
.hero-message h1 em::after {
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  width:97%;
  height:5px;
  border-radius:50% 40% 35% 50%;
  background:var(--gold);
  transform:rotate(-.6deg);
}
.hero-summary { font-size:18px; line-height:1.75; margin-top:27px; max-width:550px; }
.hero-action { margin-top:28px; font-size:16px; min-height:58px; gap:28px; }
.hero-action svg { width:24px; height:24px; flex:none; fill:none; stroke:currentColor; stroke-width:1.5; }
.hero-note { font-size:13px; margin-top:12px; }
.roadmap-demo {
  min-width:0;
  position:relative;
  isolation:isolate;
  color:white;
}
.demo-frame {
  position:relative;
  border:1px solid #2d5c51;
  border-radius:10px;
  background:var(--green);
  padding:25px 12px 12px;
  box-shadow:0 20px 40px #123e321b,0 3px 7px #123e3214;
}
.roadmap-demo::before,.roadmap-demo::after {
  content:"";
  position:absolute;
  inset:8px;
  z-index:-2;
  pointer-events:none;
  border-radius:8px;
  border:1px solid #d9ded4;
  background:#f0eee8;
  transform:rotate(3deg);
}
.roadmap-demo::after { inset:2px; z-index:-1; border-color:#376155; background:#164c40; transform:rotate(-2deg); }
/* The opaque front prevents the two document edges from tinting the interface. */
.demo-heading,.demo-tabs,.demo-paper { position:relative; }
.demo-heading { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:0 17px; margin-bottom:21px; }
.demo-heading h2 { font-size:38px; letter-spacing:-.05em; }
.demo-invitation { color:#dfebe5; font-size:14px; line-height:1.5; max-width:132px; position:relative; align-self:end; padding-bottom:9px; }
.demo-invitation svg { position:absolute; width:29px; height:29px; left:-26px; bottom:-16px; fill:none; stroke:#b4d0c2; stroke-width:1.3; }
.demo-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding-inline:17px; margin-bottom:12px; }
.demo-tabs button { min-width:0; min-height:46px; border:1px solid #9bbcaf; border-radius:5px; background:transparent; color:#eff6f2; font-size:14px; font-weight:700; padding:10px 7px; line-height:1.3; transition:background .2s,border-color .2s,color .2s; }
.demo-tabs button:hover { background:#ffffff14; border-color:white; }
.demo-tabs button[aria-selected=true] { background:var(--gold); border-color:var(--gold); color:var(--ink); box-shadow:inset 0 0 0 1px #ffffff24; }
.demo-tabs button:focus-visible { outline-color:var(--gold); outline-offset:4px; }
.demo-paper { color:var(--ink); background:var(--paper); border-radius:6px; padding:22px 23px 0; }
.demo-sheet { min-height:340px; display:flex; flex-direction:column; }
.demo-sheet:focus-visible { outline-offset:5px; }
.demo-page-number { font-size:12px; line-height:1.5; letter-spacing:.12em; color:var(--muted); }
.demo-page-number strong { color:var(--ink); }
.demo-transformation { display:grid; grid-template-columns:minmax(0,.9fr) 22px minmax(0,1.1fr); align-items:center; gap:14px; margin-top:12px; min-height:82px; }
.demo-question { color:var(--green); background:var(--sage); padding:12px; font-size:14px; font-weight:600; line-height:1.45; border-radius:5px; }
.demo-transformation>svg { width:22px; height:22px; fill:none; stroke:var(--mid); stroke-width:1.4; }
.demo-transformation h3 { font-size:25px; line-height:1.17; letter-spacing:-.035em; }
.demo-diagram { margin-top:26px; }
.demo-nodes { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; margin:0; }
.demo-node { display:flex; align-items:center; justify-content:center; min-height:48px; padding:10px 5px; border:1px solid #6e9184; border-radius:5px; font-size:14px; line-height:1.4; font-weight:600; text-align:center; background:#fbfaf7; }
.demo-connector { height:45px; position:relative; margin-inline:16.6667%; }
.demo-connector::before { content:""; position:absolute; inset:0 0 21px; border:1px solid #82a293; border-top:0; }
.demo-connector::after { content:""; position:absolute; left:50%; top:0; bottom:9px; border-left:1px solid #577f6c; }
.demo-connector span { position:absolute; left:calc(50% - 4px); bottom:9px; width:9px; height:9px; border-right:1px solid #577f6c; border-bottom:1px solid #577f6c; transform:rotate(45deg); }
.demo-outcome { display:flex; align-items:center; justify-content:center; min-height:62px; padding:13px; border-radius:5px; background:var(--sage); color:var(--green); font-size:18px; font-weight:800; line-height:1.4; text-align:center; letter-spacing:-.025em; }
.demo-payoff { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:23px 20px; margin-top:auto; }
.demo-payoff>p { min-width:0; display:flex; align-items:center; gap:10px; color:var(--ink); font-size:14px; line-height:1.5; max-width:250px; }
.demo-check { display:flex; justify-content:center; align-items:center; flex:none; width:26px; height:26px; border-radius:50%; background:var(--green); color:white; }
.demo-check svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.6; }
.demo-next { display:flex; flex:none; align-items:center; justify-content:space-between; gap:9px; min-height:43px; padding:10px 12px; border:1px solid var(--green); border-radius:5px; background:var(--green); color:white; font-size:14px; font-weight:700; line-height:1.4; transition:background .2s; }
.demo-next:hover { background:#1a5548; }
.demo-next svg { fill:none; stroke:currentColor; stroke-width:1.5; height:19px; width:19px; flex:none; transition:transform .2s; }
.demo-next:hover svg { transform:translateX(3px); }
.demo-caption { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-block:15px 17px; border-top:1px solid var(--line); font-size:12px; color:var(--muted); }
.demo-caption a { display:flex; align-items:center; gap:4px; color:var(--green); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.demo-caption a svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.3; }
.hero-experience+.shell>.offer-facts { padding-block:25px; }
.hero-experience+.shell>.offer-facts dd { font-size:13px; }
@media(prefers-reduced-motion:no-preference) {
  .hero-message h1 em::after { transform-origin:left; animation:hero-underline .7s .15s both; }
  .demo-sheet.is-revealing .demo-transformation { animation:demo-reveal .3s both; }
  .demo-sheet.is-revealing .demo-node { animation:demo-reveal .32s .04s both; }
  .demo-sheet.is-revealing .demo-node:nth-child(2) { animation-delay:.1s; }
  .demo-sheet.is-revealing .demo-node:nth-child(3) { animation-delay:.16s; }
  .demo-sheet.is-revealing .demo-connector { transform-origin:top; animation:demo-connect .32s .18s both; }
  .demo-sheet.is-revealing .demo-outcome { animation:demo-reveal .35s .3s both; }
}
@keyframes demo-reveal { from { opacity:.25; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes demo-connect { from { opacity:0; transform:scaleY(.3); } to { opacity:1; transform:scaleY(1); } }
@keyframes hero-underline { from { transform:scaleX(0) rotate(-.6deg); } to { transform:scaleX(1) rotate(-.6deg); } }
@media(min-width:1450px) {
  .hero-experience { padding-block:76px 70px; }
  .hero-message h1 { font-size:64px; }
}
@media(max-width:1100px) {
  .hero-experience { gap:31px; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); padding-block:54px 52px; }
  .hero-message h1 { font-size:44px; }
  .hero-message>.eyebrow { font-size:11px; letter-spacing:.11em; }
  .hero-summary { font-size:16px; line-height:1.7; margin-top:23px; }
  .hero-action { font-size:14px; padding-inline:18px; gap:14px; }
  .hero-note { font-size:12px; }
  .demo-frame { padding:23px 10px 10px; }
  .demo-heading { padding-inline:11px; }
  .demo-heading h2 { font-size:31px; }
  .demo-heading>div>p { font-size:14px; }
  .demo-invitation { max-width:95px; }
  .demo-invitation svg { display:none; }
  .demo-tabs { padding-inline:11px; gap:6px; }
  .demo-paper { padding:20px 18px 0; }
  .demo-sheet { min-height:369px; }
  .demo-transformation { grid-template-columns:1fr; gap:9px; min-height:110px; }
  .demo-transformation>svg { display:none; }
  .demo-transformation h3 { grid-column:1/-1; font-size:25px; }
  .demo-transformation h3 br { display:none; }
  .demo-question { padding:8px 10px; justify-self:start; }
  .demo-diagram { margin-top:19px; }
  .demo-nodes { gap:8px; }
  .demo-node { font-size:14px; }
  .demo-outcome { font-size:16px; }
  .demo-payoff { gap:10px; flex-wrap:wrap; padding-block:20px 17px; }
  .demo-payoff>p { max-width:none; width:100%; }
  .demo-next { margin-left:auto; }
}
@media(max-width:760px) {
  .hero-experience { grid-template-columns:1fr; gap:44px; padding-block:38px 43px; }
  .hero-message h1 { max-width:620px; font-size:clamp(45px,9vw,52px); text-wrap:balance; margin-top:18px; }
  .hero-message h1 em { margin-top:6px; }
  .hero-summary { max-width:590px; margin-top:24px; }
  .hero-action { font-size:16px; margin-top:24px; }
  .hero-note { font-size:13px; }
  .roadmap-demo { width:100%; max-width:600px; margin-inline:auto; }
  .demo-frame { padding:25px 10px 10px; }
  .roadmap-demo::before { transform:rotate(1.8deg); }
  .roadmap-demo::after { transform:rotate(-1deg); }
  .demo-heading { padding-inline:12px; }
  .demo-heading h2 { font-size:34px; }
  .demo-invitation { max-width:127px; }
  .demo-tabs { padding-inline:12px; }
  .demo-paper { padding:21px 21px 0; margin:20px 10px 10px; }
  .demo-sheet { min-height:343px; }
  .demo-transformation { grid-template-columns:minmax(0,.9fr) 20px minmax(0,1.1fr); min-height:86px; gap:11px; }
  .demo-transformation>svg { display:block; }
  .demo-transformation h3 { grid-column:auto; font-size:24px; }
  .demo-node { font-size:14px; }
  .demo-outcome { font-size:18px; }
  .demo-payoff { flex-wrap:wrap; gap:14px; }
  .demo-payoff>p { width:100%; }
  .hero-experience+.shell>.offer-facts { gap:13px; }
  .hero-experience+.shell>.offer-facts dd { font-size:12px; }
}
@media(max-width:450px) {
  .hero-message h1 { font-size:clamp(35px,10.2vw,45px); }
  .hero-message h1 em { padding-bottom:8px; }
  .hero-message h1 em::after { height:4px; }
  .hero-action { width:100%; font-size:15px; padding-inline:19px; }
  .hero-note { text-align:center; font-size:12px; }
  .demo-heading h2 { font-size:29px; }
  .demo-heading>div>p { font-size:13px; }
  .demo-invitation { max-width:105px; font-size:13px; }
  .demo-heading { gap:10px; padding-inline:8px; }
  .demo-tabs { padding-inline:8px; gap:5px; }
  .demo-tabs button { font-size:14px; padding-inline:5px; }
  .demo-paper { padding:19px 16px 0; }
  .demo-transformation { grid-template-columns:1fr; min-height:113px; }
  .demo-transformation>svg { display:none; }
  .demo-transformation h3 { grid-column:1/-1; font-size:25px; }
  .demo-sheet { min-height:381px; }
  .demo-nodes { gap:6px; }
  .demo-node { font-size:14px; padding-inline:3px; }
  .demo-outcome { font-size:16px; min-height:65px; }
  .demo-payoff { flex-wrap:wrap; gap:13px; }
  .demo-payoff>p { width:100%; }
  .demo-caption { font-size:12px; gap:8px; }
  .hero-experience+.shell>.offer-facts dd { font-size:11px; max-width:none; }
}
@media(max-width:390px) {
  .demo-heading { flex-wrap:wrap; }
  .demo-invitation { max-width:none; padding-bottom:0; }
  .demo-nodes { grid-template-columns:1fr; gap:8px; }
  .demo-node { min-height:38px; font-size:14px; }
  .demo-connector { margin-inline:0; height:27px; }
  .demo-connector::before { display:none; }
  .demo-sheet { min-height:0; }
  .demo-caption { flex-wrap:wrap; }
}

@media(max-width:350px) { .hero-message h1 { font-size:34px; } }
