/* Core technology only. Text and endpoints never skew or drift. */
.t29 { background:#faf8f3; color:#173a3d; }
.t29-hero,.t29-section { position:relative; isolation:isolate; overflow:hidden; }
.t29 .p19-backdrop { position:absolute; inset:0; width:100%; height:100%; z-index:-1; pointer-events:none; opacity:.65; }
.t29-hero { border-bottom:1px solid #d5e1d8; padding:48px 0 32px; }
.t29-hero-in { display:grid; grid-template-columns:1fr 1.05fr; align-items:center; gap:48px; }
.t29 h1 { font-size:clamp(34px,3.5vw,52px); line-height:1.32; letter-spacing:-.045em; text-wrap:balance; margin:22px 0; }
.t29 h2 { font-size:clamp(28px,2.65vw,40px); line-height:1.4; letter-spacing:-.025em; text-wrap:balance; }
.t29 .pg-lede,.t29-summary { font-size:18px; line-height:1.95; color:#456b64; max-width:36em; }
.t29-tag { display:inline-block; margin-top:25px; color:#b45124; font-size:16px; border-left:3px solid #f0521d; padding-left:12px; }
.t29-hero-note { font-size:16px; line-height:1.9; color:#647a70; margin-top:24px; max-width:30em; }
.t29-governance-rail { display:flex; flex-wrap:wrap; gap:12px 30px; margin-top:26px; padding-top:20px; border-top:1px solid #d4dfd5; font-size:15px; color:#53716a; }
.t29-governance-rail span { color:#8c6a4c; }
.t29-governance-rail b { font-weight:500; }
.t29-index { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 36px; padding-block:24px; }
.t29-index a { display:flex; align-items:center; gap:14px; padding:20px 0; border-bottom:1px solid #d6e0d6; min-height:66px; }
.t29-index span { color:#bc6f43; font-size:13px; font-variant-numeric:tabular-nums; }
.t29-index b { font-size:16px; font-weight:500; }
.t29-index i { font-style:normal; color:#ac7c53; margin-left:auto; }
.t29-index a:hover { color:#b6512e; border-color:#d99670; }
.t29-intro { padding-block:36px 40px; }
.t29-intro h2 { margin:14px 0; }
.t29-intro>p:last-child { color:#5c776e; font-size:17px; line-height:1.9; }
.t29-section { padding:65px 0 75px; border-top:1px solid #d8e2d8; scroll-margin-top:88px; }
.t29-section:nth-of-type(2n) { background:#eaf0e845; }
.t29-section:nth-of-type(2n) .p19-backdrop { transform:scaleX(-1); }
.t29-feature { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:46px; align-items:center; }
.t29-copy>.eyebrow { line-height:1.8; margin-bottom:18px; }
.t29-copy>.eyebrow span { color:#bc6338; font-size:16px; margin-right:12px; }
.t29-summary { margin-top:22px; }
.t29-value { border-left:2px solid #dcb08b; padding-left:16px; margin:26px 0; font-size:17px; line-height:1.85; color:#245f60; }
.t29-experience { font-size:16px; line-height:1.9; color:#6c7666; margin-top:22px; }
.t29-mechanisms { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:20px 0 0; }
.t29-mechanisms li { font-size:14px; line-height:1.7; padding:5px 10px; border:1px solid #d3dfd4; border-radius:4px; background:#ffffff80; color:#497367; }
.t29-anchor { position:absolute; top:0; scroll-margin-top:88px; }
.t29-related { display:grid; gap:9px; margin-top:22px; }
.t29-related>p { font-size:14px; color:#738273; margin-bottom:3px; }
.t29-related a { font-size:16px; line-height:1.8; width:fit-content; }
.t29-detail { border-top:1px solid #d7dfd3; margin-top:24px; padding-top:17px; }
.t29-detail summary { font-size:16px; color:#446c62; cursor:pointer; min-height:32px; }
.t29-detail>p { font-size:16px; line-height:1.95; color:#5b756c; margin-top:15px; max-width:60em; }
.t29-section--knowledge .t29-feature { grid-template-columns:1fr; gap:26px; }
.t29-section--knowledge .t29-copy { display:grid; grid-template-columns:1fr 1fr; gap:0 56px; }
.t29-section--knowledge .t29-copy>.eyebrow { grid-column:1/-1; }
.t29-section--knowledge h2 { grid-column:1; grid-row:2/4; }
.t29-section--knowledge .t29-summary { grid-column:2; margin-top:0; }
.t29-section--knowledge .t29-value { grid-column:2; margin-bottom:0; }
.t29-section--knowledge .t29-mechanisms { grid-column:2; }
.t29-section--knowledge .t29-experience { grid-column:1; grid-row:4/6; }
.t29-section--knowledge .t29-related { grid-column:1; }
.t29-section--knowledge .t29-detail { grid-column:2; }
.t29 .t29-model { margin:0; border:1px solid #fff; border-radius:22px; min-width:0; overflow:hidden; background:linear-gradient(135deg,#ffffffd9,#f3f8efba 45%,#c9e3d3a3 78%,#fff0dfb8); box-shadow:inset 0 1px 1px #fff,0 30px 62px -46px #3c7665; }
.t29 .t29-model figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; padding:24px 28px 0; color:#345f59; font-size:17px; line-height:1.7; font-weight:500; }
.t29 .t29-model figcaption span { font-size:13px; font-weight:400; color:#6a8375; }
.t29 .p20-stage { min-height:420px; max-height:none; margin-top:20px; aspect-ratio:8/5; isolation:isolate; }
.t29 .t29-model--architecture .p20-stage { min-height:410px; }
.t29 .t29-model--expert .p20-stage { min-height:550px; }
.t29-foundation { position:absolute; left:3%; right:3%; bottom:-5%; height:26%; border-radius:16px; border:1px solid #fff; transform:perspective(700px) rotateX(57deg); transform-origin:center; background:linear-gradient(135deg,#ffffffe6,#c5ddd69c 42%,#fff4dfb8 80%); box-shadow:0 13px 0 -4px #a0c9b655,0 27px 25px -15px #41857833,inset 0 0 22px #fff; z-index:-1; }
.t29 .p20-node { border-radius:12px; gap:7px; padding:17px 10px 12px; border:1px solid #fff; background:linear-gradient(135deg,#fffef7f0,#e2f0e4db 50%,#b4d4c5b5); box-shadow:inset 0 1px 2px #fff,0 5px 0 #8cb9ac69,0 14px 19px -11px #3d7c6570; }
.t29 .p20-node b { font-size:17px; line-height:1.5; font-weight:550; }
.t29 .p20-node small { font-size:13px; line-height:1.65; color:#536e63; }
.t29 .p20-node-number { font-size:11px; top:8px; left:10px; }
.t29 .p20-node.is-flowing { border-color:#ebba91; background:linear-gradient(135deg,#fffcf2,#ffe4c6e0 60%,#f5b27c9c); box-shadow:inset 0 1px 2px #fff,0 5px 0 #c88c5660,0 17px 25px -15px #be703f85; }
.t29 .p20-node[aria-pressed=true] { outline:1px solid #6c9c8a; outline-offset:-3px; }
.t29 .p20-node:focus-visible { outline:3px solid #12636a; outline-offset:5px; }
.t29 .t29-model--architecture .p20-node { border-radius:8px; align-items:flex-start; padding-left:38px; background:linear-gradient(125deg,#fffefbeb,#f0f6eac9 45%,#8bb7a57d); box-shadow:inset 0 1px #fff,0 8px 0 #a2c2b04d,0 15px 19px -12px #3d7c6570; }
.t29 .t29-model--architecture .p20-node-number { left:auto; right:14px; top:12px; font-size:13px; }
.t29 .t29-model--architecture .p20-node.is-flowing { background:linear-gradient(125deg,#fff9ed,#ffe6c2d4 60%,#e6a56894); }
.t29 .p20-link { stroke-width:2.2; stroke:#518575; opacity:.75; }
.t29 .p20-link.is-flowing { stroke-dasharray:none; animation:none; stroke:#b27346; }
.t29 .t29-held-link { stroke-dasharray:6 5; stroke:#aa896b; opacity:.75; }
.t29 .t29-held-node { background:linear-gradient(135deg,#fffaf3,#f1e7d7b0); border-color:#d9c3ab; box-shadow:inset 0 1px 2px #fff,0 5px 0 #c4ab8a40; }
.t29-beam { fill:none; stroke:#ffd59a; stroke-width:5; opacity:0; stroke-dasharray:13 87; filter:drop-shadow(0 0 3px #f59c52); }
.t29-beam.is-flowing { opacity:1; animation:t29-flow 2.2s linear infinite; }
.t29-model[data-paused=true] .t29-beam { animation-play-state:paused; }
.t29 .p20-player { margin:8px 28px 0; }
.t29 .p20-player p { font-size:14px; line-height:1.6; }
.t29 .p20-player button { font-size:14px; }
.t29 .p19-explain { margin:0 28px 24px; padding-top:16px; min-height:103px; }
.t29 .vm-detail-title { font-size:17px; margin-bottom:9px; color:#245a54; }
.t29 .p19-explain .vm-detail p:last-child { font-size:16px; line-height:1.85; color:#5c766c; }
.t29-products { padding-block:64px; }
.t29-products h2 { margin:15px 0 30px; }
.t29-product-lanes { display:grid; gap:16px; }
.t29-product-lanes article { display:grid; grid-template-columns:1fr 1.6fr; gap:10px 40px; padding:25px 28px; background:linear-gradient(125deg,#fffefece,#deede2a3 70%,#fff1e1b0); border:1px solid #fff; border-radius:12px; box-shadow:0 4px 0 #b3cfc039; }
.t29-product-lanes h3 { font-size:21px; grid-column:1; }
.t29-product-lanes article>p { font-size:16px; color:#60796b; line-height:1.8; grid-column:1; }
.t29-product-lanes article>div { grid-column:2; grid-row:1/3; display:grid; gap:10px; align-content:center; }
.t29-product-lanes a { display:flex; justify-content:space-between; gap:15px; padding:13px 16px; background:#ffffffa3; border-radius:6px; font-size:17px; line-height:1.7; border:1px solid #fff; }
.t29-product-lanes a:hover { background:#fff2df; }
.t29-close { padding:46px 0 58px; background:linear-gradient(120deg,#edf2e9,#fff0e3); border-top:1px solid #fff; }
.t29-close h2 { margin:15px 0; }
.t29-close p:not(.eyebrow) { font-size:18px; line-height:1.9; color:#5a7569; margin-bottom:18px; }
.t29 a:focus-visible,.t29 summary:focus-visible { outline:3px solid #12636a; outline-offset:5px; }
@keyframes t29-flow { from { stroke-dashoffset:20; } to { stroke-dashoffset:-80; } }
@media(max-width:1000px) { .t29-hero-in { grid-template-columns:1fr; gap:28px; } .t29-hero-in>div { max-width:800px; } .t29-feature { grid-template-columns:1fr; gap:30px; } .t29-copy { max-width:760px; } .t29 .p20-stage { max-height:550px; } .t29 h1 { font-size:46px; } }
@media(max-width:600px) {
 .t29-hero { padding-top:28px; } .t29 h1 { font-size:34px; } .t29 h2 { font-size:28px; }
 .t29 .pg-lede,.t29-summary { font-size:17px; } .t29-hero-in { gap:24px; } .t29-tag { font-size:15px; }
 .t29-governance-rail { gap:12px 18px; font-size:14px; } .t29-governance-rail span { flex-basis:100%; }
 .t29-index { grid-template-columns:1fr; padding-block:16px; } .t29-index a { padding:16px 0; min-height:56px; }
 .t29-intro { padding-block:28px 32px; } .t29-section { padding-block:38px 45px; }
 .t29-section--knowledge .t29-copy { display:block; } .t29-section--knowledge .t29-summary { margin-top:20px; } .t29-section--knowledge .t29-value { margin-bottom:24px; }
 .t29 .t29-model figcaption { padding:18px 16px 0; font-size:16px; } .t29 .t29-model figcaption span { font-size:12px; }
 .t29 .p20-stage { min-height:0; height:570px; max-height:none; margin-top:18px; }
 .t29 .p20-node { gap:6px; padding:22px 6px 10px; border-radius:8px; }
 .t29 .p20-node b { font-size:14px; line-height:1.55; } .t29 .p20-node small { font-size:12px; line-height:1.55; }
 .t29 .p20-node-number { font-size:10px; top:6px; left:7px; }
 .t29 .t29-model--architecture .p20-stage { min-height:0; height:445px; }
 .t29 .t29-model--architecture .p20-node { padding:12px 14px; gap:4px; } .t29 .t29-model--architecture .p20-node b { font-size:16px; }
 .t29 .t29-model--architecture .p20-node-number { font-size:11px; right:9px; top:6px; }
 .t29 .t29-model--expert .p20-stage { height:650px; }
 .t29 .t29-model--expert .p20-node:last-child { padding:8px; }
 .t29 .p20-player { margin:10px 16px 0; gap:8px; } .t29 .p20-player p { font-size:13px; } .t29 .p20-player button { padding:8px 10px; flex-shrink:0; }
 .t29 .p19-explain { margin:0 16px 20px; min-height:128px; } .t29 .p19-explain .vm-detail p:last-child { font-size:16px; }
 .t29-products { padding-block:40px; } .t29-product-lanes article { display:block; padding:22px 18px; } .t29-product-lanes article>p { margin:12px 0 20px; } .t29-product-lanes a { font-size:16px; }
 .t29-close { padding-block:36px 44px; } .t29-close p:not(.eyebrow) { font-size:17px; }
}
@media(prefers-reduced-motion:reduce) { .t29-beam.is-flowing { animation:none; opacity:0; } .t29 .p20-node { transition:none; } }
