/* Sovereign OI narrative, grounded in /design.md canonical heading tokens */
.so-story-intro{max-width:890px;font-size:16px;line-height:1.98;color:#c8dee2;margin:0 0 26px}
.so-story-intro strong{color:#d2ffed}
.so-story-kicker{margin-top:24px;font-size:12px;letter-spacing:.14em;color:#91e6cb;font-weight:700}
.so-story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
.so-story-track{min-width:0;border:1px solid rgba(124,215,217,.3);border-radius:24px;padding:24px;background:linear-gradient(145deg,#0e323b,#0a202b)}
.so-story-track--biology{background:linear-gradient(145deg,#132d47,#091f30)}
.so-story-track__eyebrow{color:#95efd3;font-size:10px;letter-spacing:.12em;font-weight:500}
.so-story-track--biology .so-story-track__eyebrow{color:#8dcafa}
.so-story-track h3{font-size:clamp(18px,2vw,23px);line-height:1.35;letter-spacing:-.02em;margin:8px 0 2px;font-weight:500}
.so-story-sequence{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:stretch}
.so-story-sequence li{min-width:0;text-align:center;border:1px solid rgba(146,222,211,.22);border-radius:12px;background:rgba(6,25,35,.56);padding:10px 6px;line-height:1.35;font-weight:400;color:#e8fcf6}
.so-story-track--biology li{border-color:rgba(130,190,238,.23)}
.so-story-arrow{display:block;width:19px;height:23px;margin:2px auto;overflow:visible}
.so-story-arrow path{stroke:#96e3d3;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.so-story-merge{width:100%;height:auto;display:block;margin:6px 0 0}
.so-story-merge path{stroke:#8ddccb;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.so-story-merge polygon{fill:#8ddccb}
.so-story-memory,.so-story-twin{text-align:center;border:1px solid rgba(136,230,209,.44);border-radius:23px;padding:30px 24px;background:linear-gradient(110deg,rgba(35,129,130,.17),rgba(30,88,143,.16))}
.so-story-memory h3,.so-story-twin h3{font-size:var(--bt-type-card-title);line-height:1.35;font-weight:560;margin:10px 0}
.so-story-memory p,.so-story-twin p{line-height:1.9;color:#b9d1d8;margin:7px auto;max-width:730px}
.so-story-down{width:28px;height:58px;display:block;margin:0 auto}
.so-story-down path{stroke:#8ddccb;stroke-width:2;fill:none;stroke-linejoin:round;stroke-linecap:round}
.so-story-twin{background:linear-gradient(110deg,#0d403d,#143650);border-color:#65ceb6}
.so-story-boundary{margin-top:26px;background:#101f2b;border-left:3px solid #9be6c8;padding:23px 25px;border-radius:0 16px 16px 0}
.so-story-boundary strong{color:#c6ffdf;display:block;font-size:18px;margin-bottom:9px}
.so-story-boundary p{line-height:1.95;color:#c5d5da;margin:9px 0}
.so-study-example{border:1px solid rgba(132,220,206,.31);background:linear-gradient(140deg,#0d2f37,#0b2330);border-radius:22px;padding:30px}
.so-study-example__question{font-size:clamp(17px,2.1vw,24px);font-weight:600;color:#eafff5;line-height:1.5;margin:5px 0 13px}
.so-study-example>p{line-height:1.9;color:#bbd1d8}
.so-study-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:20px 0}
.so-study-result{padding:22px 18px;background:#081d2a;border:1px solid rgba(151,220,217,.19);border-radius:15px}
.so-study-result small{font-size:12px;color:#99d1ca;font-weight:740;letter-spacing:.09em}
.so-study-result b{display:block;margin-top:12px;font-size:17px;line-height:1.5;font-weight:580}
.so-study-result--yes{border-color:rgba(124,233,186,.55)}
.so-study-result--no{border-color:rgba(241,199,143,.35)}
.so-study-verdict{border:1px solid rgba(242,194,122,.41);background:rgba(104,74,34,.12);padding:21px 23px;border-radius:15px}
.so-study-verdict b{color:#ffe0ac;display:block;font-size:17px;margin-bottom:8px}
.so-study-verdict p{color:#d2d8d7;line-height:1.9;margin:0}
.so-missing-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:25px 0}
.so-missing-step{background:#0b2633;border:1px solid rgba(126,199,206,.24);border-radius:17px;padding:22px}
.so-missing-step span{font-size:11px;color:#92e9d0;letter-spacing:.1em;font-weight:800}
.so-missing-step h3{font-size:18px;font-weight:560;margin:10px 0;color:#ecfdf7}
.so-missing-step p{font-size:13px;line-height:1.82;color:#b8d0d7;margin:0}
.so-missing-quote{padding:25px 27px;background:rgba(49,128,128,.15);border:1px solid rgba(107,222,193,.37);border-radius:17px;font-size:18px;line-height:1.85;color:#e4fff2}
.so-story-roles{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:18px}
.so-story-role{padding:23px;border:1px solid rgba(126,210,214,.22);border-radius:17px;background:#09202c}
.so-story-role strong{color:#9defd7;display:block;margin-bottom:9px}
.so-story-role p{margin:0;color:#b6cdd6;line-height:1.9;font-size:14px}
@media(max-width:720px){
 .so-story-grid{gap:11px}.so-story-track{padding:17px 10px;border-radius:16px}
 .so-story-track__eyebrow{font-size:9px;letter-spacing:.06em}
 .so-story-track h3{font-size:clamp(16px,4.4vw,20px);margin:7px 0 2px}
 .so-story-sequence li{overflow-wrap:anywhere;padding:9px 3px}
 .so-study-results,.so-missing-flow{grid-template-columns:1fr}
 .so-story-roles{grid-template-columns:1fr}
 .so-story-memory,.so-story-twin{padding:22px 16px}
 .so-story-boundary{padding:19px}
 .so-missing-quote{font-size:16px}
}

/* Canonical bilingual hierarchy: Chinese first, English supporting */
.so-story-track__sub{font-size:10px;font-weight:400;line-height:1.5;letter-spacing:.08em;color:#92b6c3;margin:0 0 17px}
.so-story-step__zh{display:block;font-size:clamp(15px,1.5vw,17px);font-weight:400;line-height:1.35;color:#effaf7}
.so-story-step__en{display:block;font-size:11px;font-weight:400;line-height:1.35;color:#9ab9c6;margin-top:3px;letter-spacing:.01em}
@media(max-width:720px){
 .so-story-step__zh{font-size:14px}
 .so-story-step__en{font-size:10px}
 .so-story-track__sub{font-size:9px;margin-bottom:12px}
}


/* Sovereign dual-life diagram: homepage Research Flow compact canonical v2 */
#vision.so-section{background:#080c0a}
#vision .so-story-track,
#vision .so-story-track--biology{
  background:rgba(255,255,255,.016);
  border:1px solid rgba(185,255,203,.19);
  border-radius:19px;
  padding:20px;
}
#vision .so-story-track__eyebrow,
#vision .so-story-track--biology .so-story-track__eyebrow{
  color:rgba(185,255,203,.54);
  font-size:10px;
  font-weight:400;
  letter-spacing:.13em;
}
#vision .so-story-track h3{
  color:#ecefeb;
  font-size:18px;
  font-weight:500;
  line-height:1.35;
  margin:9px 0 1px;
}
#vision .so-story-track__sub{
  color:rgba(232,236,232,.42);
  font-size:9px;
  font-weight:400;
  letter-spacing:.10em;
  margin:0 0 15px;
}
#vision .so-story-sequence li,
#vision .so-story-track--biology li{
  background:rgba(255,255,255,.018);
  border:1px solid rgba(255,255,255,.14);
  border-radius:13px;
  padding:8px 9px;
  min-height:52px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  font-weight:400;
}
#vision .so-story-step__zh{
  color:rgba(242,243,240,.86);
  font-size:13px;
  font-weight:400;
  line-height:1.4;
}
#vision .so-story-step__en{
  color:rgba(185,255,203,.48);
  font-size:10px;
  font-weight:400;
  letter-spacing:.06em;
  line-height:1.35;
  margin-top:0;
}
#vision .so-story-arrow{
  width:14px;
  height:17px;
  margin:2px auto;
}
#vision .so-story-arrow path,
#vision .so-story-merge path,
#vision .so-story-down path{stroke:rgba(185,255,203,.61);stroke-width:1.7}
#vision .so-story-merge polygon{fill:rgba(185,255,203,.7)}
#vision .so-story-memory,
#vision .so-story-twin{
  background:rgba(185,255,203,.025);
  border:1px solid rgba(185,255,203,.23);
  border-radius:17px;
  padding:22px 18px;
}
#vision .so-story-memory h3,
#vision .so-story-twin h3{
  color:rgba(242,243,240,.88);
  font-size:18px;
  font-weight:500;
  line-height:1.35;
}
#vision .so-story-memory p,
#vision .so-story-twin p{
  color:rgba(232,236,232,.66);
  font-size:13px;
  line-height:1.75;
}
#vision .so-story-memory .so-kicker,
#vision .so-story-twin .so-kicker{
  color:rgba(185,255,203,.57);
  font-size:10px;
  font-weight:400;
}
@media(max-width:720px){
  #vision .so-story-grid{gap:10px}
  #vision .so-story-track,
  #vision .so-story-track--biology{padding:15px 9px;border-radius:15px}
  #vision .so-story-track h3{font-size:15px}
  #vision .so-story-track__eyebrow{font-size:9px}
  #vision .so-story-track__sub{font-size:8px}
  #vision .so-story-sequence li,
  #vision .so-story-track--biology li{min-height:49px;padding:7px 3px;border-radius:10px}
  #vision .so-story-step__zh{font-size:12px}
  #vision .so-story-step__en{font-size:9px;letter-spacing:0}
  #vision .so-story-memory h3,
  #vision .so-story-twin h3{font-size:16px}
}

/* sovereign-flow-anim-v1: homepage Research Flow rhythm, two synchronized lanes */
#vision.so-flow-playing .so-story-sequence li,
#vision.so-flow-playing .so-story-memory,
#vision.so-flow-playing .so-story-twin{
  transition:border-color .42s ease,background-color .42s ease,box-shadow .42s ease;
}
#vision.so-flow-playing .so-story-sequence li.is-past{
  border-color:rgba(185,255,203,.25);
  background:rgba(185,255,203,.025);
}
#vision.so-flow-playing .so-story-sequence li.is-current{
  border-color:rgba(185,255,203,.79);
  background:rgba(185,255,203,.065);
  box-shadow:inset 0 0 0 1px rgba(185,255,203,.055),0 0 20px rgba(120,222,188,.09);
}
#vision.so-flow-playing .so-story-sequence li.is-current .so-story-step__zh{
  color:#f1fff6;
}
#vision.so-flow-playing .so-story-arrow.is-current path{
  stroke:#b9ffcb;
  stroke-width:2.6;
  animation:so-flow-arrow-pulse 1.35s ease-in-out both;
}
#vision.so-flow-playing .so-story-arrow.is-past path{
  stroke:rgba(185,255,203,.73);
}
#vision.so-flow-playing .so-story-merge.is-current path{
  stroke:#b9ffcb;
  stroke-width:2.3;
  stroke-dasharray:13 11;
  animation:so-flow-merge-current 1.4s linear infinite;
}
#vision.so-flow-playing .so-story-merge.is-current polygon{
  fill:#b9ffcb;
}
#vision.so-flow-playing .so-story-merge.is-past path{
  stroke:rgba(185,255,203,.70);
}
#vision.so-flow-playing .so-story-memory.is-current,
#vision.so-flow-playing .so-story-twin.is-current{
  border-color:rgba(185,255,203,.82);
  background:rgba(185,255,203,.075);
  box-shadow:0 0 24px rgba(120,222,188,.1);
}
#vision.so-flow-playing .so-story-memory.is-past{
  border-color:rgba(185,255,203,.43);
  background:rgba(185,255,203,.035);
}
#vision.so-flow-playing .so-story-down.is-current path{
  stroke:#b9ffcb;
  stroke-width:2.6;
  animation:so-flow-arrow-pulse 1.35s ease-in-out both;
}
@keyframes so-flow-arrow-pulse{
  0%{opacity:.25}
  45%{opacity:1}
  100%{opacity:.72}
}
@keyframes so-flow-merge-current{
  to{stroke-dashoffset:-48}
}
@media(prefers-reduced-motion:reduce){
  #vision.so-flow-playing *,
  #vision.so-flow-playing *::before,
  #vision.so-flow-playing *::after{
    animation:none!important;
    transition:none!important;
  }
}
