.tech-story { --ts-blue:#2257b5; --ts-ink:#172638; --ts-muted:#657385; color:var(--ts-ink); }
.ts-wrap { max-width:1200px; margin:auto; padding:90px 40px; }
.ts-hero { padding-top:160px; padding-bottom:90px; display:grid; grid-template-columns:.95fr 1.15fr; align-items:center; gap:58px; }
.tech-story .eyebrow { color:var(--ts-blue); font-size:11px; font-weight:700; letter-spacing:.11em; margin:0 0 22px; }
.ts-hero h1 { font-size:clamp(34px,3.6vw,50px); line-height:1.27; letter-spacing:-.045em; margin:0 0 24px; }
.ts-lede { font-size:17px; line-height:1.85; color:var(--ts-muted); max-width:440px; margin:0 0 32px; }
.tech-story .button { border-radius:14px; font-size:14px; box-shadow:none; }
.ts-hero-tags { display:flex; gap:18px; margin-top:32px; color:var(--ts-muted); font-size:12px; }
.ts-hero-tags span::before { content:'•'; color:#447ad1; margin-right:6px; }
.ts-film { position:relative; border-radius:24px; overflow:hidden; background:#eaf0f5; }
.ts-film video { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.ts-film-label { display:flex; gap:8px; align-items:center; position:absolute; top:18px; left:18px; padding:9px 12px; border-radius:20px; color:#203c58; background:rgba(255,255,255,.94); font-size:11px; }
.ts-live-dot { width:6px; height:6px; border-radius:50%; background:#39766c; }
.ts-play { position:absolute; bottom:18px; right:18px; min-height:42px; padding:8px 14px; border:1px solid #ffffff60; border-radius:12px; background:#173454dc; color:white; cursor:pointer; }
.ts-loop-ribbon { display:flex; align-items:center; justify-content:space-between; padding:22px 14px; color:var(--ts-blue); font-size:13px; }
.ts-loop-ribbon i { color:#91afd6; font-style:normal; animation:ts-travel 3s ease-in-out infinite; }
.ts-loop-ribbon i:nth-of-type(2) { animation-delay:.6s; } .ts-loop-ribbon i:nth-of-type(3) { animation-delay:1.2s; }
.tech-story .ts-caption { margin:0; font-size:11px; line-height:1.8; color:#728092; }
.ts-system-section { background:#f4f7fb; border-block:1px solid #e6edf5; scroll-margin-top:90px; }
.ts-heading { max-width:800px; margin-bottom:42px; }
.ts-heading h2,.ts-bottom-cta h2 { font-size:clamp(27px,3vw,38px); line-height:1.4; letter-spacing:-.035em; margin:0 0 16px; }
.ts-heading p:not(.eyebrow) { color:var(--ts-muted); font-size:15px; line-height:1.8; margin:0; }
.ts-system-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.ts-system-tabs button { text-align:left; border:1px solid #d9e3ef; background:#ffffffb3; color:var(--ts-ink); padding:24px; border-radius:18px; cursor:pointer; transition:border-color .2s,background .2s,transform .2s; }
.ts-system-tabs button[aria-selected=true] { border-color:#6489ca; background:#fff; box-shadow:0 4px 18px #244c7810; }
.ts-system-tabs button:hover { transform:translateY(-2px); border-color:#6489ca; }
.ts-system-tabs small { display:block; font-size:10px; letter-spacing:.06em; color:#607590; margin-bottom:15px; }
.ts-system-tabs strong { display:block; font-size:22px; letter-spacing:-.03em; margin-bottom:8px; }
.ts-system-tabs span { display:block; font-size:12px; line-height:1.7; color:var(--ts-muted); }
.ts-flow { display:flex; align-items:center; justify-content:space-around; gap:12px; padding:24px 12px; font-size:11px; color:#7f8c9e; }
.ts-flow b { color:#9aacc4; font-size:20px; font-weight:400; }
.ts-flow .is-active { color:var(--ts-blue); font-weight:700; }
.ts-system-panel { display:grid; grid-template-columns:1.2fr 1fr; gap:42px; padding:32px; background:#fff; border:1px solid #dce5ef; border-radius:22px; align-items:center; }
.tech-story [hidden] { display:none!important; }
.ts-system-media { margin:0; min-width:0; }
.ts-system-media video,.ts-system-media img { width:100%; display:block; aspect-ratio:4/3; object-fit:contain; background:#f5f7fa; border-radius:14px; }
.ts-system-media figcaption { font-size:11px; line-height:1.7; color:#728092; margin:12px 0 0; }
.ts-panel-copy h3 { font-size:27px; line-height:1.4; letter-spacing:-.025em; margin:0 0 18px; }
.ts-panel-copy>p:not(.eyebrow) { color:var(--ts-muted); font-size:14px; line-height:1.85; }
.ts-panel-copy dl { margin:22px 0; border-top:1px solid #e4eaf1; }
.ts-panel-copy dl>div { display:grid; grid-template-columns:42px 1fr; gap:14px; padding:12px 0; border-bottom:1px solid #e4eaf1; font-size:12px; line-height:1.6; }
.ts-panel-copy dt { color:#2c5f9f; font-weight:650; } .ts-panel-copy dd { margin:0; color:var(--ts-muted); }
.ts-panel-copy>a { color:var(--ts-blue); font-size:13px; font-weight:650; }
.ts-model-visual { min-height:390px; position:relative; display:flex; flex-direction:column; justify-content:center; gap:30px; background:radial-gradient(ellipse at center,#e7f0ff,#f8fafd 70%); border:1px solid #e4ecf5; border-radius:16px; padding:40px 20px 26px; overflow:hidden; }
.ts-diagram-note { position:absolute; left:20px; top:16px; color:#73859d; font-size:10px; }
.ts-observations,.ts-model-outputs { display:flex; justify-content:center; gap:8px; z-index:1; }
.ts-observations span,.ts-model-outputs span { background:#ffffffdb; border:1px solid #d4e1f2; border-radius:9px; padding:10px; font-size:11px; color:#49698e; }
.ts-model-core { align-self:center; width:230px; min-height:145px; display:flex; flex-direction:column; justify-content:center; gap:12px; text-align:center; position:relative; color:#204e93; }
.ts-model-core span { font-size:24px; font-weight:700; letter-spacing:-.035em; } .ts-model-core strong { font-size:14px; font-weight:500; } .ts-model-core small { font-size:8px; letter-spacing:.2em; color:#7d94b4; }
.ts-orbit { position:absolute; inset:-15px 0; border:1px solid #9ab5df; border-radius:50%; transform:rotate(-15deg); }
.ts-orbit::before { content:''; position:absolute; inset:-12px; border:1px dashed #bfcee5; border-radius:50%; animation:ts-orbit 24s linear infinite; }
.ts-orbit::after { content:''; width:8px; height:8px; border-radius:50%; position:absolute; top:12px; left:33px; background:#4f82ce; box-shadow:0 0 0 6px #4f82ce18; }
.ts-record { display:grid; grid-template-columns:1.08fr 1fr; border:1px solid #dce5ef; border-radius:22px; overflow:hidden; }
.ts-record-visual { background:#f6f8fb; display:flex; flex-direction:column; justify-content:center; gap:15px; padding:26px; }
.ts-record-visual>img { display:block; width:100%; height:auto; border-radius:12px; }
.ts-record-console { padding:30px; background:#fff; }
.ts-console-top { display:flex; justify-content:space-between; gap:10px; font-size:10px; letter-spacing:.08em; color:#71849b; margin-bottom:26px; }
.ts-trace-tabs { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:2px solid #e5ecf4; margin-bottom:28px; }
.ts-trace-tabs button { border:0; background:none; color:#71839c; font-size:13px; padding:12px 5px; position:relative; cursor:pointer; }
.ts-trace-tabs button.is-active { color:var(--ts-blue); font-weight:700; }
.ts-trace-tabs button.is-active::after { content:''; position:absolute; bottom:-2px; left:0; right:0; height:2px; background:var(--ts-blue); }
.ts-trace-panel { min-height:210px; }
.ts-trace-panel h3 { font-size:23px; margin:0 0 15px; line-height:1.4; }
.ts-trace-panel p,.ts-trace-panel li { font-size:13px; color:var(--ts-muted); line-height:1.9; }
.ts-trace-panel ul { padding-left:18px; margin-top:20px; }
.ts-trace-note { color:#8290a2; font-size:10px; line-height:1.7; margin:14px 0 0; }
.ts-pipeline-section { background:#f5f8fc; }
.ts-pipeline { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px; }
.ts-pipeline article { position:relative; padding:24px 16px; border-top:2px solid #aac2e5; }
.ts-pipeline article::after { content:'→'; position:absolute; right:-15px; top:42px; color:#8ba6cd; }
.ts-pipeline article:last-child::after { display:none; }
.ts-pipeline article>span { display:block; color:#4c73a8; font-size:11px; margin-bottom:18px; }
.ts-pipeline h3 { font-size:17px; margin:0 0 12px; } .ts-pipeline p { font-size:12px; line-height:1.7; color:var(--ts-muted); margin:0; }
.ts-return-line { border-bottom:1px solid #c4d4e9; border-inline:1px solid #c4d4e9; border-radius:0 0 18px 18px; height:38px; margin:0 16px; display:flex; align-items:center; justify-content:center; gap:20px; color:#6986ad; font-size:11px; }
.ts-evidence-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-bottom:18px; }
.ts-evidence-grid>a { border:1px solid #dce5ef; border-radius:18px; overflow:hidden; background:#fff; color:inherit; transition:transform .2s; }
.ts-evidence-grid>a:hover { transform:translateY(-4px); }
.ts-evidence-grid img { width:100%; aspect-ratio:1.6; object-fit:contain; display:block; background:#f4f7fa; }
.ts-evidence-grid>a:last-child img { object-fit:cover; object-position:center 38%; }
.ts-evidence-grid>a>div { padding:24px; } .ts-evidence-grid small { color:#6981a0; font-size:10px; letter-spacing:.1em; }
.ts-evidence-grid h3 { font-size:20px; margin:12px 0; line-height:1.5; }
.ts-evidence-grid p { color:var(--ts-muted); font-size:13px; line-height:1.8; min-height:48px; }
.ts-evidence-grid div>span { color:var(--ts-blue); font-size:12px; font-weight:650; }
.ts-bottom-cta { margin-top:70px; padding-top:42px; border-top:1px solid #dce5ef; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.ts-bottom-cta h2 { font-size:28px; margin:0; }
.tech-story button:focus-visible,.tech-story a:focus-visible { outline:3px solid #719ad5; outline-offset:4px; }
@keyframes ts-travel { 0%,100%{opacity:.4;transform:translateX(-3px)} 50%{opacity:1;transform:translateX(3px)} }
@keyframes ts-orbit { to{transform:rotate(360deg)} }
@media(max-width:980px){.ts-hero{gap:28px;grid-template-columns:1fr 1fr}.ts-system-panel{gap:24px;padding:24px}.ts-system-tabs strong{font-size:19px}.ts-panel-copy h3{font-size:23px}.ts-wrap{padding-inline:28px}}
@media(max-width:720px){.ts-wrap{padding:64px 22px}.ts-hero{grid-template-columns:1fr;padding-top:124px;gap:36px}.ts-hero h1{font-size:38px}.ts-hero h1 br{display:initial}.ts-film video{aspect-ratio:4/3}.ts-hero-tags{margin-top:24px}.ts-system-tabs{gap:8px}.ts-system-tabs button{padding:15px 10px;border-radius:12px}.ts-system-tabs small{font-size:8px;margin-bottom:12px}.ts-system-tabs strong{font-size:clamp(11px,3.2vw,20px);overflow-wrap:anywhere}.ts-system-tabs span{font-size:10px}.ts-flow{gap:5px;font-size:9px;padding:18px 0}.ts-flow b{font-size:15px}.ts-system-panel{grid-template-columns:1fr;padding:18px;gap:26px}.ts-panel-copy h3{font-size:25px}.ts-model-visual{min-height:340px}.ts-heading{margin-bottom:30px}.ts-record{grid-template-columns:1fr}.ts-record-console{padding:24px}.ts-record-visual{padding:18px}.ts-trace-panel{min-height:0}.ts-pipeline{grid-template-columns:1fr;gap:0}.ts-pipeline article{display:grid;grid-template-columns:32px 1fr;column-gap:12px;padding:20px 0;border-top:1px solid #d4e0ef}.ts-pipeline article>span{grid-row:1 / 3;margin:2px 0}.ts-pipeline article::after{display:none}.ts-pipeline h3{margin-bottom:6px}.ts-return-line{margin:0;font-size:10px}.ts-evidence-grid{grid-template-columns:1fr;gap:20px}.ts-evidence-grid img{aspect-ratio:1.7}.ts-evidence-grid p{min-height:0}.ts-bottom-cta{align-items:flex-start;flex-direction:column}.ts-bottom-cta h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){.ts-loop-ribbon i,.ts-orbit::before{animation:none}.ts-system-tabs button,.ts-evidence-grid>a{transition:none}}

/* V1.7.1: a model-led technical story. */
.pw-hero { padding-top:154px; padding-bottom:76px; }
.pw-hero-top { max-width:910px; margin:0 auto 58px; text-align:center; }
.pw-hero-top h1 { font-size:clamp(34px,4.3vw,58px); line-height:1.28; letter-spacing:-.045em; margin:0 0 24px; }
.pw-hero-top>p:last-child { max-width:740px; margin:auto; font-size:17px; line-height:1.9; color:var(--ts-muted); }
.pw-architecture { display:grid; grid-template-columns:1fr 54px 1.55fr 54px 1fr; align-items:center; }
.pw-support,.pw-core { display:block; border:1px solid #d6e2f0; border-radius:22px; padding:30px 22px; color:var(--ts-ink); background:#f7f9fc; }
.pw-support>span,.pw-core>span { display:block; font-size:10px; letter-spacing:.1em; color:#6b83a0; margin-bottom:22px; }
.pw-support h3 { font-size:25px; margin:0 0 12px; }
.pw-support p { font-size:14px; line-height:1.75; margin:0 0 25px; }
.pw-support small { font-size:11px; line-height:1.8; color:var(--ts-muted); }
.pw-core { padding:45px 20px; text-align:center; background:radial-gradient(ellipse at top,#e0edff,#f5f9ff 80%); border-color:#93b0d8; box-shadow:0 12px 40px #1b508210; }
.pw-core h2 { font-size:clamp(24px,2.7vw,35px); margin:0 0 18px; letter-spacing:-.05em; }
.pw-core>span { color:#285cab; font-weight:700; }
.pw-core p { font-size:12px; line-height:1.8; color:#3e638f; }
.pw-core small { display:block; margin-top:30px; color:#285cab; font-size:11px; }
.pw-connect { display:flex; align-items:center; flex-direction:column; gap:7px; color:#8198b6; }
.pw-connect span { font-size:8px; text-align:center; line-height:1.5; }
.pw-connect b { font-size:23px; font-weight:400; animation:ts-travel 3s ease-in-out infinite; }
.pw-hero-links { display:flex; flex-direction:column; align-items:center; gap:22px; margin-top:36px; }
.pw-hero-links a { font-size:14px; color:#2257b5; font-weight:650; }
.pw-hero-links>span { font-size:11px; color:#7b8b9d; text-align:center; line-height:1.7; }
.pw-research { padding-top:68px; border-top:1px solid #e4ebf4; scroll-margin-top:88px; }
.pw-topics { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:55px; }
.pw-topics a { display:flex; align-items:center; gap:12px; padding:16px; background:#f5f8fc; border:1px solid #e2eaf4; border-radius:12px; font-size:13px; color:#254e81; }
.pw-topics span { color:#7c94b2; font-size:10px; }
.pw-study { display:grid; grid-template-columns:.88fr 1.12fr; gap:50px; align-items:center; padding:64px 0; border-top:1px solid #e2eaf2; scroll-margin-top:86px; }
.pw-study:nth-of-type(even) .pw-study-copy { order:2; }
.pw-study:nth-of-type(even) .pw-study-media { order:1; }
.pw-study-copy h3 { font-size:clamp(26px,2.7vw,35px); line-height:1.4; margin:0 0 22px; letter-spacing:-.035em; }
.pw-study-copy>p:not(.eyebrow) { font-size:14px; line-height:1.9; color:var(--ts-muted); }
.pw-study-copy h4 { font-size:12px; color:#305b93; margin:26px 0 8px; }
.pw-method-path { font-size:12px; line-height:1.9; padding:15px 18px; border-left:2px solid #85a7d6; background:#f4f8fd; color:#43648e; margin:22px 0; }
.pw-source { display:block; font-size:10px; color:#7c8b9e; line-height:1.7; }
.pw-study-media { min-width:0; margin:0; background:#f4f7fb; padding:16px; border-radius:22px; border:1px solid #e2eaf4; }
.pw-study-media video { display:block; width:100%; max-height:420px; object-fit:contain; border-radius:12px; background:#e9eef5; }
.pw-study-media img { display:block; width:100%; height:auto; border-radius:10px; }
.pw-study-media figcaption { font-size:11px; color:#71849b; line-height:1.8; margin:14px 4px 2px; }
.pw-demo-pair { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pw-demo-pair video { width:100%; aspect-ratio:1; object-fit:contain; background:#ecf0f5; }
.pw-demo-pair span { display:block; text-align:center; color:#4f6f98; font-size:11px; padding:12px 0 2px; }
.pw-expand>span { display:block; margin:16px 4px; color:#2d609f; font-size:12px; }
#pw-physics { grid-template-columns:1fr; gap:24px; }
#pw-physics .pw-study-copy { order:0; display:grid; grid-template-columns:1fr 1fr; column-gap:48px; }
#pw-physics .eyebrow,#pw-physics h3 { grid-column:1 / -1; }
#pw-physics h4 { margin:0 0 8px; grid-column:2; grid-row:3; }
#pw-physics .pw-study-copy>p:not(.eyebrow) { margin-top:0; }
#pw-physics .pw-study-copy>p:nth-of-type(3) { grid-column:2; grid-row:4; }
#pw-physics .pw-study-copy>p:nth-of-type(2) { grid-column:1; grid-row:3 / 5; }
#pw-physics .pw-method-path,#pw-physics .pw-source { grid-column:1 / -1; }
#pw-physics .pw-study-media { order:1; }
.ts-system-tabs { grid-template-columns:1fr 1.3fr 1fr; align-items:stretch; }
#tab-model { border-color:#89a9d7; background:#ecf3ff; }
#tab-model[aria-selected=true] { background:#e1edff; box-shadow:0 6px 22px #25589715; }
.pw-model-figure img { aspect-ratio:auto; }
@media(max-width:800px){.pw-architecture{grid-template-columns:1fr 38px 1.4fr 38px 1fr}.pw-support{padding:22px 13px}.pw-support h3{font-size:21px}.pw-core{padding:36px 12px}.pw-study{gap:25px}.pw-study-copy h3{font-size:27px}}
@media(max-width:640px){.pw-hero{padding-top:124px}.pw-hero-top{text-align:left;margin-bottom:36px}.pw-hero-top h1{font-size:37px}.pw-hero-top>p:last-child{font-size:15px}.pw-architecture{grid-template-columns:1fr 1fr;gap:14px}.pw-core{grid-column:1 / -1;grid-row:1;padding:34px 20px}.pw-core h2{font-size:34px}.pw-connect{display:none}.pw-support{padding:20px 16px}.pw-support h3{font-size:22px}.pw-support p{font-size:13px;margin-bottom:18px}.pw-topics{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:30px}.pw-topics a{padding:14px 12px;font-size:12px}.pw-study{grid-template-columns:1fr;padding:42px 0;gap:24px}.pw-study .pw-study-copy,.pw-study:nth-of-type(even) .pw-study-copy{order:0}.pw-study .pw-study-media,.pw-study:nth-of-type(even) .pw-study-media{order:1}.pw-study-media{padding:12px}.pw-demo-pair{gap:8px}#pw-physics .pw-study-copy{display:block}#pw-physics h4{margin-top:24px}.pw-hero-links{align-items:flex-start}.pw-hero-links>span{text-align:left}.ts-system-tabs{grid-template-columns:1fr 1.2fr 1fr}}
@media(prefers-reduced-motion:reduce){.pw-connect b{animation:none}}

/* White code field: decoration is confined to the technology hero. */
.pw-hero { position:relative; isolation:isolate; }
.pw-code-field { position:absolute; inset:0; width:100%; height:100%; z-index:-1; pointer-events:none; user-select:none; }
.pw-hero-top { position:relative; }
.pw-hero-links { position:relative; }
