/* Homepage presentation is isolated from the programme and Insights. */
.home-page { --home-ink:#0b0d0d; --home-paper:#eee9df; --home-muted:#afb3aa; --home-accent:#e5b679; --home-line:#ffffff21; background:var(--home-ink); color:var(--home-paper); font-family:"Avenir Next","Segoe UI",Arial,sans-serif; font-size:16px; line-height:1.65; }
.home-page [hidden] { display:none !important; }
.home-page *, .home-page *::before, .home-page *::after { animation:none !important; }
.home-page .reveal { opacity:1; transform:none; }
.home-page a { color:inherit; }
.home-page a:focus-visible, .home-page button:focus-visible, .home-page summary:focus-visible, .home-page input:focus-visible, .home-page select:focus-visible, .home-page textarea:focus-visible { outline:2px solid var(--home-accent); outline-offset:4px; }
.home-page button, .home-page input, .home-page select, .home-page textarea { font-family:inherit; }
.home-page h1, .home-page h2, .home-page h3, .home-page h4, .home-page p { margin-top:0; }
.home-page h1, .home-page h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.045em; }
.home-page h1 em, .home-page h2 em { color:var(--home-accent); font-weight:400; }
.home-page > .top-nav { position:relative; border-bottom:1px solid var(--home-line); padding:20px 32px; }
.home-page .top-nav .nav-container { max-width:1240px; }
.home-shell { max-width:1304px; padding-inline:32px; margin-inline:auto; }
.home-skip { position:fixed; left:16px; top:-100px; padding:12px 20px; background:#eee9df; color:#101313 !important; z-index:3000; }
.home-skip:focus { top:10px; }
.home-page #start { scroll-margin-top:20px; }
.home-hero { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); align-items:center; gap:64px; padding-block:68px 52px; }
.home-eyebrow { font-size:11px; font-weight:650; letter-spacing:.13em; color:var(--home-accent); margin:0 0 20px; line-height:1.7; }
.home-intro h1 { font-size:clamp(48px,5.4vw,78px); line-height:1.03; margin:0 0 26px; max-width:740px; text-wrap:balance; }
.home-intro h1 em { display:block; }
.home-lead { font-size:18px; line-height:1.7; max-width:590px; color:#c6c9bf; margin-bottom:28px; }
.home-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; }
.home-hero-actions .preview-cta { order:0; }
.home-page .preview-cta { margin:0; }
.home-page .home-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:52px; min-width:0; padding:13px 21px; border:1px solid var(--home-accent); border-radius:6px; background:var(--home-accent); color:#171a16; text-decoration:none; font-size:14px; font-weight:700; line-height:1.5; box-shadow:none; transform:none; width:auto; transition:background .15s; }
.home-page .home-button:hover { background:#f0c893; }
.home-text-link { display:inline-flex; align-items:center; gap:20px; min-height:44px; text-decoration:none; font-size:14px; font-weight:600; border-bottom:1px solid #e5b67977; }
.home-text-link span { color:var(--home-accent); }
.home-cta-note { font-size:13px; color:var(--home-muted); margin:13px 0 0; line-height:1.7; }
.home-page .home-cta-note { margin-top:13px; }
.home-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:29px 0 0; padding:23px 0 0; border-top:1px solid var(--home-line); max-width:620px; gap:18px; }
.home-facts dt { font-size:18px; font-weight:650; line-height:1.4; }
.home-facts dd { margin:5px 0 0; font-size:12px; color:var(--home-muted); }
.home-lamp { border:1px solid #e5b67926; border-radius:12px; min-height:440px; width:100%; background:radial-gradient(ellipse at 50% 30%,#60442155,transparent 68%),#171610; position:relative; }
.home-lamp .lamp-stage { position:absolute; inset:auto; top:37%; left:50%; width:310px; height:310px; transform:translate(-50%,-50%); }
.home-lamp-label { position:absolute; bottom:25px; left:20px; right:20px; text-align:center; }
.home-lamp-label span { color:var(--home-accent); font-size:9px; letter-spacing:.15em; }
.home-lamp-label p { font:400 25px/1.3 Georgia,serif; margin:12px 0 0; color:#ded5c2; }
.home-lamp-mark { position:absolute; right:20px; top:18px; font:11px ui-monospace,monospace; color:#c4ac89; }
.home-topics { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:23px; border-block:1px solid var(--home-line); }
.home-topics > span { font-size:10px; letter-spacing:.12em; color:var(--home-muted); }
.home-topics p { font-size:14px; color:#c7c7bb; margin:0; }
.home-topics b { color:#e5b67970; margin:0 10px; }
.home-section { padding-block:88px; }
.home-section-heading { display:flex; justify-content:space-between; align-items:end; gap:36px; margin-bottom:34px; }
.home-page h2 { font-size:clamp(34px,3.4vw,50px); line-height:1.1; margin:0; }
.home-section-heading > p { max-width:340px; color:var(--home-muted); margin:0; font-size:16px; }
.home-path-layout { display:grid; grid-template-columns:1fr 1.1fr; border:1px solid var(--home-line); border-radius:10px; overflow:hidden; }
.home-path-buttons { display:flex; flex-direction:column; background:#101414; }
.home-path-buttons button { display:grid; grid-template-columns:28px 1fr 24px; text-align:left; gap:6px 15px; flex:1; padding:27px; border:0; border-bottom:1px solid var(--home-line); background:transparent; color:var(--home-paper); cursor:pointer; }
.home-path-buttons button:last-child { border-bottom:0; }
.home-path-buttons button > span { grid-row:1/3; color:#b8ac95; font:12px ui-monospace,monospace; padding-top:6px; }
.home-path-buttons strong { font-size:18px; font-weight:600; }
.home-path-buttons small { font-size:14px; color:var(--home-muted); grid-column:2; }
.home-path-buttons b { grid-column:3; grid-row:1/3; align-self:center; font-size:21px; font-weight:400; color:var(--home-accent); }
.home-path-buttons button[aria-pressed="true"], .home-path-buttons button:hover { background:#e5b6790c; box-shadow:inset 3px 0 var(--home-accent); }
.home-path-detail { padding:38px; background:#161a18; align-content:center; }
.home-path-detail h3 { font:400 31px/1.2 Georgia,serif; letter-spacing:-.02em; margin-bottom:20px; }
.home-path-detail p:not(.home-eyebrow) { font-size:16px; color:var(--home-muted); }
.home-path-detail .home-path-focus { color:#ddd2bb !important; padding-top:18px; border-top:1px solid var(--home-line); }
.home-capstone { background:#101313; border-block:1px solid var(--home-line); }
.home-build { background:#0b0e0d; border:1px solid #e5b67933; border-radius:12px; overflow:hidden; }
.home-build-top { padding:30px 34px 24px; }
.home-build-status { color:var(--home-accent); font:10px ui-monospace,monospace; letter-spacing:.14em; }
.home-build-top h3 { font:400 32px/1.2 Georgia,serif; margin:15px 0 12px; }
.home-build-top p { color:var(--home-muted); margin:0; }
.home-build-nav { display:flex; gap:6px; padding:0 28px; border-bottom:1px solid var(--home-line); flex-wrap:wrap; }
.home-build-nav button { background:none; border:0; border-bottom:2px solid transparent; color:var(--home-muted); padding:16px 15px; min-height:48px; font-size:14px; cursor:pointer; }
.home-build-nav button[aria-pressed="true"] { border-bottom-color:var(--home-accent); color:var(--home-accent); }
.home-build-panels { padding:34px; min-height:300px; }
.home-build-panels section + section { margin-top:34px; }
.home-enhanced .home-build-panels section { margin-top:0; }
.home-build-panels h4 { font:400 28px/1.25 Georgia,serif; margin:0 0 19px; }
.home-build-panels p { color:var(--home-muted); }
.home-build-columns { display:grid; grid-template-columns:1.2fr 1fr; gap:60px; }
.home-build-columns p:last-child { margin-bottom:0; }
.home-check-list { list-style:none; margin:0; padding:0; align-self:center; }
.home-check-list li { padding:14px 0; border-bottom:1px solid var(--home-line); font-size:15px; }
.home-check-list li::before { content:'↗'; color:var(--home-accent); margin-right:14px; }
.home-system-flow { list-style:none; padding:0; margin:22px 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.home-system-flow li { border:1px solid var(--home-line); border-radius:6px; padding:20px; }
.home-system-flow span { display:block; font:11px ui-monospace,monospace; color:var(--home-accent); margin-bottom:20px; }
.home-system-flow strong { display:block; margin-bottom:10px; }
.home-system-flow small { font-size:14px; color:var(--home-muted); }
.home-panel-note { font-size:14px; }
.home-sample-questions { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.home-sample-questions button { color:var(--home-paper); background:#191e1b; border:1px solid var(--home-line); border-radius:5px; padding:12px 16px; font-size:14px; min-height:46px; cursor:pointer; }
.home-sample-questions button[aria-pressed="true"] { color:var(--home-accent); border-color:var(--home-accent); }
.home-sample-answer { padding:24px; border-left:2px solid var(--home-accent); background:#e5b67909; }
.home-sample-answer #sample-answer { color:var(--home-paper); margin-bottom:14px; }
.home-sample-source { font-size:13px; color:var(--home-accent) !important; margin:0; }
.home-source-details { margin-top:18px; font-size:14px; }
.home-source-details summary { cursor:pointer; min-height:44px; padding:9px 0; }
.home-source-details p { margin:10px 0; }
.home-eval-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.home-eval-grid strong { color:var(--home-accent); font-size:15px; }
.home-eval-grid p { font-size:15px; margin:8px 0 0; }
.home-build-footer { padding:20px 34px; display:flex; align-items:center; justify-content:space-between; gap:25px; border-top:1px solid var(--home-line); }
.home-build-footer p { margin:0; color:var(--home-muted); font-size:14px; }
.home-mentor { display:grid; grid-template-columns:280px 1fr; gap:65px; align-items:center; max-width:1000px; margin:auto; }
.home-mentor img { width:100%; height:330px; object-fit:cover; object-position:center 28%; border-radius:8px; background:#1b211d; }
.home-mentor h2 { margin-bottom:15px; }
.home-mentor-role { color:var(--home-accent); font-size:14px; }
.home-mentor p:not(.home-eyebrow):not(.home-mentor-role) { color:var(--home-muted); max-width:610px; }
.home-journey { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; margin:0 0 26px; padding:0; border-top:1px solid var(--home-line); }
.home-journey li { border-right:1px solid var(--home-line); padding:30px 22px; }
.home-journey li:first-child { padding-left:0; }
.home-journey li:last-child { padding-right:0; border-right:0; }
.home-journey span { color:var(--home-accent); font:11px ui-monospace,monospace; }
.home-journey h3 { font:400 26px/1.2 Georgia,serif; margin:23px 0 17px; }
.home-journey p { color:var(--home-muted); font-size:15px; margin:0; }
.home-decision { display:grid; grid-template-columns:1fr 1fr; gap:50px; background:#171d19; border:1px solid #b3c3a72e; padding:40px; border-radius:10px; }
.home-decision h2 { font-size:39px; margin-bottom:22px; }
.home-decision p { color:var(--home-muted); }
.home-decision-choices { display:grid; gap:10px; }
.home-decision-choices button { text-align:left; font-size:15px; line-height:1.6; color:var(--home-paper); padding:15px; border:1px solid var(--home-line); border-radius:5px; background:#0d1310; cursor:pointer; }
.home-decision-choices button[aria-pressed="true"] { border-color:var(--home-accent); }
.home-decision-feedback { margin:20px 0 0; font-size:14px; }
.home-faq-grid { display:grid; grid-template-columns:.85fr 1.2fr; gap:65px; }
.home-conversation { border:1px solid #e5b67933; border-radius:10px; padding:30px; background:#1e1c16; }
.home-conversation h3 { font:400 33px/1.15 Georgia,serif; margin:16px 0 25px; }
.home-conversation ol { padding-left:22px; font-size:15px; }
.home-conversation li { margin-bottom:14px; padding-left:5px; }
.home-conversation p { color:var(--home-muted); font-size:15px; margin:25px 0 0; }
.home-faq-items details { border-bottom:1px solid var(--home-line); }
.home-faq-items summary { font-size:16px; font-weight:600; padding:23px 28px 23px 0; cursor:pointer; position:relative; list-style:none; }
.home-faq-items summary::-webkit-details-marker { display:none; }
.home-faq-items summary::after { content:'+'; position:absolute; right:0; color:var(--home-accent); font-size:20px; }
.home-faq-items details[open] summary::after { content:'−'; }
.home-faq-items p { color:var(--home-muted); margin:0 0 23px; }
.home-final { text-align:center; padding-block:65px 70px; border-block:1px solid var(--home-line); scroll-margin-top:24px; }
.home-final h2 { font-size:clamp(37px,4.6vw,66px); margin-bottom:24px; }
.home-final > p:not(.home-eyebrow) { color:var(--home-muted); }
.home-page .products-showcase { background:transparent; padding:65px 32px; min-height:0; }
.home-page .products-header { margin-bottom:28px; }
.home-page .products-title { font-size:36px; }
.home-page .products-subtitle { font-size:16px; color:var(--home-muted); }
.home-page .products-grid { max-width:1240px; }
.home-page .product-card { background:#101513; transform:none; padding:28px; border-radius:9px; box-shadow:none; }
.home-page .card-link { opacity:1; transform:none; font-size:14px; }
.home-page .card-name { font-size:24px; }
.home-page .card-desc { font-size:14px; }
.home-footer { border-top:1px solid var(--home-line); padding-block:35px; }
.home-footer-top { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.home-footer-top p { color:var(--home-muted); font-size:14px; margin:0; }
.home-footer nav { margin-left:auto; display:flex; flex-wrap:wrap; gap:10px 23px; }
.home-footer nav a { font-size:14px; display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
.home-privacy { font-size:14px; color:var(--home-muted); max-width:850px; margin:20px 0; }
.home-privacy summary { cursor:pointer; padding:10px 0; min-height:44px; }
.home-privacy p { margin:12px 0; }
.home-copyright { color:var(--home-muted); font-size:12px; margin:0; }
.home-invite-bar { position:fixed; z-index:50; left:0; right:0; bottom:0; background:#0b0d0df5; border-top:1px solid var(--home-line); padding:10px 20px calc(10px + env(safe-area-inset-bottom)); }
.home-invite-bar .home-button { width:100%; }
/* Preserve the registration IDs, validation and API contract. */
.home-page .s30-dialog-card { max-width:540px; padding:18px 26px 26px; background:#101513; border-color:#e5b67955; border-radius:12px; scroll-padding-top:65px; }
.home-page .s30-close-btn { position:sticky; top:0; display:flex; align-items:center; justify-content:center; width:44px; height:44px; margin:0 0 -36px auto; right:auto; z-index:5; background:#101513; border:1px solid #ffffff3d; color:var(--home-paper); border-radius:50%; }
.home-page .s30-eyebrow { padding-right:50px; font-size:11px; margin:8px 0 14px; }
.home-page .s30-dialog-title { font-size:32px; padding-right:25px; line-height:1.15; margin-bottom:17px; }
.home-page .s30-dialog-lead { color:var(--home-muted); font-size:15px; line-height:1.65; }
.home-page .s30-label { display:block; font-size:14px; line-height:1.6; margin-bottom:8px; }
.home-page .s30-field-hint { display:block; font-size:13px; }
.home-page .s30-required { display:inline; }
.home-page .s30-input { font-size:16px; min-height:48px; border:1px solid #ffffff42; padding:11px 13px; color:var(--home-paper); }
.home-page .s30-input::placeholder { color:#9a9f96; opacity:1; }
.home-page .s30-optional { padding:0 0 18px; border-bottom:1px solid var(--home-line); }
.home-page .s30-optional summary { font-size:15px; padding:12px 0; cursor:pointer; min-height:48px; }
.home-page .s30-optional summary span { color:var(--home-muted); }
.home-page .s30-optional[open] summary { margin-bottom:15px; }
.home-page .s30-optional .s30-field { margin-bottom:20px; }
.home-page .s30-newsletter-label { font-size:14px; line-height:1.6; color:var(--home-muted); min-height:44px; }
.home-page .s30-newsletter-checkbox { min-width:22px; min-height:22px; margin-top:2px; }
.home-page .s30-privacy-disclosure { font-size:14px; color:#afb3aa; line-height:1.7; }
.home-page .s30-submit-btn { min-height:50px; font-size:15px; }
.home-page .s30-success-body { font-size:16px; line-height:1.7; }
.home-page .s30-form-error { font-size:14px; }
.home-page:not(.home-enhanced) .home-path-buttons, .home-page:not(.home-enhanced) .home-build-nav, .home-page:not(.home-enhanced) .home-sample-questions, .home-page:not(.home-enhanced) .home-decision-choices { display:none; }
.home-page:not(.home-enhanced) .home-path-layout { grid-template-columns:1fr; }
@media (max-width:1100px) {
  .home-hero { gap:32px; grid-template-columns:1.55fr 1fr; }
  .home-lamp { min-height:410px; }
  .home-lamp .lamp-stage { width:270px; height:270px; }
  .home-hero-actions { align-items:start; flex-direction:column; gap:8px; }
  .home-faq-grid { gap:34px; }
}
@media (max-width:900px) {
  .home-hero { grid-template-columns:1fr; padding-top:38px; }
  .home-intro { max-width:720px; }
  .home-intro h1 { font-size:clamp(40px,7.6vw,65px); max-width:750px; }
  .home-lead { max-width:650px; }
  .home-hero-actions { flex-direction:row; align-items:center; gap:18px; }
  .home-lamp { min-height:260px; max-width:100%; }
  .home-lamp .lamp-stage { left:28%; top:47%; width:265px; height:265px; }
  .home-lamp-label { left:49%; right:25px; bottom:75px; text-align:left; }
  .home-topics { flex-direction:column; align-items:start; gap:9px; }
  .home-topics b { margin:0 7px; }
  .home-section { padding-block:60px; }
  .home-section-heading { gap:25px; }
  .home-section-heading > p { max-width:270px; }
  .home-path-detail { padding:28px; }
  .home-path-buttons button { padding:23px 18px; gap:6px 10px; }
  .home-build-columns { gap:30px; }
  .home-system-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-mentor { grid-template-columns:230px 1fr; gap:35px; }
  .home-mentor img { height:290px; }
  .home-journey { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-journey li { padding:28px 22px; border-bottom:1px solid var(--home-line); }
  .home-journey li:nth-child(2n) { border-right:0; }
  .home-journey li:nth-child(3) { padding-left:0; }
  .home-decision { gap:30px; padding:30px; }
  .home-decision h2 { font-size:34px; }
  .home-footer { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
}
@media (max-width:600px) {
  .home-shell { padding-inline:20px; }
  .home-hero { padding-top:29px; padding-bottom:30px; gap:30px; }
  .home-eyebrow { font-size:10px; margin-bottom:15px; }
  .home-intro h1 { font-size:clamp(38px,9.4vw,54px); line-height:1.04; margin-bottom:20px; }
  .home-lead { font-size:16px; line-height:1.65; margin-bottom:23px; }
  .home-hero-actions { gap:9px; }
  .home-page .home-button { width:100%; font-size:14px; padding-inline:14px; gap:16px; }
  .home-hero-actions .home-text-link { font-size:13px; }
  .home-cta-note { font-size:12px; margin-top:9px; }
  .home-facts { gap:12px; margin-top:22px; padding-top:19px; }
  .home-facts dt { font-size:16px; }
  .home-facts dd { font-size:12px; line-height:1.5; }
  .home-lamp { min-height:230px; }
  .home-lamp .lamp-stage { width:210px; height:210px; left:25%; }
  .home-lamp-label { left:49%; right:16px; bottom:55px; }
  .home-lamp-label p { font-size:20px; }
  .home-lamp-label span { display:none; }
  .home-lamp-mark { left:16px; right:auto; }
  .home-topics { font-size:12px; padding-block:20px; }
  .home-topics p { font-size:13px; }
  .home-topics b { margin:0 3px; }
  .home-section { padding-block:48px; }
  .home-section-heading { display:block; margin-bottom:27px; }
  .home-section-heading > p { margin:20px 0 0; max-width:none; }
  .home-page h2 { font-size:36px; }
  .home-path-layout { grid-template-columns:1fr; }
  .home-path-buttons button { padding:21px; min-height:100px; }
  .home-path-detail { padding:27px; }
  .home-path-detail h3 { font-size:29px; }
  .home-build-top, .home-build-panels { padding:23px; }
  .home-build-top h3 { font-size:29px; }
  .home-build-nav { padding:0 14px; gap:0; display:grid; grid-template-columns:1fr 1fr; }
  .home-build-nav button { padding:13px 8px; font-size:13px; }
  .home-build-panels { min-height:0; }
  .home-build-columns { grid-template-columns:1fr; gap:24px; }
  .home-check-list li { font-size:14px; }
  .home-build-footer { flex-direction:column; align-items:start; padding:21px 23px; gap:13px; }
  .home-system-flow { gap:10px; }
  .home-system-flow li { padding:16px; }
  .home-system-flow strong { font-size:15px; }
  .home-system-flow small { font-size:13px; }
  .home-eval-grid { grid-template-columns:1fr; gap:20px; }
  .home-sample-questions { display:grid; }
  .home-sample-answer { padding:20px; }
  .home-mentor { grid-template-columns:1fr; gap:27px; }
  .home-mentor img { width:160px; height:185px; }
  .home-journey { grid-template-columns:1fr; }
  .home-journey li { padding:25px 0; border-right:0; }
  .home-journey h3 { margin:14px 0; }
  .home-decision { grid-template-columns:1fr; padding:24px; }
  .home-faq-grid { grid-template-columns:1fr; gap:25px; }
  .home-conversation { padding:25px; }
  .home-faq-items summary { font-size:15px; }
  .home-final { padding-block:45px; }
  .home-final h2 { font-size:39px; }
  .home-final .home-cta-note { font-size:12px; }
  .home-page .products-showcase { padding:45px 20px; }
  .home-page .products-title { font-size:32px; }
  .home-page .product-card { padding:25px; }
  .home-footer-top { gap:12px; }
  .home-footer nav { margin-left:0; width:100%; gap:8px 20px; }
  .home-page .s30-dialog-card { padding:14px 20px 20px; }
  .home-page .s30-dialog-title { font-size:28px; }
}
@media (max-height:500px) and (min-width:601px) {
  .home-hero { padding-top:24px; }
  .home-hero-actions { flex-direction:row; }
  .home-intro .home-eyebrow { margin-bottom:12px; }
  .home-intro h1 { font-size:40px; margin-bottom:18px; }
  .home-intro .home-lead { margin-bottom:18px; }
  .home-hero .home-lamp { min-height:240px; }
}
