
:root{--bg:#f7f5f0;--ink:#222a35;--muted:#6f7680;--blue:#145da0;--teal:#2a9d8f;--gold:#c5a46d;--line:#d9d4ca;--soft:#ece8df;--frame:#1d2025}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{background:var(--frame);color:var(--ink);overflow:hidden}button{font:inherit}.course-shell{width:calc(100% - 44px);max-width:1440px;height:calc(100dvh - 44px);min-height:680px;margin:22px auto;position:relative;overflow:hidden;border-radius:24px;background:var(--bg);box-shadow:0 30px 80px rgba(0,0,0,.32)}.progress{height:6px;background:var(--soft);position:absolute;inset:0 0 auto;z-index:50}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--teal));transition:width .4s ease}.scene{position:absolute;inset:6px 0 0;display:grid;place-items:center;padding:clamp(26px,5vw,82px);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .48s ease,transform .48s ease;overflow-y:auto}.scene.active{opacity:1;transform:none;pointer-events:auto}.panel{width:min(1080px,100%);text-align:center}.logo{display:block;width:min(700px,76vw);height:auto;margin:0 auto 20px}.course-title{font-size:clamp(3rem,7vw,6.8rem);margin:0}.course-subtitle{font-size:clamp(1.2rem,2.2vw,1.8rem);color:var(--muted);margin:12px auto 0}.prose-panel{max-width:980px}h1,h2,p{margin-top:0}h1{font-size:clamp(2.35rem,5vw,5.2rem);line-height:1.07;letter-spacing:-.043em;margin-bottom:22px}h2{font-size:clamp(1.55rem,2.8vw,2.45rem);line-height:1.18}p{font-size:clamp(1.05rem,1.65vw,1.38rem);line-height:1.62;max-width:860px;margin-left:auto;margin-right:auto}.large{font-size:clamp(1.23rem,2.1vw,1.72rem)}.small{font-size:.95rem;color:var(--muted)}.accent{color:var(--blue)}.kicker,.question-label{font-size:1.04rem;letter-spacing:.18em;text-transform:uppercase;color:#1f2329;font-weight:750;margin-bottom:22px}.number{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;margin:0 auto 24px;background:var(--ink);color:var(--bg);font-size:2.2rem;font-weight:850}.primary{margin-top:32px;border:0;background:none;color:var(--ink);font-weight:700;cursor:pointer;padding:10px 4px}.primary span{display:inline-block;margin-left:8px;transition:transform .2s ease}.primary:hover span{transform:translateX(6px)}.back,.restart-link{display:block;margin:30px auto 0;border:0;background:none;color:var(--muted);font-size:.84rem;font-weight:500;cursor:pointer}.back:hover,.restart-link:hover{text-decoration:underline;color:var(--ink)}.restart-link{margin-top:16px}.scene-nav{display:flex;flex-direction:column;align-items:center}.closing-line{font-weight:700;color:var(--blue);margin-top:28px}.two-barriers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:34px auto 0;max-width:940px}.two-barriers article{padding:27px;border-radius:18px;background:rgba(255,255,255,.58);border:1px solid var(--line)}.two-barriers span{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 17px;border-radius:50%;background:var(--ink);color:#fff;font-weight:850;font-size:1.35rem}.two-barriers h2{font-size:1.52rem;margin:0 0 10px}.two-barriers p{font-size:1rem;margin:0}.questions{list-style:none;padding:0;margin:27px auto 0;max-width:760px;text-align:left;display:grid;gap:13px}.questions li{font-size:clamp(1.08rem,1.65vw,1.35rem);padding-left:27px;position:relative}.questions li::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--gold);position:absolute;left:2px;top:.66em}.statement{font-size:clamp(1.8rem,3.8vw,3.5rem);font-weight:650;line-height:1.25;margin:12px auto}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(930px,100%);margin:20px auto 0}.choice,.tea-choice{min-height:68px;border:1px solid var(--line);border-radius:15px;padding:15px 17px;background:rgba(255,255,255,.78);color:var(--ink);cursor:pointer;text-align:left;transition:transform .18s ease,border-color .18s ease,background .18s ease}.choice:hover,.tea-choice:hover{transform:translateY(-2px);border-color:var(--blue);background:#fff}.choice.selected,.tea-choice.selected{border-color:var(--blue);background:#eef5fb;box-shadow:0 0 0 2px rgba(20,93,160,.08)}.hidden{display:none!important}
/* Teams */.teams-scene{align-items:start;padding-top:28px}.teams-wrap{width:min(1120px,100%);text-align:center}.teams-window{height:min(480px,50vh);min-height:350px;display:grid;grid-template-columns:70px 230px 1fr;background:#fff;border:1px solid #d9dbe4;border-radius:16px;overflow:hidden;box-shadow:0 18px 55px rgba(31,37,57,.14);text-align:left;font-family:"Segoe UI",Inter,sans-serif;transition:opacity .45s ease,filter .45s ease}.teams-window.reflection{opacity:.72;filter:saturate(.8)}.teams-rail{background:#292b38;color:#d7d9e4;padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:9px;font-size:.68rem}.teams-rail div{width:52px;min-height:48px;border-radius:8px;display:grid;place-items:center;text-align:center}.teams-rail .active{background:#45485d;color:#fff}.teams-sidebar{background:#f5f5f8;border-right:1px solid #e0e1e8;padding:18px 14px}.teams-sidebar strong{display:block;margin-bottom:16px;font-size:.95rem}.channel{padding:10px;border-radius:6px;color:#555b66}.channel.active{background:#e7e7f2;color:#34365e;font-weight:700}.teams-main{display:grid;grid-template-rows:auto 1fr;min-width:0}.teams-main header{padding:13px 20px;border-bottom:1px solid #e3e4e9;display:flex;gap:12px;align-items:center}.teams-main header div:last-child{display:flex;flex-direction:column}.teams-main header span{font-size:.75rem;color:var(--muted)}.team-icon{width:38px;height:38px;border-radius:8px;background:#6264a7;color:#fff;display:grid;place-items:center;font-weight:800}.teams-chat{padding:22px 28px;background:#f7f7fa;display:flex;flex-direction:column;gap:18px;overflow:hidden}.chat-row{display:flex;gap:11px;align-items:flex-start;opacity:0;transform:translateY(8px)}.chat-row.visible{animation:rise .4s ease forwards}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:800;flex:0 0 auto}.mia{background:#d9e1f4;color:#354a7b}.jordan{background:#e0d9ef;color:#5c4779}.message-body{min-width:0}.meta{display:flex;gap:10px;align-items:center;margin-bottom:5px}.meta strong{font-size:.9rem}.meta span{font-size:.73rem;color:#7a808b}.chat-bubble{display:inline-block;padding:12px 14px;border-radius:4px 14px 14px 14px;background:#fff;border:1px solid #e0e1e6;font-size:.93rem;line-height:1.45;max-width:620px}.typing-bubble{display:flex;gap:5px;padding:12px 15px;border-radius:4px 14px 14px 14px;background:#fff;border:1px solid #e0e1e6;width:58px}.typing-bubble i{width:7px;height:7px;border-radius:50%;background:#747986;animation:typing 1.1s infinite}.typing-bubble i:nth-child(2){animation-delay:.15s}.typing-bubble i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,100%{transform:translateY(0);opacity:.55}30%{transform:translateY(-5px);opacity:1}}.teams-prompt{margin-top:18px;opacity:0;transform:translateY(8px)}.teams-prompt.visible{animation:rise .45s ease forwards}.teams-prompt h2{margin-bottom:5px}.scene-back{margin-top:23px}@keyframes rise{to{opacity:1;transform:none}}
/* Tea */.tea-scene{align-items:start;padding-top:18px}.tea-layout{width:min(1180px,100%);text-align:center}.tea-stage{position:relative;min-height:570px;border-radius:22px;overflow:hidden;border:1px solid #cfc6b9;box-shadow:0 24px 64px rgba(23,28,36,.18);background:#ddd}.tea-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.tea-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,21,28,.03),rgba(16,21,28,.14));transition:background .7s ease,backdrop-filter .7s ease;z-index:1}.tea-stage.frozen .tea-shade{background:rgba(15,20,27,.44);backdrop-filter:blur(5px)}.character{position:absolute;z-index:3;width:220px;margin:0;opacity:.8;transform:scale(.97);transition:opacity .4s ease,transform .4s ease,filter .4s ease}.character img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 16px 36px rgba(17,22,29,.2)}.character figcaption{display:inline-block;margin-top:6px;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.92);font-size:.74rem;font-weight:750}.character.speaking{opacity:1;transform:scale(1.035);filter:saturate(1.08)}.character.dimmed{opacity:.22!important;filter:grayscale(.4) blur(.5px);transform:scale(.95)}.sarah{left:27%;bottom:24px}.mark{left:50%;bottom:24px}.emma{right:3%;bottom:24px}.learner{width:205px;left:-240px;bottom:18px;opacity:0}.learner.entering{animation:walkIn 1.15s cubic-bezier(.2,.8,.2,1) forwards}@keyframes walkIn{0%{left:-240px;opacity:0}70%{opacity:1}100%{left:4%;opacity:1}}.bubble{position:absolute;z-index:5;max-width:350px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.97);border:1px solid #d9d4ca;box-shadow:0 14px 34px rgba(22,27,34,.18);text-align:left;opacity:0;transform:translateY(10px) scale(.97)}.bubble.visible{animation:rise .45s ease forwards}.bubble strong{font-size:.78rem;color:#4c5562}.bubble p{font-size:.92rem;line-height:1.42;margin:5px 0 0}.bubble-sarah{left:20%;top:22px}.bubble-mark{left:43%;top:142px}.bubble-emma{right:2%;top:28px}.moment{position:absolute;inset:0;z-index:8;display:grid;place-content:center;color:#fff;opacity:0;pointer-events:none;text-shadow:0 3px 18px rgba(0,0,0,.5)}.moment.visible{animation:rise .65s ease forwards}.moment h1{margin-bottom:10px}.moment p{font-size:1.4rem}.tea-question{margin-top:18px;opacity:0;transform:translateY(10px)}.tea-question.visible{animation:rise .5s ease forwards}.tea-feedback{max-width:720px;margin:16px auto 0;padding:0;background:transparent;border:0}.tea-feedback h2{margin:5px auto}.tea-feedback p{font-size:1.05rem}.tea-feedback .primary{margin-top:18px}.tea-question.answered>.choice-grid,.tea-question.answered>h2{animation:fadeChoices .35s ease forwards;pointer-events:none}@keyframes fadeChoices{to{opacity:0;height:0;margin:0;overflow:hidden}}
/* Ending */.manifesto-stack p{font-size:clamp(2.1rem,4.8vw,4.8rem);line-height:1.08;font-weight:750;letter-spacing:-.04em;margin:12px auto}.next-module{display:inline-flex;flex-direction:column;gap:4px;margin-top:25px;padding:18px 24px;border-radius:14px;background:rgba(255,255,255,.58);border:1px solid var(--line)}.next-module span{font-size:.78rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.final-scene h1 span{color:var(--blue)}.keyboard-hint{position:absolute;right:26px;bottom:18px;font-size:.78rem;color:var(--muted);z-index:30}
@media(max-width:900px){.course-shell{width:calc(100% - 22px);height:calc(100dvh - 22px);margin:11px auto;border-radius:18px;min-height:620px}.scene{padding:24px 20px 48px}.two-barriers,.choice-grid{grid-template-columns:1fr}.teams-window{grid-template-columns:1fr;height:380px}.teams-rail,.teams-sidebar{display:none}.tea-stage{min-height:700px}.character{width:180px}.sarah{left:25%}.mark{left:50%}.emma{right:2%}.learner{width:175px}.bubble{left:5%!important;right:5%!important;max-width:none}.bubble-sarah{top:18px}.bubble-mark{top:165px}.bubble-emma{top:330px}}
@media(max-width:620px){body{overflow:auto}.course-shell{width:100%;height:auto;min-height:100dvh;margin:0;border-radius:0}.scene{min-height:calc(100dvh - 6px)}.keyboard-hint{display:none}.tea-stage{min-height:790px}.character{width:135px}.sarah{left:30%;bottom:26px}.mark{left:55%;bottom:26px}.emma{right:1%;bottom:26px}.learner{width:140px}.learner.entering{animation-name:walkInMobile}@keyframes walkInMobile{0%{left:-170px;opacity:0}100%{left:1%;opacity:1}}}


/* Teams reflection feedback */
.teams-feedback{
  width:min(760px,100%);
  margin:14px auto 0;
  padding:12px 16px;
  border-radius:12px;
  background:rgba(255,255,255,.72);
  border:1px solid var(--line);
}
.teams-feedback p{
  margin:2px auto;
  font-size:.98rem;
  line-height:1.45;
}

/* Laptop-height sizing: keep ordinary text pages within the viewport */
@media (max-height:900px) and (min-width:701px){
  .course-shell{
    min-height:0;
  }
  .scene{
    padding:20px clamp(28px,4vw,58px) 38px;
  }
  h1{
    font-size:clamp(2.05rem,3.7vw,3.65rem);
    margin-bottom:16px;
  }
  h2{
    font-size:clamp(1.4rem,2.3vw,2.05rem);
  }
  p{
    font-size:clamp(.98rem,1.3vw,1.16rem);
    line-height:1.48;
    margin-bottom:12px;
  }
  .large{
    font-size:clamp(1.08rem,1.65vw,1.38rem);
  }
  .kicker,.question-label{
    font-size:.88rem;
    margin-bottom:14px;
  }
  .primary{
    margin-top:20px;
  }
  .back,.restart-link{
    margin-top:18px;
  }
  .number{
    width:62px;
    height:62px;
    font-size:1.7rem;
    margin-bottom:16px;
  }
  .questions{
    margin-top:18px;
    gap:8px;
  }
  .questions li{
    font-size:1.05rem;
  }
  .closing-line{
    margin-top:18px;
  }
  .two-barriers{
    margin-top:22px;
    gap:14px;
  }
  .two-barriers article{
    padding:20px;
  }
  .statement{
    font-size:clamp(1.55rem,2.8vw,2.55rem);
    margin:8px auto;
  }
  .prose-panel{
    max-width:900px;
  }
  .prose-panel h1{
    font-size:clamp(2rem,3.3vw,3.2rem);
  }
  .prose-panel p{
    margin-bottom:9px;
  }
  .teams-scene{
    padding-top:16px;
  }
  .teams-window{
    height:clamp(300px,42vh,390px);
    min-height:300px;
  }
  .teams-chat{
    padding:16px 22px;
    gap:13px;
  }
  .teams-prompt{
    margin-top:12px;
  }
  .teams-prompt h2{
    margin-bottom:2px;
  }
  .teams-prompt .choice-grid{
    margin-top:12px;
    gap:8px;
  }
  .teams-prompt .choice{
    min-height:52px;
    padding:11px 14px;
    font-size:.92rem;
  }
  .teams-feedback{
    margin-top:10px;
    padding:9px 14px;
  }
  .teams-feedback p{
    font-size:.9rem;
  }
  .teams-prompt .primary{
    margin-top:12px;
  }
  .teams-scene .scene-back{
    margin-top:12px;
  }
  .manifesto-stack p{
    font-size:clamp(1.85rem,4vw,3.8rem);
  }
}

@media (max-height:760px) and (min-width:701px){
  .scene{
    padding-top:14px;
    padding-bottom:30px;
  }
  h1{
    font-size:clamp(1.85rem,3.2vw,3rem);
  }
  .prose-panel h1{
    font-size:clamp(1.8rem,2.9vw,2.7rem);
  }
  p{
    font-size:.96rem;
    line-height:1.4;
    margin-bottom:8px;
  }
  .primary{
    margin-top:14px;
  }
  .back{
    margin-top:12px;
  }
  .teams-window{
    height:300px;
  }
  .teams-prompt .choice{
    min-height:46px;
    padding:9px 12px;
  }
}


.question-marker{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:9px;
  margin:0 auto 20px;
}

.question-marker span{
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--blue);
  color:#fff;
  font-size:1.65rem;
  font-weight:850;
  box-shadow:0 8px 20px rgba(20,93,160,.18);
}

.question-marker strong{
  font-size:.88rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:#1f2329;
}

@media(max-height:800px) and (min-width:700px){
  .question-marker{
    gap:6px;
    margin-bottom:14px;
  }

  .question-marker span{
    width:50px;
    height:50px;
    font-size:1.35rem;
  }

  .question-marker strong{
    font-size:.78rem;
  }
}


/* Teams page refinement */
.teams-shell{
  height:min(500px,57vh) !important;
  min-height:390px !important;
}

.chat-area{
  padding:14px 22px 16px !important;
  gap:10px !important;
  overflow:visible !important;
}

.chat-row{
  gap:9px !important;
}

.chat-bubble{
  font-size:.88rem !important;
  line-height:1.32 !important;
  padding:10px 13px !important;
}

.message-body .meta{
  margin-bottom:4px !important;
  font-size:.78rem !important;
}

.chat-row .avatar{
  width:33px !important;
  height:33px !important;
  font-size:.78rem !important;
}

.teams-prompt{
  margin-top:12px !important;
}

.teams-prompt h2{
  margin-bottom:2px !important;
}

.teams-options{
  gap:9px !important;
  margin-top:13px !important;
}

.teams-thought{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-height:56px !important;
  padding:11px 14px !important;
  border-radius:19px !important;
  background:rgba(255,255,255,.92) !important;
  box-shadow:0 6px 18px rgba(31,37,57,.06);
}

.thought-icon{
  flex:0 0 auto;
  font-size:1.12rem;
  line-height:1;
}

.teams-feedback{
  max-width:590px !important;
  margin:12px auto 0 !important;
  padding:10px 14px !important;
  border-radius:12px !important;
}

.teams-feedback p{
  margin:2px auto !important;
  font-size:.96rem !important;
  line-height:1.38 !important;
}

@media(max-height:800px) and (min-width:700px){
  .teams-shell{
    height:min(445px,55vh) !important;
    min-height:355px !important;
  }

  .chat-area{
    padding:11px 18px 12px !important;
    gap:8px !important;
  }

  .chat-bubble{
    font-size:.81rem !important;
    line-height:1.25 !important;
    padding:8px 11px !important;
  }

  .teams-prompt{
    margin-top:8px !important;
  }

  .teams-prompt h2{
    font-size:1.4rem !important;
  }

  .teams-options{
    margin-top:9px !important;
  }

  .teams-thought{
    min-height:48px !important;
    padding:8px 12px !important;
    border-radius:16px !important;
    font-size:.88rem !important;
  }

  .teams-feedback{
    margin-top:8px !important;
    padding:8px 12px !important;
  }
}


/* Version 3.1 consolidated refinements */
.two-barriers article p{
  margin:10px auto 0;
  max-width:360px;
  font-size:1rem;
  line-height:1.5;
  color:var(--muted);
}

.question-body{
  width:min(690px,100%);
  margin:28px auto 0;
  text-align:left;
}

.question-body p{
  max-width:none;
  margin:0 0 17px;
  font-size:1.08rem;
  line-height:1.68;
}

.question-body p:last-child{margin-bottom:0}

.final-confidence{
  line-height:1.35;
}

.final-confidence span{
  display:inline-block;
  margin-top:14px;
  font-weight:750;
  color:var(--blue);
}

.tea-stage .moment{
  align-content:end !important;
  padding-bottom:68px !important;
}

.tea-feedback{
  max-width:650px !important;
  padding:14px 18px !important;
}

.tea-feedback p{
  margin:4px auto !important;
}

/* Learner stops in clear space beside the group */
.learner{
  width:185px !important;
  left:-230px !important;
  bottom:18px !important;
  z-index:4 !important;
}

@keyframes walkIn{
  0%{left:-230px;opacity:0;transform:translateY(8px)}
  70%{opacity:1}
  100%{left:1.5%;opacity:1;transform:none}
}

.sarah{left:18% !important}

@media(max-height:800px) and (min-width:700px){
  .question-body{margin-top:18px}
  .question-body p{
    margin-bottom:11px;
    font-size:.98rem;
    line-height:1.52;
  }
  .tea-stage .moment{padding-bottom:42px !important}
  .two-barriers article p{
    font-size:.9rem;
    line-height:1.4;
  }
}

@media(max-height:760px) and (min-width:900px){
  .scene{
    padding-top:22px !important;
    padding-bottom:34px !important;
  }
  h1{
    font-size:clamp(2.1rem,4.2vw,4.1rem) !important;
    margin-bottom:14px !important;
  }
  p{
    font-size:1rem !important;
    line-height:1.48 !important;
  }
  .large{font-size:1.15rem !important}
  .primary{margin-top:22px !important}
  .back{margin-top:22px !important}
}

@media(max-width:850px){
  .learner{width:155px !important}
  .sarah{left:20% !important}
}

@media(max-width:600px){
  .learner{width:130px !important}
  .sarah{left:22% !important}
}


/* Version 3.2 */

/* Keep tea-room choices visible after an answer is selected. */
.tea-question.answered > .choice-grid,
.tea-question.answered > h2{
  animation:none !important;
  opacity:1 !important;
  height:auto !important;
  margin-left:auto !important;
  margin-right:auto !important;
  overflow:visible !important;
  pointer-events:auto !important;
}

/* Selected tea-room answer remains highlighted while the others stay visible. */
.tea-choice.selected{
  border-color:var(--blue) !important;
  background:#eef5fb !important;
  box-shadow:0 0 0 2px rgba(20,93,160,.10) !important;
}

/* Restore and stabilise the learner entrance. */
.learner{
  opacity:0 !important;
  visibility:visible !important;
  display:block !important;
  width:185px !important;
  left:-220px !important;
  bottom:18px !important;
  z-index:6 !important;
}

.learner.entering{
  opacity:1 !important;
  visibility:visible !important;
  animation:walkInV32 1.15s cubic-bezier(.2,.8,.2,1) forwards !important;
}

@keyframes walkInV32{
  0%{
    left:-220px;
    opacity:0;
    transform:translateY(8px);
  }
  65%{
    opacity:1;
  }
  100%{
    left:2%;
    opacity:1;
    transform:none;
  }
}

/* Leave a clear space for the learner beside the group. */
.sarah{left:20% !important}
.mark{left:47% !important}
.emma{right:2% !important}

/* Tea-room feedback. */
.tea-feedback-opening{
  font-size:clamp(1.25rem,2vw,1.65rem) !important;
  color:var(--blue);
}

.tea-feedback-closing{
  font-size:clamp(1.2rem,1.9vw,1.55rem) !important;
  color:var(--ink);
}

/* Hero pages must retain large typography on laptop screens. */
.statement-scene .kicker{
  font-size:1.08rem !important;
}

.statement-scene .statement{
  font-size:clamp(1.8rem,3.8vw,3.5rem) !important;
  line-height:1.25 !important;
  margin:14px auto !important;
}

.statement-scene .panel > p:not(.statement){
  font-size:clamp(1.08rem,1.7vw,1.4rem) !important;
  margin-top:24px !important;
}

.philosophy-scene .manifesto-stack p{
  font-size:clamp(2.1rem,4.8vw,4.8rem) !important;
  line-height:1.08 !important;
  font-weight:750 !important;
  margin:12px auto !important;
}

.philosophy-scene .manifesto-stack p:last-of-type{
  font-size:clamp(1.4rem,2.8vw,2.6rem) !important;
  margin-top:24px !important;
}

/* Final message spacing. */
.final-confidence{
  line-height:1.4 !important;
}

.final-confidence span{
  display:inline-block;
  margin-top:18px;
  color:var(--blue);
  font-weight:750;
}

@media(max-height:800px) and (min-width:700px){
  .statement-scene .statement{
    font-size:clamp(1.55rem,3.1vw,2.65rem) !important;
    margin:10px auto !important;
  }

  .statement-scene .panel > p:not(.statement){
    font-size:1.05rem !important;
    margin-top:18px !important;
  }

  .philosophy-scene .manifesto-stack p{
    font-size:clamp(1.9rem,4vw,3.6rem) !important;
  }

  .philosophy-scene .manifesto-stack p:last-of-type{
    font-size:clamp(1.2rem,2.2vw,1.9rem) !important;
    margin-top:18px !important;
  }

  .learner{
    width:160px !important;
  }
}

@media(max-width:850px){
  .learner{
    width:150px !important;
  }

  @keyframes walkInV32{
    0%{
      left:-180px;
      opacity:0;
    }
    100%{
      left:1%;
      opacity:1;
    }
  }

  .sarah{left:22% !important}
}


/* Version 3.3 clean tea-room animation */
.tea-stage{
  position:relative !important;
  min-height:570px !important;
  overflow:hidden !important;
}

.sarah{left:19% !important;bottom:24px !important;width:215px !important}
.mark{left:45% !important;bottom:24px !important;width:215px !important}
.emma{right:3% !important;bottom:24px !important;width:215px !important}

.learner{
  display:block !important;
  visibility:visible !important;
  opacity:0 !important;
  left:-210px !important;
  bottom:18px !important;
  width:180px !important;
  z-index:8 !important;
  transform:none !important;
}

.learner.entering{
  animation:learnerWalkInV33 1.25s cubic-bezier(.2,.8,.2,1) forwards !important;
}

.learner.visible-final{
  left:2% !important;
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}

@keyframes learnerWalkInV33{
  0%{left:-210px;opacity:0;transform:translateY(8px)}
  35%{opacity:1}
  100%{left:2%;opacity:1;transform:none}
}

.tea-stage.frozen .learner{
  opacity:1 !important;
  filter:none !important;
}

.tea-stage .moment{
  display:grid !important;
  place-content:end center !important;
  padding:0 20px 62px !important;
}

.tea-stage .moment h1{
  margin:0 !important;
  color:#fff !important;
  text-shadow:0 4px 20px rgba(0,0,0,.75);
}

@media(max-height:800px) and (min-width:700px){
  .tea-stage{min-height:500px !important}
  .sarah,.mark,.emma{width:185px !important}
  .learner{width:155px !important}
  .tea-stage .moment{padding-bottom:38px !important}
}


/* Version 3.4 framework */
.framework-intro .large{max-width:720px}

.framework-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  width:min(760px,100%);
  margin:34px auto 0;
}

.framework-strip div{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:22px 14px;
  border:1px solid rgba(20,93,160,.18);
  border-radius:20px;
  background:#fff;
  box-shadow:0 10px 26px rgba(31,37,57,.06);
}

.framework-strip span,
.framework-marker span{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--blue);
  color:#fff;
  font-size:1.45rem;
  font-weight:850;
}

.framework-strip strong{font-size:1.25rem;color:var(--ink)}

.framework-marker{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:9px;
  margin:0 auto 20px;
}

.framework-marker strong{
  font-size:.98rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink);
}

/* Smooth, fully visible learner glide. */
.learner{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  left:-205px !important;
  bottom:18px !important;
  width:180px !important;
  z-index:8 !important;
  transform:none !important;
  transition:none !important;
}

.learner.gliding{
  left:2% !important;
  opacity:1 !important;
  transition:left 1.6s cubic-bezier(.22,.78,.2,1) !important;
}

.learner.arrived{
  left:2% !important;
  opacity:1 !important;
  transition:none !important;
}

.tea-stage.frozen .learner{
  left:2% !important;
  opacity:1 !important;
  filter:none !important;
}

@media(max-height:800px) and (min-width:700px){
  .framework-strip{margin-top:22px}
  .framework-strip div{padding:15px 12px}
  .framework-strip span,.framework-marker span{
    width:48px;height:48px;font-size:1.2rem
  }
}

@media(max-width:700px){
  .framework-strip{grid-template-columns:1fr}
}


/* Version 3.4.1 release-candidate refinements */
.barrier-list{
  width:min(620px,100%);
  margin:28px auto 0 !important;
  padding-left:1.4rem !important;
  text-align:left !important;
}

.barrier-list li{
  text-align:left !important;
  margin:0 0 12px !important;
  padding-left:.2rem;
  line-height:1.5;
}

.tea-feedback{
  max-width:620px !important;
}

.tea-feedback-opening,
.tea-feedback-closing{
  margin:4px auto !important;
  font-size:clamp(1.2rem,2vw,1.6rem) !important;
  line-height:1.4 !important;
}

.tea-feedback-closing{
  color:var(--blue) !important;
}

@media(max-height:800px) and (min-width:700px){
  .barrier-list{
    margin-top:18px !important;
  }

  .barrier-list li{
    margin-bottom:8px !important;
  }
}
