/* 叠满 Buff · 互动长文。
   底色与主色沿用门户（#050b16 深蓝底、#45c8f5 青）；七层 Buff 各配一种点缀色，
   只用在图标、数字和小面积高光上。不用 CSS 嵌套（照顾微信旧内核），
   所有动效都受门户的“暂停动效”开关（html.motion-paused）控制。 */

.fb-page {
  --b1:#45c8f5; --b1-rgb:69,200,245;
  --b2:#5b9dff; --b2-rgb:91,157,255;
  --b3:#5ef2c2; --b3-rgb:94,242,194;
  --b4:#ffc23d; --b4-rgb:255,194,61;
  --b5:#ff7a1a; --b5-rgb:255,122,26;
  --b6:#cefa69; --b6-rgb:206,250,105;
  --b7:#ff2e63; --b7-rgb:255,46,99;
  --fb-gray:#5d6f8c;
  --fb-ok:#3ddc84; --fb-ok-rgb:61,220,132;
  --fb-warn:#ffc23d; --fb-warn-rgb:255,194,61;
  --fb-stop:#ff4d6d; --fb-stop-rgb:255,77,109;
  --fb-text:#c9d5ea;
  --fb-cn:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Source Han Sans SC",sans-serif;
}

.fb {
  --fb-top:86px;
  --buff:var(--b1);
  --buff-rgb:var(--b1-rgb);
  display:block;
}

/* 图标精灵本身不占位 */
.fb-sprite {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}

.fb-wrap {
  width:min(var(--width),100% - var(--gutter)*2);
  margin-inline:auto;
}

.fb svg,.fb-hud svg,.fb-toast svg {
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.fb-buff[data-buff="1"] { --buff:var(--b1); --buff-rgb:var(--b1-rgb); }
.fb-buff[data-buff="2"] { --buff:var(--b2); --buff-rgb:var(--b2-rgb); }
.fb-buff[data-buff="3"] { --buff:var(--b3); --buff-rgb:var(--b3-rgb); }
.fb-buff[data-buff="4"] { --buff:var(--b4); --buff-rgb:var(--b4-rgb); }
.fb-buff[data-buff="5"] { --buff:var(--b5); --buff-rgb:var(--b5-rgb); }
.fb-buff[data-buff="6"] { --buff:var(--b6); --buff-rgb:var(--b6-rgb); }
.fb-buff[data-buff="7"] { --buff:var(--b7); --buff-rgb:var(--b7-rgb); }

.fb-lang-note {
  width:min(var(--width),100% - var(--gutter)*2);
  margin:16px auto 0;
  padding:10px 14px;
  border:1px solid var(--line);
  background:rgba(11,23,41,.7);
  color:var(--muted);
  font-size:13px;
}

/* ---------- 入场 ---------- */
.fb-js .fb-reveal {
  transition:opacity .8s var(--ease),transform .8s var(--ease);
}

.fb-js .fb-reveal:not(.is-in) {
  opacity:0;
  transform:translateY(26px);
}

/* ---------- 引用角标 ---------- */
.fb-sup {
  font-size:10.5px;
  line-height:0;
  vertical-align:super;
  margin-left:2px;
  white-space:nowrap;
}

.fb-sup a {
  display:inline-block;
  min-width:17px;
  margin-left:2px;
  padding:2px 4px;
  border-radius:3px;
  background:rgba(69,200,245,.13);
  color:var(--accent);
  font:600 10.5px/1.25 var(--mono);
  text-align:center;
  transition:background .2s,color .2s;
}

.fb-sup a:hover,.fb-sup a:focus-visible {
  background:var(--accent);
  color:#041329;
}

/* ---------- 按钮 ---------- */
.fb-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:46px;
  padding:11px 20px;
  border:1px solid rgba(120,168,226,.35);
  background:rgba(5,11,22,.55);
  color:var(--ink);
  font-size:14px;
  font-weight:650;
  transition:background .25s,border-color .25s,color .25s,transform .25s;
}

.fb-btn:hover {
  border-color:var(--accent);
  color:var(--accent);
}

.fb-btn-primary {
  border-color:transparent;
  background:var(--accent);
  color:#041329;
}

.fb-btn-primary:hover {
  background:#7fdcff;
  color:#041329;
  transform:translateY(-1px);
}

/* ================= HERO ================= */
.fb-hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  align-items:center;
  min-height:calc(100vh - var(--fb-top));
  padding-block:48px 84px;
}

@supports (height:100svh) {
  .fb-hero { min-height:calc(100svh - var(--fb-top)); }
}

.fb-hero-canvas {
  position:absolute;
  inset:0;
  z-index:-1;
  width:100%;
  height:100%;
  display:block;
}

.fb-hero-grid {
  position:absolute;
  inset:0;
  z-index:-2;
  background-image:linear-gradient(rgba(69,200,245,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(69,200,245,.07) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 65% 75% at 72% 55%,#000 25%,transparent 78%);
  mask-image:radial-gradient(ellipse 65% 75% at 72% 55%,#000 25%,transparent 78%);
}

.fb-hero-inner {
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:24px;
  align-items:center;
}

.fb-eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:22px;
  color:var(--accent);
  font:11px/1.5 var(--mono);
  letter-spacing:.18em;
  text-transform:uppercase;
}

.fb-title {
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:0 .14em;
  margin:0;
  line-height:.9;
}

.fb-title-cn {
  color:var(--ink);
  font:900 clamp(78px,11.5vw,168px)/.95 var(--fb-cn);
  letter-spacing:-.05em;
  text-shadow:0 0 42px rgba(69,200,245,.22);
}

.fb-title-en {
  position:relative;
  display:inline-block;
  padding-right:.04em;
  background:linear-gradient(100deg,#b9eeff 0%,var(--accent) 38%,var(--cyan) 68%,#9d8cff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font:400 clamp(88px,13.5vw,196px)/.86 var(--display);
  letter-spacing:.01em;
  filter:drop-shadow(0 0 26px rgba(69,200,245,.35));
}

.fb-title-en::before,.fb-title-en::after {
  content:attr(data-text);
  position:absolute;
  left:0;
  top:0;
  opacity:0;
  pointer-events:none;
}

.fb-title-en::before { color:var(--b5); }
.fb-title-en::after { color:var(--accent); }

.fb-title-en.is-glitch::before {
  opacity:.7;
  animation:fb-glitch-a .34s steps(2,end) 1 forwards;
}

.fb-title-en.is-glitch::after {
  opacity:.7;
  animation:fb-glitch-b .34s steps(2,end) 1 forwards;
}

@keyframes fb-glitch-a {
  0% { transform:translate(-5px,2px); clip-path:inset(12% 0 58% 0); }
  50% { transform:translate(4px,-2px); clip-path:inset(62% 0 8% 0); }
  100% { transform:translate(0,0); clip-path:inset(100% 0 0 0); }
}

@keyframes fb-glitch-b {
  0% { transform:translate(5px,-1px); clip-path:inset(55% 0 20% 0); }
  50% { transform:translate(-4px,2px); clip-path:inset(8% 0 70% 0); }
  100% { transform:translate(0,0); clip-path:inset(100% 0 0 0); }
}

.fb-hero-sub {
  margin-top:26px;
  color:var(--ink);
  font-size:clamp(18px,1.9vw,26px);
  font-weight:650;
  letter-spacing:-.01em;
  line-height:1.55;
}

.fb-hero-sub b {
  color:var(--accent);
  font-weight:800;
}

.fb-br { display:none; }

.fb-nowrap { white-space:nowrap; }

/* 叠 Buff 的七个徽章：开场依次落下 */
.fb-stack {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:28px 0 0;
  padding:0;
  list-style:none;
}

.fb-stack a {
  display:grid;
  justify-items:center;
  gap:7px;
  width:58px;
  color:var(--c);
}

.fb-stack a::before {
  content:"";
  grid-area:1/1;
  width:50px;
  height:44px;
  clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);
  background:var(--c);
  opacity:.16;
  transition:opacity .25s;
}

.fb-stack svg {
  grid-area:1/1;
  align-self:center;
  width:24px;
  height:24px;
  filter:drop-shadow(0 0 10px var(--c));
}

.fb-stack span {
  color:var(--muted);
  font-size:12px;
  font-weight:650;
  letter-spacing:.06em;
}

.fb-stack a:hover::before,.fb-stack a:focus-visible::before {
  opacity:.34;
}

.fb-js .fb-stack li {
  opacity:0;
  transform:translateY(-16px) scale(.7);
  transition:opacity .45s var(--ease),transform .55s cubic-bezier(.3,1.6,.5,1);
}

.fb-js .fb-stack li.is-stacked {
  opacity:1;
  transform:none;
}

.fb-meta {
  display:flex;
  flex-wrap:wrap;
  gap:6px 0;
  margin-top:24px;
  color:var(--faint);
  font:12px/1.6 var(--mono);
}

.fb-meta span+span::before {
  content:"/";
  margin:0 10px;
  color:rgba(120,168,226,.35);
}

.fb-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}

.fb-hero-stage {
  position:relative;
  min-height:clamp(320px,52vh,560px);
}

.fb-hero-counter {
  position:absolute;
  right:0;
  top:6px;
  display:flex;
  align-items:baseline;
  gap:8px;
  color:var(--faint);
  font:600 11px/1 var(--mono);
  letter-spacing:.2em;
}

.fb-hero-counter b {
  color:var(--accent);
  font:400 44px/1 var(--display);
  letter-spacing:.02em;
  text-shadow:0 0 18px rgba(69,200,245,.5);
}

.fb-scroll-cue {
  position:absolute;
  left:50%;
  bottom:22px;
  display:grid;
  place-items:start center;
  width:24px;
  height:38px;
  margin-left:-12px;
  border:1.5px solid rgba(148,165,191,.5);
  border-radius:12px;
}

.fb-scroll-cue span {
  width:3px;
  height:8px;
  margin-top:7px;
  border-radius:2px;
  background:var(--accent);
  animation:fb-cue 1.8s var(--ease) infinite;
}

@keyframes fb-cue {
  0% { opacity:0; transform:translateY(-3px); }
  40% { opacity:1; }
  100% { opacity:0; transform:translateY(12px); }
}

/* ================= INTRO ================= */
.fb-intro {
  position:relative;
  padding-block:clamp(80px,13vh,150px);
  border-top:1px solid var(--line);
  text-align:center;
}

.fb-kicker {
  color:var(--accent);
  font:600 12px/1 var(--mono);
  letter-spacing:.22em;
}

.fb-no1 {
  margin:18px 0 0;
  line-height:.82;
}

.fb-no1-big {
  display:inline-block;
  background:linear-gradient(100deg,rgba(69,200,245,.12) 0%,rgba(69,200,245,.12) 40%,#dff7ff 50%,rgba(69,200,245,.12) 60%,rgba(69,200,245,.12) 100%);
  background-size:260% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-stroke:2px rgba(69,200,245,.85);
  font:400 clamp(120px,21vw,290px)/.85 var(--display);
  letter-spacing:.01em;
  animation:fb-shine 5.5s linear infinite;
}

@keyframes fb-shine {
  from { background-position:130% 0; }
  to { background-position:-130% 0; }
}

.fb-intro-lead {
  max-width:31em;
  margin:30px auto 0;
  color:var(--fb-text);
  font-size:clamp(17px,1.8vw,22px);
  line-height:1.8;
}

.fb-intro-lead strong { color:var(--ink); }

.fb-intro-text {
  max-width:30em;
  margin:18px auto 0;
  color:var(--muted);
  font-size:16px;
  line-height:1.85;
}

.fb-duo {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:18px;
  max-width:820px;
  margin:46px auto 0;
}

.fb-duo-card {
  padding:22px 22px 20px;
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(15,33,66,.62),rgba(11,23,41,.35));
  text-align:left;
}

.fb-duo-tag {
  color:var(--accent);
  font:600 12px/1 var(--mono);
  letter-spacing:.14em;
}

.fb-duo-list {
  margin-top:12px;
  color:var(--ink);
  font-size:19px;
  font-weight:700;
}

.fb-duo-list i {
  margin:0 7px;
  color:var(--faint);
  font-style:normal;
}

.fb-duo-x {
  color:var(--accent);
  font:400 56px/1 var(--display);
}

.fb-intro-go {
  margin-top:40px;
  color:var(--muted);
  font-size:15px;
}

/* ================= BUFF 通用 ================= */
.fb-buff {
  position:relative;
  isolation:isolate;
  padding-block:clamp(90px,13vh,150px);
  border-top:1px solid var(--line);
}

.fb-buff::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:radial-gradient(55% 42% at 12% 6%,rgba(var(--buff-rgb),.11),transparent 72%),radial-gradient(40% 40% at 92% 70%,rgba(var(--buff-rgb),.05),transparent 70%);
  pointer-events:none;
}

.fb-buff-head {
  margin-bottom:clamp(34px,6vh,60px);
}

.fb-tag {
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--buff);
  font:600 12px/1 var(--mono);
  letter-spacing:.2em;
  text-transform:uppercase;
}

.fb-tag-no {
  padding:7px 10px;
  border:1px solid rgba(var(--buff-rgb),.5);
  background:rgba(var(--buff-rgb),.08);
}

.fb-tag-en { color:var(--faint); }

.fb-buff.is-acquired .fb-tag-no {
  animation:fb-unlock .9s var(--ease) 1;
}

@keyframes fb-unlock {
  0% { background:rgba(var(--buff-rgb),.08); box-shadow:0 0 0 0 rgba(var(--buff-rgb),.6); }
  30% { background:var(--buff); color:#041329; box-shadow:0 0 0 10px rgba(var(--buff-rgb),0); }
  100% { background:rgba(var(--buff-rgb),.08); box-shadow:0 0 0 0 rgba(var(--buff-rgb),0); }
}

.fb-h2 {
  display:flex;
  align-items:center;
  gap:.2em;
  margin:18px 0 0;
  color:var(--ink);
  font:900 clamp(54px,8.6vw,124px)/1 var(--fb-cn);
  letter-spacing:-.03em;
}

.fb-h2-icon {
  flex-shrink:0;
  width:.62em;
  height:.62em;
  color:var(--buff);
  stroke-width:1.5;
  filter:drop-shadow(0 0 18px rgba(var(--buff-rgb),.6));
}

.fb-buff.is-acquired .fb-h2-icon {
  animation:fb-pop .7s cubic-bezier(.3,1.7,.5,1) 1;
}

@keyframes fb-pop {
  0% { transform:scale(.6) rotate(-12deg); }
  60% { transform:scale(1.18) rotate(4deg); }
  100% { transform:none; }
}

.fb-beat { animation:fb-heart 1.05s ease-in-out infinite; }

@keyframes fb-heart {
  0%,100% { transform:scale(1); }
  14% { transform:scale(1.12); }
  28% { transform:scale(.98); }
  42% { transform:scale(1.07); }
  60% { transform:scale(1); }
}

.fb-lede {
  margin-top:16px;
  padding-left:16px;
  border-left:3px solid var(--buff);
  color:var(--ink);
  font-size:clamp(18px,2.1vw,27px);
  font-weight:700;
  line-height:1.45;
}

.fb-split {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);
  gap:clamp(28px,4.4vw,68px);
  align-items:start;
}

.fb-split-even {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}

.fb-col { min-width:0; }

.fb-p {
  max-width:35em;
  margin:0 0 18px;
  color:var(--fb-text);
  font-size:16px;
  line-height:1.9;
}

.fb-p strong { color:var(--ink); }

.fb-tip {
  margin:6px 0 18px;
  padding:11px 14px;
  border-left:3px solid var(--buff);
  background:rgba(var(--buff-rgb),.07);
  color:var(--ink);
  font-size:15px;
  line-height:1.75;
}

.fb-tip b {
  margin-right:10px;
  color:var(--buff);
}

.fb-caveat {
  margin-top:18px;
  color:var(--faint);
  font-size:13px;
  line-height:1.75;
}

.fb-caveat::before {
  content:"注 ";
  color:var(--muted);
  font-weight:700;
}

/* 大数字 */
.fb-stat {
  display:grid;
  gap:12px;
  margin-bottom:26px;
  padding-bottom:26px;
  border-bottom:1px solid var(--line);
}

.fb-stat-num {
  color:var(--buff);
  font:800 clamp(64px,8.6vw,118px)/.9 var(--sans);
  letter-spacing:-.045em;
  text-shadow:0 0 34px rgba(var(--buff-rgb),.32);
}

.fb-stat-label {
  max-width:27em;
  color:var(--muted);
  font-size:15px;
  line-height:1.7;
}

.fb-stat-sm .fb-stat-num { font-size:clamp(44px,5.6vw,70px); }

.fb-stat-sm {
  margin-top:8px;
  margin-bottom:0;
  border-bottom:0;
  padding-bottom:0;
}

/* 三条理由 */
.fb-reasons {
  display:grid;
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:fbr;
}

.fb-reasons li {
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:4px 12px;
  padding:15px 16px;
  border:1px solid var(--line);
  background:rgba(11,23,41,.55);
  counter-increment:fbr;
}

.fb-reasons li::before {
  content:counter(fbr,decimal-leading-zero);
  grid-row:span 2;
  color:var(--buff);
  font:400 28px/1 var(--display);
}

.fb-reasons b {
  color:var(--ink);
  font-size:17px;
}

.fb-reasons span {
  color:var(--muted);
  font-size:14.5px;
  line-height:1.7;
}

/* ================= 实验卡 ================= */
.fb-lab {
  position:relative;
  min-width:0;
  margin:0;
  padding:clamp(18px,2.4vw,26px);
  border:1px solid rgba(var(--buff-rgb),.26);
  background:linear-gradient(180deg,rgba(15,33,66,.74),rgba(8,17,32,.86));
  box-shadow:0 30px 80px -42px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.04);
}

.fb-lab::before {
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  background:
    linear-gradient(var(--buff),var(--buff)) left top/16px 2px no-repeat,
    linear-gradient(var(--buff),var(--buff)) left top/2px 16px no-repeat,
    linear-gradient(var(--buff),var(--buff)) right top/16px 2px no-repeat,
    linear-gradient(var(--buff),var(--buff)) right top/2px 16px no-repeat,
    linear-gradient(var(--buff),var(--buff)) left bottom/16px 2px no-repeat,
    linear-gradient(var(--buff),var(--buff)) left bottom/2px 16px no-repeat,
    linear-gradient(var(--buff),var(--buff)) right bottom/16px 2px no-repeat,
    linear-gradient(var(--buff),var(--buff)) right bottom/2px 16px no-repeat;
}

.fb-lab-head {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  margin-bottom:16px;
}

.fb-lab-tag {
  padding:5px 8px;
  background:var(--buff);
  color:#041329;
  font:700 11px/1 var(--mono);
  letter-spacing:.14em;
}

.fb-lab-title {
  color:var(--ink);
  font-size:17px;
  font-weight:750;
  line-height:1.45;
}

.fb-lab-result {
  min-height:2.8em;
  margin-top:16px;
  color:var(--ink);
  font-size:15.5px;
  line-height:1.65;
}

.fb-lab-result b {
  color:var(--buff);
  font-size:1.3em;
}

.fb-lab-note {
  margin-top:10px;
  color:var(--faint);
  font-size:12.5px;
  line-height:1.7;
}

/* 选择片 */
.fb-chips {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.fb-chips button {
  display:grid;
  gap:2px;
  min-height:44px;
  padding:7px 12px;
  border:1px solid var(--line);
  background:rgba(5,11,22,.6);
  color:var(--ink);
  font-size:14px;
  font-weight:650;
  text-align:left;
  transition:border-color .2s,background .2s,box-shadow .2s;
}

.fb-chips button small {
  color:var(--faint);
  font:11px/1.2 var(--mono);
}

.fb-chips button:hover { border-color:rgba(var(--buff-rgb),.6); }

.fb-chips button[aria-checked="true"] {
  border-color:var(--buff);
  background:rgba(var(--buff-rgb),.14);
  box-shadow:inset 0 0 0 1px var(--buff);
}

.fb-seg {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  margin-top:14px;
}

.fb-seg button {
  min-height:48px;
  padding:8px 4px;
  border:1px solid var(--line);
  background:rgba(5,11,22,.6);
  color:var(--ink);
  font:700 17px/1.1 var(--sans);
  transition:border-color .2s,background .2s,box-shadow .2s;
}

.fb-seg button small {
  display:block;
  margin-top:4px;
  color:var(--faint);
  font:11px/1 var(--mono);
}

.fb-seg-4 button { font-size:15px; }

.fb-seg button:hover { border-color:rgba(var(--buff-rgb),.6); }

.fb-seg button[aria-checked="true"] {
  border-color:var(--buff);
  background:rgba(var(--buff-rgb),.14);
  box-shadow:inset 0 0 0 1px var(--buff);
}

/* 滑块 */
.fb-sliders {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 18px;
}

.fb-range {
  display:grid;
  gap:6px;
  margin-top:16px;
  color:var(--muted);
  font-size:14px;
}

.fb-range output {
  color:var(--ink);
  font-weight:750;
  font-variant-numeric:tabular-nums;
}

.fb-range small { color:var(--faint); }

.fb input[type="range"] {
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  height:28px;
  margin:0;
  background:transparent;
  cursor:pointer;
}

.fb input[type="range"]::-webkit-slider-runnable-track {
  height:4px;
  border-radius:2px;
  background:linear-gradient(90deg,var(--buff) 0,var(--buff) var(--p,50%),rgba(120,168,226,.24) var(--p,50%));
}

.fb input[type="range"]::-moz-range-track {
  height:4px;
  border-radius:2px;
  background:rgba(120,168,226,.24);
}

.fb input[type="range"]::-moz-range-progress {
  height:4px;
  border-radius:2px;
  background:var(--buff);
}

.fb input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance:none;
  width:20px;
  height:20px;
  margin-top:-8px;
  border:3px solid var(--buff);
  border-radius:50%;
  background:var(--ink);
  box-shadow:0 0 14px rgba(var(--buff-rgb),.6);
}

.fb input[type="range"]::-moz-range-thumb {
  width:14px;
  height:14px;
  border:3px solid var(--buff);
  border-radius:50%;
  background:var(--ink);
}

.fb input[type="range"]:focus-visible { outline:2px solid var(--cyan); outline-offset:4px; }

/* 实验 1：两条跑道 */
.fb-lanes {
  display:grid;
  gap:12px;
  margin-top:22px;
}

.fb-lane {
  display:grid;
  grid-template-columns:104px minmax(0,1fr) 76px;
  align-items:end;
  gap:10px;
}

.fb-lane-name {
  padding-bottom:4px;
  color:var(--muted);
  font-size:13px;
}

.fb-lane-track {
  position:relative;
  height:42px;
  border-bottom:1px solid rgba(120,168,226,.28);
}

.fb-lane-bar {
  position:absolute;
  left:0;
  bottom:5px;
  width:var(--w,0%);
  height:8px;
  border-radius:0 4px 4px 0;
  background:var(--fb-gray);
  transition:width 1s var(--ease);
}

.fb-lane-ride .fb-lane-bar {
  background:var(--buff);
  box-shadow:0 0 16px rgba(var(--buff-rgb),.5);
}

.fb-lane-icon {
  position:absolute;
  left:var(--w,0%);
  bottom:15px;
  width:26px;
  height:26px;
  margin-left:-13px;
  color:var(--ink);
  stroke-width:1.7;
  transition:left 1s var(--ease);
}

.fb-lane-ride .fb-lane-icon { color:var(--buff); }

.fb-lane-val {
  padding-bottom:2px;
  color:var(--ink);
  font:750 16px/1.2 var(--sans);
  text-align:right;
  font-variant-numeric:tabular-nums;
}

.fb-lane-axis {
  display:flex;
  justify-content:space-between;
  margin-left:114px;
  margin-right:86px;
  color:var(--faint);
  font:11px/1 var(--mono);
}

.fb-method {
  margin-top:14px;
  padding-top:10px;
  border-top:1px solid var(--line);
}

.fb-method summary {
  color:var(--accent);
  font-size:13px;
  font-weight:650;
  list-style:none;
}

.fb-method summary::-webkit-details-marker { display:none; }
.fb-method summary::before { content:"+ "; font-family:var(--mono); }
.fb-method[open] summary::before { content:"− "; }

.fb-method p {
  margin-top:8px;
  color:var(--muted);
  font-size:13px;
  line-height:1.85;
}

/* 自行车进化史 */
.fb-evo {
  margin-top:clamp(50px,8vh,84px);
  padding-top:28px;
  border-top:1px solid var(--line);
}

.fb-evo-title {
  color:var(--ink);
  font-size:18px;
  font-weight:800;
}

.fb-evo-title small {
  margin-left:8px;
  color:var(--faint);
  font-size:12.5px;
  font-weight:500;
}

.fb-evo-list {
  position:relative;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
  margin:20px 0 0;
  padding:0;
  list-style:none;
}

.fb-evo-list li {
  position:relative;
  display:grid;
  gap:6px;
  align-content:start;
}

.fb-evo-list svg {
  width:76px;
  height:44px;
  color:var(--buff);
  stroke-width:1.6;
}

.fb-evo-list b {
  color:var(--ink);
  font-size:14px;
}

.fb-evo-list span {
  color:var(--muted);
  font-size:12.5px;
  line-height:1.6;
}

.fb-evo-note {
  margin-top:20px;
  color:var(--fb-text);
  font-size:15px;
  line-height:1.8;
}

.fb-evo-note b { color:var(--buff); }

/* 小指标组 */
.fb-kpis {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin-bottom:clamp(34px,5vh,56px);
  border:1px solid var(--line);
  background:var(--line);
}

.fb-kpi {
  display:grid;
  align-content:start;
  gap:8px;
  padding:22px 20px;
  background:var(--bg);
}

.fb-kpi b {
  color:var(--buff);
  font:800 clamp(32px,4vw,50px)/1 var(--sans);
  letter-spacing:-.025em;
}

.fb-kpi span {
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
}

.fb-kpis-3 {
  margin-top:clamp(40px,6vh,64px);
  margin-bottom:0;
}

/* 实验 2：风 */
.fb-wind-stage {
  position:relative;
  height:230px;
  overflow:hidden;
  border:1px solid var(--line);
  background:radial-gradient(70% 90% at 40% 60%,rgba(91,157,255,.1),transparent 70%),#060d1b;
}

.fb-wind-stage canvas {
  display:block;
  width:100%;
  height:100%;
}

.fb-heat {
  position:absolute;
  top:12px;
  right:12px;
  bottom:12px;
  display:grid;
  grid-template-rows:auto 1fr;
  justify-items:center;
  gap:8px;
}

.fb-heat-label {
  color:var(--muted);
  font-size:11px;
  writing-mode:vertical-rl;
  letter-spacing:.2em;
}

.fb-heat-track {
  position:relative;
  width:10px;
  border-radius:5px;
  background:rgba(120,168,226,.16);
  overflow:hidden;
}

.fb-heat-fill {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:var(--h,30%);
  background:linear-gradient(0deg,#5b9dff,#ffc23d 62%,#ff4d6d);
  transition:height .9s var(--ease);
}

/* 横向条形图（膝关节受力、协同效应） */
.fb-chart { margin:0 0 30px; }

.fb-chart-title {
  margin-bottom:14px;
  color:var(--ink);
  font-size:15px;
  font-weight:750;
}

.fb-chart-title small,.fb-chart-sub {
  color:var(--faint);
  font-size:12.5px;
  font-weight:500;
}

.fb-chart-sub { margin:-6px 0 14px; }

.fb-bars {
  --max:4.6;
  display:grid;
  gap:12px;
}

.fb-bars-syn { --max:16.5; }

.fb-bar {
  display:grid;
  grid-template-columns:118px minmax(0,1fr) 46px;
  align-items:center;
  gap:10px;
  outline:none;
}

.fb-bar-name {
  color:var(--muted);
  font-size:13.5px;
}

.fb-bar-track {
  position:relative;
  height:20px;
}

.fb-bar-track::before {
  content:"";
  position:absolute;
  left:0;
  top:-6px;
  bottom:-6px;
  width:1px;
  background:rgba(120,168,226,.35);
}

.fb-bar-fill {
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:calc(var(--v) / var(--max) * 100%);
  border-radius:0 4px 4px 0;
  background:var(--fb-gray);
  transform-origin:left center;
  transform:scaleX(0);
  transition:transform 1.1s var(--ease),filter .2s;
}

.fb-bar:nth-child(2) .fb-bar-fill { transition-delay:.12s; }
.fb-bar:nth-child(3) .fb-bar-fill { transition-delay:.24s; }
.fb-bar:nth-child(4) .fb-bar-fill { transition-delay:.36s; }

.fb-chart.is-in .fb-bar-fill,.fb-lab.is-in .fb-bar-fill,.no-observer .fb-bar-fill { transform:scaleX(1); }

.fb-bar.is-key .fb-bar-fill {
  background:var(--buff);
  box-shadow:0 0 18px rgba(var(--buff-rgb),.45);
}

.fb-bar.is-ghost .fb-bar-fill {
  background:transparent;
  box-shadow:inset 0 0 0 1.5px rgba(148,165,191,.6);
}

.fb-bar:hover .fb-bar-fill,.fb-bar:focus-visible .fb-bar-fill { filter:brightness(1.25); }
.fb-bar:focus-visible { outline:1px solid rgba(var(--buff-rgb),.6); outline-offset:4px; }

.fb-bar-val {
  color:var(--ink);
  font:750 15px/1 var(--sans);
  text-align:right;
  font-variant-numeric:tabular-nums;
}

.fb-bar.is-key .fb-bar-name { color:var(--ink); font-weight:700; }

.fb-chart-note {
  margin-top:14px;
  color:var(--faint);
  font-size:12.5px;
  line-height:1.7;
}

/* 实验 3/4：SVG 示意 */
.fb-saddle-svg,.fb-fall-svg {
  display:block;
  width:100%;
  height:auto;
  border:1px solid var(--line);
  background:#060d1b;
}

.sv-ground { stroke:rgba(120,168,226,.35); stroke-width:1.5; }
.sv-faint { stroke:rgba(120,168,226,.22); stroke-width:1.5; fill:none; }
.sv-frame { stroke:#9fb7da; stroke-width:4; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.sv-post { stroke:var(--buff); stroke-width:4.5; stroke-linecap:round; }
.sv-saddle { fill:var(--buff); }
.sv-limb { stroke:#e9effa; stroke-width:9; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.sv-limb-far { stroke:rgba(127,182,255,.35); }
.sv-joint { fill:#050b16; stroke:#e9effa; stroke-width:2; }
.sv-head { fill:#050b16; stroke:rgba(127,182,255,.45); stroke-width:4; }
.sv-arc { fill:none; stroke-width:2.5; }
.fb svg text { stroke:none; }
.sv-label { fill:#e9effa; font:700 15px var(--sans); }
.sv-small { fill:#94a5bf; font:12px var(--sans); }
.sv-tick { stroke:rgba(120,168,226,.45); stroke-width:1; }
.sv-building { fill:#0b1729; stroke:rgba(120,168,226,.35); stroke-width:1.2; }
.sv-window { fill:rgba(91,157,255,.18); stroke:none; }
.sv-window.is-lit { fill:rgba(255,194,61,.65); }
.sv-drop { stroke:var(--buff); stroke-width:2; }
.sv-marker { fill:var(--buff); }

/* 三字诀 */
.fb-triad {
  display:grid;
  gap:10px;
  margin:0 0 24px;
  padding:0;
  list-style:none;
}

.fb-triad li {
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  align-items:center;
  gap:14px;
  padding:12px 16px;
  border:1px solid var(--line);
  background:rgba(11,23,41,.55);
}

.fb-triad b {
  color:var(--buff);
  font:900 30px/1 var(--fb-cn);
  text-align:center;
}

.fb-triad span {
  color:var(--muted);
  font-size:14.5px;
  line-height:1.65;
}

/* 拉丁语页：三件套的大字词（Estrecha/Étroit/Narrow…）比单个汉字宽得多，
   52px 列会压到说明文字；改为加宽固定列 + 略小字号，左对齐保持三行说明对齐 */
html[data-fb-lang]:not([data-fb-lang="zh"]) .fb-triad li { grid-template-columns:172px minmax(0,1fr); }
html[data-fb-lang]:not([data-fb-lang="zh"]) .fb-triad b { font-size:24px; text-align:left; }

/* 总账天平 */
.fb-ledger {
  margin-top:clamp(48px,7vh,76px);
  padding:clamp(20px,3vw,30px);
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(15,33,66,.52),rgba(5,11,22,.2));
}

.fb-ledger-title {
  color:var(--ink);
  font-size:18px;
  font-weight:800;
}

.fb-ledger-scale {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(90px,220px) minmax(0,1fr);
  align-items:center;
  gap:18px;
  margin-top:22px;
}

.fb-ledger-side {
  display:grid;
  gap:4px;
  text-align:center;
}

.fb-ledger-side b {
  font:800 clamp(24px,3.2vw,40px)/1.1 var(--sans);
  letter-spacing:-.02em;
}

.fb-ledger-side span {
  margin-bottom:6px;
  color:var(--muted);
  font-size:13px;
}

.fb-ledger-side.is-gain b { color:var(--fb-ok); }

.fb-ledger-side.is-loss b {
  color:var(--fb-stop);
  font-size:clamp(17px,2.2vw,24px);
}

.fb-ledger-beam {
  position:relative;
  height:70px;
}

.fb-ledger-beam::before {
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:0;
  height:0;
  margin-left:-14px;
  border:14px solid transparent;
  border-bottom:28px solid rgba(120,168,226,.45);
  border-top:0;
}

.fb-ledger-beam span {
  position:absolute;
  left:0;
  right:0;
  top:38%;
  height:3px;
  border-radius:2px;
  background:linear-gradient(90deg,var(--fb-ok),rgba(233,239,250,.8) 50%,var(--fb-stop));
  transform:rotate(0deg);
  transition:transform 1.6s cubic-bezier(.35,1.6,.5,1) .3s;
}

.fb-ledger.is-in .fb-ledger-beam span { transform:rotate(-11deg); }

.fb-ledger-note {
  margin-top:16px;
  color:var(--faint);
  font-size:12.5px;
}

/* ================= BUFF 05：一条连续的长镜头 =================
   「框，不见了」：车内 → 穿出车框 → 第三人称 → 第一人称；镜头再退回骑手身后，接「爽，是从哪来的？」。
   外层 .fb-pirsig 负责滚动长度（桌面 370vh + 70vh + 460vh，与 pirsig.js 的 A、B 配套），
   .fb-ride-stage 粘在视口里，里面叠着两层画布：前半段 pirsig.js，后半段 rush.js，交接处是同一帧。
   第一视角起顶栏让位（body.fb-fullbleed），直到整条长镜头结束。 */
.fb-pirsig {
  position:relative;
  height:1000vh;
  margin-top:10px;
}

.fb-ride-stage {
  position:-webkit-sticky;
  position:sticky;
  top:0;
  height:100vh;
  overflow:hidden;
  isolation:isolate;
  background:#040812;
}

.fb-pirsig-stage {
  --hint-o:1;
  position:absolute;
  inset:0;
  overflow:hidden;
  isolation:isolate;
  background:#040812;
}

/* 交接后由「爽」这一层占画面；两层在交接那一刻画的是同一帧 */
.fb-ride-stage.is-rush .fb-pirsig-stage { visibility:hidden; }
.fb-js .fb-pirsig:not(.fb-static) .fb-ride-stage:not(.is-rush) .fb-rush-stage { visibility:hidden; }

.fb-pirsig-canvas {
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
}

.fb-shots {
  position:absolute;
  left:max(16px,3vw);
  top:calc(var(--fb-top) + 16px);
  z-index:3;
  display:flex;
  gap:6px;
  margin:0;
  padding:0;
  list-style:none;
  font:11px/1 var(--mono);
  letter-spacing:.06em;
  pointer-events:none;
  transition:transform .5s var(--ease),opacity .4s;
}

.fb-pirsig-stage.is-bridge .fb-shots { opacity:0; }

.fb-shots li {
  padding:6px 10px;
  border:1px solid rgba(120,168,226,.22);
  border-radius:999px;
  background:rgba(3,6,13,.45);
  color:var(--faint);
  transition:color .3s,border-color .3s,background .3s;
}

.fb-pirsig-stage[data-shot="0"] .fb-shots li:nth-child(1),
.fb-pirsig-stage[data-shot="1"] .fb-shots li:nth-child(2),
.fb-pirsig-stage[data-shot="2"] .fb-shots li:nth-child(3) {
  border-color:rgba(255,122,26,.7);
  background:rgba(255,122,26,.16);
  color:var(--ink);
}

.fb-fullbleed .fb-shots { transform:translateY(calc(-1 * var(--fb-top))); }

/* 第一视角：顶栏让位；手机菜单打开时不收 */
.fb-page .topbar { transition:background .3s,transform .5s var(--ease); }
.fb-page.fb-fullbleed:not(.menu-open) .topbar { transform:translateY(-101%); }

.fb-quote {
  position:absolute;
  left:50%;
  z-index:2;
  width:min(860px,88vw);
  margin:0;
  text-align:center;
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}

.fb-quote p+p { margin-top:12px; }

.fb-quote p { text-wrap:balance; }

.fb-quote::before {
  content:"";
  position:absolute;
  inset:-48px -70px;
  z-index:-1;
  background:radial-gradient(closest-side,rgba(3,6,13,.72),rgba(3,6,13,.35) 60%,transparent);
  pointer-events:none;
}

.fb-quote p[lang="en"] {
  color:#aebcd4;
  font:italic 400 clamp(14px,1.45vw,19px)/1.65 Georgia,"Times New Roman",serif;
}

.fb-quote p:not([lang]) {
  color:var(--ink);
  font:800 clamp(19px,2.5vw,34px)/1.55 var(--fb-cn);
  letter-spacing:-.01em;
  text-shadow:0 2px 26px rgba(0,0,0,.75);
}

/* 拉丁语页面（is-original，由构建生成）：Pirsig 引文直接以英文原文为大字，译文退为小字 */
.fb-quote.is-original p[lang="en"] {
  color:var(--ink);
  font:italic 700 clamp(16px,1.9vw,27px)/1.6 Georgia,"Times New Roman",serif;
  letter-spacing:.005em;
  text-shadow:0 2px 26px rgba(0,0,0,.75);
}

.fb-quote.is-original p:not([lang]) {
  color:#aebcd4;
  font:400 clamp(13px,1.35vw,17px)/1.65 var(--fb-cn);
  letter-spacing:0;
  text-shadow:none;
}

.fb-quote footer {
  margin-top:16px;
  color:var(--muted);
  font-size:13px;
}

/* 引文 A：车内，像字幕一样压在挡风玻璃下沿、仪表台上方 */
.fb-quote-a {
  bottom:34.5%;
  opacity:0;
  transform:translate(-50%,10px);
}

.fb-quote-a p:not([lang]) { font-size:clamp(16px,1.8vw,24px); }

.fb-pirsig-stage.is-a .fb-quote-a {
  opacity:1;
  transform:translate(-50%,0);
}

/* 引文 B：第一视角，落在天空和地平线上 */
.fb-quote-b {
  width:min(980px,90vw);
  top:41%;
  opacity:0;
  transform:translate(-50%,-44%);
}

.fb-quote-b::before {
  inset:-64px -96px;
  background:radial-gradient(closest-side,rgba(3,6,13,.8),rgba(3,6,13,.46) 62%,transparent);
}

.fb-pirsig-stage.is-b .fb-quote-b {
  opacity:1;
  transform:translate(-50%,-50%);
}

.fb-throttle {
  position:absolute;
  left:50%;
  bottom:4%;
  z-index:3;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:12px 18px;
  width:min(92vw,520px);
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,10px);
  transition:opacity .6s var(--ease),transform .6s var(--ease);
}

.fb-pirsig-stage.is-b .fb-throttle {
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,0);
}

.fb-throttle-btn {
  min-height:48px;
  padding:12px 26px;
  border:1px solid var(--b5);
  border-radius:999px;
  background:rgba(255,122,26,.14);
  color:var(--ink);
  font-size:15px;
  font-weight:750;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
  backdrop-filter:blur(6px);
  transition:background .2s,box-shadow .2s;
}

.fb-throttle-btn.is-down {
  background:var(--b5);
  color:#1a0b02;
  box-shadow:0 0 30px rgba(255,122,26,.6);
}

.fb-throttle-bpm {
  display:flex;
  align-items:baseline;
  gap:8px;
  color:var(--muted);
  font:12px/1 var(--mono);
}

.fb-throttle-bpm svg {
  align-self:center;
  width:20px;
  height:20px;
  color:var(--b7);
}

.fb-throttle-bpm b {
  min-width:2.4ch;
  color:var(--ink);
  font:750 26px/1 var(--sans);
  font-variant-numeric:tabular-nums;
}

.fb-pirsig-hint {
  position:absolute;
  left:50%;
  top:calc(var(--fb-top) + 18px);
  z-index:3;
  color:var(--muted);
  font:12px/1.4 var(--mono);
  letter-spacing:.08em;
  white-space:nowrap;
  opacity:var(--hint-o);
  transform:translateX(-50%);
  transition:opacity .4s;
}

/* 动效暂停 / 减少动态：不做滚动驱动。前半段给第一视角 + 引文 B 的终帧，标题照常排版，后半段改成卡片 */
.fb-pirsig.fb-static { height:auto; }

.fb-pirsig.fb-static .fb-ride-stage,.no-js .fb-ride-stage {
  position:relative;
  top:auto;
  height:auto;
  overflow:visible;
  background:none;
}

.fb-pirsig.fb-static .fb-pirsig-stage {
  position:relative;
  inset:auto;
  height:min(92vh,780px);
  min-height:560px;
}

.fb-pirsig.fb-static .fb-shots,.fb-pirsig.fb-static .fb-pirsig-hint,.fb-pirsig.fb-static .fb-quote-a { display:none; }

.fb-pirsig.fb-static .fb-quote-b {
  opacity:1;
  transform:translate(-50%,-50%);
}

.fb-pirsig.fb-static .fb-throttle {
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,0);
}

.no-js .fb-pirsig { height:auto; }
.no-js .fb-pirsig-stage { position:relative; inset:auto; height:auto; padding:60px 0; }
.no-js .fb-shots,.no-js .fb-throttle,.no-js .fb-pirsig-hint { display:none; }
.no-js .fb-quote { position:relative; left:auto; transform:none; opacity:1; margin:24px auto; }

/* 交接时的标题：镜头退回骑手身后时浮现，「爽」开场后淡出 */
.fb-ride-title {
  position:absolute;
  left:50%;
  top:30%;
  z-index:4;
  width:min(820px,88vw);
  text-align:center;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,-44%);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}

.fb-ride-title::before {
  content:"";
  position:absolute;
  inset:-56px -80px;
  z-index:-1;
  background:radial-gradient(closest-side,rgba(3,6,13,.78),rgba(3,6,13,.4) 62%,transparent);
  pointer-events:none;
}

.fb-ride-stage.is-title .fb-ride-title {
  opacity:1;
  transform:translate(-50%,-50%);
}

.fb-ride-kicker {
  color:var(--muted);
  font-size:clamp(13px,1.15vw,15px);
  line-height:1.75;
  text-wrap:balance;
}

.fb-ride-title .fb-h3 {
  margin:14px 0 12px;
  color:var(--ink);
  font:800 clamp(30px,4.2vw,58px)/1.15 var(--fb-cn);
  letter-spacing:-.01em;
  text-shadow:0 2px 30px rgba(0,0,0,.7);
}

.fb-ride-title .fb-rush-lead {
  max-width:none;
  margin:0;
  color:var(--fb-text);
  font-size:clamp(15px,1.3vw,18px);
}

.fb-pirsig.fb-static .fb-ride-title,.no-js .fb-ride-title {
  position:relative;
  left:auto;
  top:auto;
  bottom:auto;
  width:auto;
  max-width:860px;
  margin:0 auto;
  padding:clamp(40px,7vh,72px) var(--gutter) 28px;
  opacity:1;
  transform:none;
}

.fb-pirsig.fb-static .fb-ride-title::before,.no-js .fb-ride-title::before { display:none; }

.fb-h3 {
  margin:clamp(40px,6vh,64px) 0 22px;
  color:var(--ink);
  font:900 clamp(28px,3.5vw,44px)/1.25 var(--fb-cn);
}

.fb-chain-no {
  color:var(--buff);
  font:400 34px/1 var(--display);
}


.fb-nerd {
  max-width:46em;
  margin-top:26px;
  padding:16px 20px;
  border:1px solid rgba(69,200,245,.28);
  background:rgba(69,200,245,.06);
  color:var(--fb-text);
  font-size:14.5px;
  line-height:1.8;
}

.fb-nerd-tag {
  margin-bottom:6px;
  color:var(--accent);
  font:700 11px/1 var(--mono);
  letter-spacing:.18em;
}

/* ================= BUFF 05：爽，是从哪来的（滚动叙事） ================= */
.fb-rush-lead { margin-bottom:0; }

.fb-rush-stage {
  position:absolute;
  inset:0;
  overflow:hidden;
  isolation:isolate;
  background:#040812;
}

/* 交接：「爽」这一层接管画面时，读数、说明、进度点淡入 */
.fb-rush-hud,.fb-rush-dots { transition:opacity .6s var(--ease); }
.fb-js .fb-pirsig:not(.fb-static) .fb-ride-stage:not(.is-rush) .fb-rush-hud,
.fb-js .fb-pirsig:not(.fb-static) .fb-ride-stage:not(.is-rush) .fb-rush-dots,
.fb-js .fb-pirsig:not(.fb-static) .fb-ride-stage:not(.is-rush) .fb-rush-step { opacity:0 !important; }

.fb-rush-canvas {
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
}

.fb-rush-hud {
  position:absolute;
  left:var(--gutter);
  top:18px;
  z-index:3;
  display:flex;
  align-items:flex-end;
  gap:22px;
}

.fb-rush-gauge {
  display:grid;
  gap:3px;
  color:var(--muted);
  font:600 11px/1 var(--mono);
  letter-spacing:.08em;
}

.fb-rush-gauge b {
  min-width:3ch;
  color:var(--ink);
  font:800 34px/1 var(--sans);
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}

.fb-rush-gauge.is-hr b { color:var(--b7); text-shadow:0 0 18px rgba(255,46,99,.45); }

.fb-rush-hud-note {
  margin-bottom:3px;
  color:var(--faint);
  font:11px/1 var(--mono);
}

/* 章节说明：桌面在左栏，手机在底部 */
.fb-rush-steps {
  position:absolute;
  left:var(--gutter);
  top:52%;
  z-index:3;
  width:min(410px,33vw);
  height:0;
  margin:0;
  padding:0;
  list-style:none;
}

.fb-rush-step {
  position:absolute;
  left:0;
  right:0;
  top:0;
  display:grid;
  gap:10px;
  padding:22px 22px 20px;
  border:1px solid rgba(var(--buff-rgb),.32);
  background:rgba(4,9,19,.82);
  box-shadow:0 24px 60px -30px rgba(0,0,0,.9);
  opacity:0;
  pointer-events:none;
  transform:translateY(-50%) translateY(18px);
  transition:opacity .6s var(--ease),transform .6s var(--ease);
}

.fb-rush-step b {
  color:var(--ink);
  font-size:19px;
}

.fb-rush-step>span:last-child {
  color:var(--fb-text);
  font-size:14.5px;
  line-height:1.8;
}

.fb-rush-step strong { color:var(--ink); }

.fb-rush-stage[data-step="0"] .fb-rush-step[data-step="0"],
.fb-rush-stage[data-step="1"] .fb-rush-step[data-step="1"],
.fb-rush-stage[data-step="2"] .fb-rush-step[data-step="2"],
.fb-rush-stage[data-step="3"] .fb-rush-step[data-step="3"] {
  opacity:1;
  pointer-events:auto;
  transform:translateY(-50%);
}

.fb-rush-dots {
  position:absolute;
  left:50%;
  bottom:16px;
  z-index:3;
  display:flex;
  gap:8px;
  transform:translateX(-50%);
}

.fb-rush-dots i {
  width:26px;
  height:3px;
  border-radius:2px;
  background:rgba(148,165,191,.3);
  transition:background .3s,width .3s;
}

.fb-rush-stage[data-step="0"] .fb-rush-dots i:nth-child(1),
.fb-rush-stage[data-step="1"] .fb-rush-dots i:nth-child(2),
.fb-rush-stage[data-step="2"] .fb-rush-dots i:nth-child(3),
.fb-rush-stage[data-step="3"] .fb-rush-dots i:nth-child(4) {
  width:40px;
  background:var(--buff);
}

/* 右侧仪表面板：按章节显隐 */
.fb-rush-panel {
  position:absolute;
  right:var(--gutter);
  top:50%;
  z-index:3;
  width:min(300px,25vw);
  padding:18px 18px 16px;
  border:1px solid rgba(120,168,226,.22);
  background:rgba(4,9,19,.78);
  opacity:0;
  pointer-events:none;
  transform:translateY(-50%) translateX(16px);
  transition:opacity .55s var(--ease),transform .55s var(--ease);
}

.fb-rush-stage.is-hormone .fb-rush-hormone,
.fb-rush-stage.is-control .fb-rush-control,
.fb-rush-stage.is-high .fb-rush-high {
  opacity:1;
  transform:translateY(-50%);
}

.fb-cinema .backTop { opacity:0 !important; visibility:hidden !important; }

.fb-rush-panel-title {
  color:var(--ink);
  font-size:13.5px;
  font-weight:750;
  line-height:1.5;
}

.fb-rush-panel-note {
  margin-top:8px;
  color:var(--faint);
  font-size:12px;
  line-height:1.6;
}

.fb-rush-log {
  position:relative;
  display:flex;
  gap:12px;
  height:170px;
  margin-top:14px;
}

.fb-rush-log-track {
  position:relative;
  width:14px;
  border-radius:7px;
  background:rgba(120,168,226,.14);
  overflow:hidden;
}

.fb-rush-log-fill {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:var(--f,0%);
  background:linear-gradient(0deg,#ffc23d,#ff7a1a 55%,#ff2e63);
  box-shadow:0 0 18px rgba(255,122,26,.6);
}

.fb-rush-log-ticks {
  position:relative;
  flex:1;
}

.fb-rush-log-ticks i {
  position:absolute;
  left:0;
  bottom:calc(var(--y) * 100%);
  color:var(--muted);
  font:600 11px/1 var(--mono);
  font-style:normal;
  transform:translateY(50%);
}

.fb-rush-log-ticks i::before {
  content:"";
  display:inline-block;
  width:10px;
  height:1px;
  margin:0 6px 3px 0;
  background:rgba(148,165,191,.6);
  vertical-align:middle;
}

.fb-rush-big {
  display:block;
  margin-top:10px;
  color:var(--b5);
  font:800 44px/1 var(--sans);
  letter-spacing:-.02em;
  text-shadow:0 0 24px rgba(255,122,26,.45);
}

.fb-rush-dial {
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}

.fb-rush-dial path {
  fill:none;
  stroke-width:12;
  stroke-linecap:round;
}

.fb-rush-dial .dial-track { stroke:rgba(120,168,226,.12); }
.fb-rush-dial .dial-tense { stroke:rgba(255,77,109,.55); }
.fb-rush-dial .dial-joy { stroke:rgba(255,194,61,.75); }

.fb-rush-dial .dial-needle {
  transform-origin:110px 112px;
  transform:rotate(var(--a,-62deg));
}

.fb-rush-dial .dial-needle line {
  stroke:var(--ink);
  stroke-width:3.5;
  stroke-linecap:round;
}

.fb-rush-dial .dial-needle circle { fill:var(--ink); stroke:none; }

.fb-rush-dial .dial-label {
  fill:var(--muted);
  stroke:none;
  font:700 13px var(--sans);
}

.fb-rush-dial .dial-label.is-tense { fill:#ff8095; }
.fb-rush-dial .dial-label.is-joy { fill:#ffd56a; }

.fb-rush-dial-caption {
  margin-top:6px;
  color:var(--muted);
  font-size:12.5px;
  text-align:center;
}

.fb-rush-checks {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:12px 0 0;
  padding:0;
  list-style:none;
}

.fb-rush-checks li {
  padding:4px 9px;
  border:1px solid rgba(148,165,191,.25);
  color:var(--faint);
  font-size:12px;
  font-weight:650;
  transition:color .3s,border-color .3s,background .3s;
}

.fb-rush-checks li::before { content:"○ "; }

.fb-rush-checks li.is-on {
  border-color:rgba(var(--fb-ok-rgb),.55);
  background:rgba(var(--fb-ok-rgb),.1);
  color:var(--fb-ok);
}

.fb-rush-checks li.is-on::before { content:"✓ "; }

.fb-rush-op {
  display:block;
  width:100%;
  height:auto;
  margin-top:12px;
  overflow:visible;
}

.fb-rush-op path {
  fill:none;
  stroke-width:2.5;
  stroke-linecap:round;
}

.fb-rush-op .op-axis { stroke:rgba(148,165,191,.4); stroke-width:1; }

.fb-rush-op .op-fear,.fb-rush-op .op-joy {
  stroke-dasharray:220;
  stroke-dashoffset:calc(220px - var(--d,0) * 220px);
}

.fb-rush-op .op-fear { stroke:#ff4d6d; }
.fb-rush-op .op-joy { stroke:#ffc23d; }

.fb-rush-op text {
  stroke:none;
  font:700 11.5px var(--sans);
}

.fb-rush-op .op-label { opacity:var(--d,0); }
.fb-rush-op .is-fear { fill:#ff8095; }
.fb-rush-op .is-joy { fill:#ffd56a; }
.fb-rush-op .op-x { fill:var(--faint); font-weight:500; font-size:10.5px; }

.fb-rush-clock {
  display:grid;
  gap:4px;
}

.fb-rush-clock b {
  color:var(--ink);
  font:800 46px/1 var(--sans);
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}

.fb-rush-clock small {
  color:var(--muted);
  font-size:12px;
}

.fb-rush-bars {
  display:grid;
  gap:10px;
  margin-top:16px;
}

.fb-rush-bar {
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  align-items:center;
  gap:10px;
  color:var(--muted);
  font-size:12.5px;
}

.fb-rush-bar i {
  position:relative;
  height:10px;
  border-radius:5px;
  background:rgba(120,168,226,.14);
  overflow:hidden;
}

.fb-rush-bar em {
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:var(--v,0%);
  border-radius:5px;
}

.fb-rush-bar.is-ecb em { background:#5ef2c2; box-shadow:0 0 12px rgba(94,242,194,.5); }
.fb-rush-bar.is-joy em { background:#ffc23d; box-shadow:0 0 12px rgba(255,194,61,.5); }
.fb-rush-bar.is-anx em { background:#7f8fb0; }

.fb-rush-block {
  display:grid;
  gap:4px;
  margin-top:16px;
  padding:10px 12px;
  border:1px solid rgba(var(--fb-stop-rgb),.5);
  background:rgba(var(--fb-stop-rgb),.1);
  opacity:0;
  transform:scale(1.15) rotate(-3deg);
  transition:opacity .35s var(--ease),transform .5s cubic-bezier(.3,1.6,.5,1);
}

.fb-rush-block b { color:#ff8095; font-size:13.5px; }
.fb-rush-block span { color:var(--fb-text); font-size:12.5px; line-height:1.55; }

.fb-rush-stage.is-blocked .fb-rush-block {
  opacity:1;
  transform:none;
}

/* 收场：6 种通勤方式 */
.fb-rush-modes {
  position:absolute;
  right:var(--gutter);
  top:50%;
  z-index:3;
  display:grid;
  gap:14px;
  width:min(520px,44vw);
  opacity:0;
  pointer-events:none;
  transform:translateY(-50%) translateY(18px);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}

.fb-rush-stage.is-modes .fb-rush-modes {
  opacity:1;
  transform:translateY(-50%);
}

.fb-rush-tier {
  padding:16px 18px;
  border:1px solid rgba(120,168,226,.2);
  background:rgba(4,9,19,.8);
}

.fb-rush-tier.is-top {
  border-color:rgba(var(--fb-ok-rgb),.5);
  box-shadow:0 0 40px -12px rgba(var(--fb-ok-rgb),.45);
}

.fb-rush-tier-name {
  margin-bottom:10px;
  color:var(--muted);
  font:700 12px/1 var(--mono);
  letter-spacing:.14em;
}

.fb-rush-tier.is-top .fb-rush-tier-name { color:var(--fb-ok); }

.fb-rush-tier ul {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}

.fb-rush-tier li {
  display:grid;
  justify-items:center;
  gap:6px;
  color:var(--faint);
  font-size:14px;
  font-weight:700;
}

.fb-rush-tier li svg {
  width:34px;
  height:34px;
  color:rgba(148,165,191,.55);
  stroke-width:1.6;
}

.fb-rush-tier.is-top li { color:var(--ink); }
.fb-rush-tier.is-top li svg { color:var(--fb-ok); filter:drop-shadow(0 0 8px rgba(var(--fb-ok-rgb),.6)); }
.fb-rush-tier.is-top li.is-bike svg { color:var(--b5); filter:drop-shadow(0 0 10px rgba(255,122,26,.7)); }
.fb-rush-tier.is-top li.is-bike { color:var(--b5); }

/* 动效暂停 / 无脚本：说明改成卡片，画布只给一帧静态透视 */
.fb-pirsig.fb-static .fb-rush-stage,.no-js .fb-rush-stage {
  position:relative;
  inset:auto;
  visibility:visible;
  display:grid;
  gap:16px;
  height:auto;
  padding:0 var(--gutter) 36px;
  background:#040812;
}

.fb-pirsig.fb-static .fb-rush-canvas {
  position:relative;
  inset:auto;
  width:calc(100% + var(--gutter) * 2);
  height:min(62vh,560px);
  margin:0 calc(var(--gutter) * -1);
}

.no-js .fb-rush-canvas { display:none; }

.fb-pirsig.fb-static .fb-rush-hud,.fb-pirsig.fb-static .fb-rush-panel,.fb-pirsig.fb-static .fb-rush-dots,
.no-js .fb-rush-hud,.no-js .fb-rush-panel,.no-js .fb-rush-dots { display:none; }

.fb-pirsig.fb-static .fb-rush-steps,.no-js .fb-rush-steps {
  position:static;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  width:auto;
  height:auto;
}

.fb-pirsig.fb-static .fb-rush-step,.no-js .fb-rush-step {
  position:static;
  opacity:1 !important;
  pointer-events:auto;
  transform:none !important;
}

.fb-pirsig.fb-static .fb-rush-canvas { order:0; }
.fb-pirsig.fb-static .fb-rush-steps,.no-js .fb-rush-steps { order:1; }
.fb-pirsig.fb-static .fb-rush-modes,.no-js .fb-rush-modes { order:2; }

.fb-pirsig.fb-static .fb-rush-modes,.no-js .fb-rush-modes {
  position:static;
  width:auto;
  opacity:1;
  pointer-events:auto;
  transform:none;
}

@media(max-width:900px) {
  .fb-rush-hud { left:14px; top:12px; gap:16px; }
  .fb-rush-gauge b { font-size:26px; }
  .fb-rush-hud-note { display:none; }
  .fb-rush-steps {
    left:12px;
    right:12px;
    top:auto;
    bottom:34px;
    width:auto;
  }
  .fb-rush-step {
    top:auto;
    bottom:0;
    padding:16px 16px 14px;
    transform:translateY(18px);
  }
  .fb-rush-step b { font-size:17px; }
  .fb-rush-step>span:last-child { font-size:13.5px; line-height:1.7; }
  .fb-rush-stage[data-step="0"] .fb-rush-step[data-step="0"],
  .fb-rush-stage[data-step="1"] .fb-rush-step[data-step="1"],
  .fb-rush-stage[data-step="2"] .fb-rush-step[data-step="2"],
  .fb-rush-stage[data-step="3"] .fb-rush-step[data-step="3"] { transform:none; }
  .fb-rush-dots { bottom:12px; }
  .fb-rush-panel {
    top:62px;
    right:12px;
    width:min(200px,52vw);
    padding:12px 12px 10px;
    transform:translateX(16px);
  }
  .fb-rush-stage.is-hormone .fb-rush-hormone,
  .fb-rush-stage.is-control .fb-rush-control,
  .fb-rush-stage.is-high .fb-rush-high { transform:none; }
  .fb-rush-panel-title { font-size:12px; }
  .fb-rush-panel-title .fb-long { display:none; }
  .fb-rush-panel-note,.fb-rush-dial-caption,.fb-rush-op,.fb-rush-clock small { display:none; }
  .fb-rush-log { height:96px; margin-top:8px; }
  .fb-rush-big { font-size:30px; margin-top:6px; }
  .fb-rush-checks { margin-top:6px; }
  .fb-rush-checks li { padding:3px 7px; font-size:11px; }
  .fb-rush-clock b { font-size:32px; }
  .fb-rush-bars { gap:7px; margin-top:10px; }
  .fb-rush-bar { grid-template-columns:70px minmax(0,1fr); font-size:11.5px; }
  .fb-rush-block { margin-top:10px; padding:7px 9px; }
  .fb-rush-block b { font-size:12px; }
  .fb-rush-block span { font-size:11px; }
  .fb-rush-modes {
    left:12px;
    right:12px;
    top:64px;
    width:auto;
    gap:10px;
    transform:translateY(18px);
  }
  .fb-rush-stage.is-modes .fb-rush-modes { transform:none; }
  .fb-rush-tier { padding:12px 12px; }
  .fb-rush-tier li { font-size:12.5px; }
  .fb-rush-tier li svg { width:28px; height:28px; }
  .fb-pirsig.fb-static .fb-rush-steps,.no-js .fb-rush-steps { grid-template-columns:minmax(0,1fr); }
}

/* ================= BUFF 07：圆环 ================= */
.fb-mega {
  display:grid;
  gap:10px;
  margin-bottom:28px;
}

.fb-mega-num {
  color:var(--buff);
  font:800 clamp(96px,16vw,220px)/.85 var(--sans);
  letter-spacing:-.06em;
  text-shadow:0 0 60px rgba(var(--buff-rgb),.35);
}

.fb-mega-label {
  max-width:34em;
  color:var(--muted);
  font-size:15.5px;
  line-height:1.7;
}

.fb-ring-wrap {
  position:relative;
  width:min(240px,70%);
  margin:4px auto 0;
}

.fb-ring {
  display:block;
  width:100%;
  height:auto;
  transform:rotate(-90deg);
}

.fb-ring circle {
  fill:none;
  stroke-width:14;
}

.fb-ring-track { stroke:rgba(120,168,226,.14); }

.fb-ring-band {
  stroke:rgba(61,220,132,.16);
  stroke-dasharray:251.33 502.65;
  stroke-dashoffset:-251.33;
}

.fb-ring-fill {
  stroke:var(--buff);
  stroke-linecap:round;
  stroke-dasharray:0 502.65;
  filter:drop-shadow(0 0 8px rgba(var(--buff-rgb),.55));
  transition:stroke-dasharray .8s var(--ease);
}

.fb-ring-tick {
  stroke:var(--ink);
  stroke-width:2.5;
}

.fb-ring-center {
  position:absolute;
  inset:0;
  display:grid;
  place-content:center;
  text-align:center;
}

.fb-ring-center b {
  color:var(--ink);
  font:800 46px/1 var(--sans);
  letter-spacing:-.03em;
}

.fb-ring-center span {
  margin-top:6px;
  color:var(--muted);
  font-size:12.5px;
}

/* ================= FULL BUFF ================= */
.fb-full {
  padding-block:clamp(80px,12vh,140px);
  border-top:1px solid var(--line);
}

.fb-card {
  position:relative;
  max-width:780px;
  margin:0 auto;
  padding:clamp(22px,3.6vw,42px);
  overflow:hidden;
  border:1px solid rgba(69,200,245,.38);
  background:linear-gradient(160deg,rgba(15,33,66,.92),rgba(5,11,22,.94));
  box-shadow:0 40px 120px -50px rgba(69,200,245,.4);
}

.fb-card::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.08) 50%,transparent 65%);
  transform:translateX(-120%);
}

.fb-card.is-full::after { animation:fb-sweep 2.4s var(--ease) 1; }

@keyframes fb-sweep {
  to { transform:translateX(120%); }
}

.fb-card-kicker {
  color:var(--faint);
  font:600 11px/1 var(--mono);
  letter-spacing:.22em;
}

.fb-card-title {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin:10px 0 0;
  color:var(--ink);
  font:400 clamp(46px,7.4vw,96px)/.9 var(--display);
  letter-spacing:.01em;
}

.fb-card-title b {
  color:var(--accent);
  font:400 clamp(30px,4.4vw,56px)/1 var(--display);
  text-shadow:0 0 22px rgba(69,200,245,.5);
}

.fb-card-list {
  display:grid;
  margin:24px 0 28px;
  padding:0;
  list-style:none;
}

.fb-card-list li {
  display:grid;
  grid-template-columns:28px 52px minmax(0,1fr);
  align-items:center;
  gap:12px;
  padding:12px 6px;
  border-bottom:1px solid var(--line);
  transition:opacity .5s var(--ease);
}

.fb-js .fb-card-list li { opacity:.32; }
.fb-js .fb-card-list li.is-on { opacity:1; }

.fb-card-list svg {
  width:24px;
  height:24px;
  color:var(--c);
  filter:drop-shadow(0 0 8px var(--c));
}

.fb-card-list b {
  color:var(--ink);
  font-size:16px;
}

.fb-card-list span {
  color:var(--muted);
  font-size:14.5px;
}

.fb-card-cta { width:100%; }

/* ================= 使用说明 ================= */
.fb-manual {
  padding-block:clamp(90px,13vh,150px);
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,77,109,.05),transparent 26%);
}

.fb-manual .fb-lab { --buff:var(--accent); --buff-rgb:69,200,245; }
.fb-manual .fb-lede { --buff:var(--fb-warn); }

.fb-tag-warn { color:var(--fb-warn); }

.fb-tag-warn svg {
  width:18px;
  height:18px;
}

.fb-mod {
  margin-top:clamp(42px,6vh,66px);
  padding-top:clamp(28px,4vh,42px);
  border-top:1px solid var(--line);
}

.fb-mod-title {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:22px;
  color:var(--ink);
  font:900 clamp(24px,3vw,36px)/1.3 var(--fb-cn);
}

.fb-mod-title svg {
  flex-shrink:0;
  width:32px;
  height:32px;
  color:var(--accent);
  stroke-width:1.6;
}

.fb-manual .fb-tip { --buff:var(--accent); --buff-rgb:69,200,245; }
.fb-manual .fb-kpi b { color:var(--accent); }

/* AQI 色带 */
.fb-aqi-scale {
  position:relative;
  display:flex;
  gap:2px;
  height:14px;
  margin-top:6px;
}

.fb-aqi-scale span {
  flex:var(--w) 1 0;
  background:var(--c);
}

.fb-aqi-scale span:first-child { border-radius:4px 0 0 4px; }
.fb-aqi-scale span:last-of-type { border-radius:0 4px 4px 0; }

.fb-aqi-pin {
  position:absolute;
  top:-8px;
  left:var(--x,21%);
  width:4px;
  height:30px;
  margin-left:-2px;
  border-radius:2px;
  background:var(--ink);
  box-shadow:0 0 0 2px #050b16,0 0 14px rgba(233,239,250,.6);
  transition:left .3s var(--ease);
}

.fb-aqi-ticks {
  position:relative;
  height:16px;
  margin-top:8px;
  color:var(--faint);
  font:11px/1 var(--mono);
}

.fb-aqi-ticks span {
  position:absolute;
  transform:translateX(-50%);
}

.fb-aqi-ticks span:nth-child(1) { left:0; transform:none; }
.fb-aqi-ticks span:nth-child(2) { left:12.5%; }
.fb-aqi-ticks span:nth-child(3) { left:25%; }
.fb-aqi-ticks span:nth-child(4) { left:37.5%; }
.fb-aqi-ticks span:nth-child(5) { left:50%; }
.fb-aqi-ticks span:nth-child(6) { left:75%; }
.fb-aqi-ticks span:nth-child(7) { right:0; left:auto; transform:none; }

.fb-aqi-card,.fb-gluco-card {
  margin-top:14px;
  padding:14px 16px;
  border:1px solid var(--line);
  background:rgba(5,11,22,.6);
}

.fb-aqi-level,.fb-gluco-zone {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  color:var(--ink);
  font-size:16px;
}

.fb-aqi-swatch {
  width:16px;
  height:16px;
  border-radius:4px;
  background:var(--c,#ffff00);
  box-shadow:0 0 0 1px rgba(255,255,255,.25);
}

.fb-verdict { margin-left:auto; }

.fb-aqi-advice,#glucoAdvice {
  margin-top:8px;
  color:var(--fb-text);
  font-size:14.5px;
  line-height:1.75;
}

/* 状态标签：颜色之外永远配文字 */
.fb-flag {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:48px;
  padding:4px 9px;
  border:1px solid;
  border-radius:4px;
  font-size:12.5px;
  font-weight:750;
  line-height:1.2;
  white-space:nowrap;
}

.fb-flag.is-go { border-color:rgba(var(--fb-ok-rgb),.5); background:rgba(var(--fb-ok-rgb),.1); color:var(--fb-ok); }
.fb-flag.is-info { border-color:rgba(69,200,245,.45); background:rgba(69,200,245,.08); color:var(--accent); }
.fb-flag.is-warn { border-color:rgba(var(--fb-warn-rgb),.5); background:rgba(var(--fb-warn-rgb),.1); color:var(--fb-warn); }
.fb-flag.is-stop { border-color:rgba(var(--fb-stop-rgb),.55); background:rgba(var(--fb-stop-rgb),.12); color:var(--fb-stop); }

.fb-legend {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:4px 0 0;
}

/* 疾病标签页 */
.fb-tabs {
  display:flex;
  gap:4px;
  margin-top:22px;
  overflow-x:auto;
  border-bottom:1px solid var(--line);
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y;
}

.fb-tabs::-webkit-scrollbar { display:none; }

/* 可横向滑动时的边缘渐隐提示（由 JS 按滚动位置加 has-prev/has-next） */
.fb-tabs.is-scroll { cursor:grab; }
.fb-tabs.is-scroll.is-dragging { cursor:grabbing; scroll-behavior:auto; }
.fb-tabs.is-scroll.has-next:not(.has-prev) {
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent);
  mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent);
}
.fb-tabs.is-scroll.has-prev:not(.has-next) {
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 30px);
  mask-image:linear-gradient(90deg,transparent,#000 30px);
}
.fb-tabs.is-scroll.has-prev.has-next {
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 30px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 30px),transparent);
}

.fb-tabs button {
  flex-shrink:0;
  margin-bottom:-1px;
  padding:11px 15px;
  border:1px solid transparent;
  border-bottom:0;
  color:var(--muted);
  font-size:15px;
  font-weight:750;
  white-space:nowrap;
  transition:color .2s,background .2s;
}

.fb-tabs button:hover { color:var(--ink); }

.fb-tabs button[aria-selected="true"] {
  border-color:var(--line);
  background:var(--panel);
  color:var(--ink);
  box-shadow:inset 0 2px 0 var(--accent);
}

.fb-panel {
  padding:22px 0 4px;
  outline:none;
}

.fb-panel-who {
  margin-bottom:16px;
  color:var(--muted);
  font-size:15px;
  line-height:1.75;
}

.fb-panel-who b { color:var(--ink); }

.fb-rules {
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}

.fb-rules li {
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  align-items:start;
  gap:14px;
  padding:14px 16px;
  border:1px solid var(--line);
  background:rgba(11,23,41,.55);
}

.fb-rules .fb-flag { margin-top:3px; }

.fb-rules p {
  color:var(--fb-text);
  font-size:15px;
  line-height:1.85;
}

.fb-gluco { margin-bottom:14px; }

/* 红色警报 */
.fb-alarm {
  padding:clamp(20px,3vw,30px);
  border:1px solid rgba(var(--fb-stop-rgb),.45);
  background:linear-gradient(180deg,rgba(var(--fb-stop-rgb),.09),rgba(var(--fb-stop-rgb),.02));
}

.fb-alarm .fb-mod-title svg { color:var(--fb-stop); }

.fb-alarm-list {
  display:grid;
  gap:8px;
  margin:0;
  padding-left:1.3em;
  color:var(--ink);
  font-size:15.5px;
  line-height:1.7;
}

.fb-alarm-list li::marker { color:var(--fb-stop); }

.fb-alarm-note {
  margin-top:14px;
  color:var(--muted);
  font-size:14px;
}

.fb-disclaimer {
  margin-top:clamp(36px,5vh,52px);
  color:var(--faint);
  font-size:13px;
  line-height:1.8;
}

/* ================= 延伸 & 文献 ================= */
.fb-next {
  padding-block:clamp(70px,10vh,110px);
  border-top:1px solid var(--line);
}

.fb-next-title {
  margin-bottom:24px;
  color:var(--ink);
  font:900 clamp(26px,3.2vw,40px)/1.3 var(--fb-cn);
}

.fb-next-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.fb-next-card {
  position:relative;
  display:grid;
  gap:8px;
  padding:22px 46px 22px 22px;
  border:1px solid var(--line);
  background:rgba(11,23,41,.6);
  transition:border-color .25s,transform .25s,background .25s;
}

.fb-next-card b {
  color:var(--ink);
  font-size:17px;
}

.fb-next-card span {
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}

.fb-next-card i {
  position:absolute;
  right:18px;
  top:20px;
  color:var(--accent);
  font-style:normal;
}

.fb-next-card:hover {
  border-color:var(--accent);
  background:rgba(15,33,66,.8);
  transform:translateY(-2px);
}

.fb-refs {
  padding-block:60px 96px;
  border-top:1px solid var(--line);
}

.fb-refs-title {
  margin-bottom:22px;
  color:var(--ink);
  font-size:20px;
  font-weight:800;
}

.fb-refs-title small {
  color:var(--faint);
  font-size:14px;
  font-weight:500;
}

.fb-refs-list {
  margin:0;
  padding-left:2.3em;
  columns:2 420px;
  column-gap:44px;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.7;
}

.fb-refs-list li {
  margin-bottom:9px;
  break-inside:avoid;
  scroll-margin-top:calc(var(--fb-top) + 40px);
}

.fb-refs-list li::marker {
  color:var(--faint);
  font-family:var(--mono);
}

.fb-refs-list i { color:var(--fb-text); }

.fb-refs-list a {
  color:var(--accent);
  overflow-wrap:anywhere;
}

.fb-refs-list li:target {
  color:var(--ink);
  background:rgba(69,200,245,.1);
  outline:1px solid rgba(69,200,245,.45);
  outline-offset:3px;
}

/* ================= HUD / 提示 ================= */
.fb-hud {
  position:fixed;
  right:16px;
  top:50%;
  z-index:40;
  display:grid;
  justify-items:center;
  gap:8px;
  opacity:0;
  pointer-events:none;
  transform:translate(14px,-50%);
  transition:opacity .35s var(--ease),transform .35s var(--ease);
}

.fb-hud.is-on {
  opacity:1;
  pointer-events:auto;
  transform:translate(0,-50%);
}

.fb-hud-count {
  display:grid;
  justify-items:center;
  gap:3px;
  color:var(--faint);
  font:600 9.5px/1 var(--mono);
  letter-spacing:.16em;
}

.fb-hud-count b {
  color:var(--ink);
  font:400 17px/1 var(--display);
  letter-spacing:.04em;
}

.fb-hud.is-full .fb-hud-count b { color:var(--accent); text-shadow:0 0 12px rgba(69,200,245,.7); }

.fb-hud-list {
  display:grid;
  gap:5px;
  margin:0;
  padding:0;
  list-style:none;
}

.fb-hud-list a {
  position:relative;
  display:grid;
  place-items:center;
  width:38px;
  height:34px;
  color:rgba(148,165,191,.5);
  transition:color .3s,transform .3s;
}

.fb-hud-list a::before,.fb-hud-list a::after {
  content:"";
  position:absolute;
  clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);
}

.fb-hud-list a::before {
  inset:0;
  background:rgba(120,168,226,.3);
  transition:background .3s;
}

.fb-hud-list a::after {
  inset:1.5px;
  background:#07101e;
}

.fb-hud-list svg {
  position:relative;
  z-index:1;
  width:17px;
  height:17px;
  stroke-width:2;
}

.fb-hud-list span {
  position:absolute;
  right:calc(100% + 10px);
  top:50%;
  z-index:2;
  padding:4px 9px;
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--ink);
  font-size:12px;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transform:translate(6px,-50%);
  transition:opacity .2s,transform .2s;
}

.fb-hud-list a:hover span,.fb-hud-list a:focus-visible span {
  opacity:1;
  transform:translate(0,-50%);
}

.fb-hud-list li.is-on a { color:var(--c); filter:drop-shadow(0 0 7px var(--c)); }
.fb-hud-list li.is-on a::before { background:var(--c); }
.fb-hud-list li.is-current a { transform:scale(1.15); }

.fb-toast {
  position:fixed;
  right:70px;
  top:50%;
  z-index:41;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  border:1px solid var(--c,var(--accent));
  background:rgba(5,11,22,.95);
  box-shadow:0 0 30px rgba(0,0,0,.6);
  color:var(--ink);
  font-size:14px;
  font-weight:750;
  opacity:0;
  pointer-events:none;
  transform:translate(16px,-50%);
  transition:opacity .35s var(--ease),transform .35s var(--ease);
}

.fb-toast.is-show {
  opacity:1;
  transform:translate(0,-50%);
}

.fb-toast svg {
  width:20px;
  height:20px;
  color:var(--c,var(--accent));
}

.fb-toast small {
  color:var(--c,var(--accent));
  font:700 11px/1 var(--mono);
  letter-spacing:.14em;
}

.fb-tip-pop {
  position:fixed;
  z-index:70;
  max-width:340px;
  padding:9px 12px;
  border:1px solid rgba(69,200,245,.4);
  background:#0d1d37;
  box-shadow:0 14px 40px rgba(0,0,0,.6);
  color:var(--fb-text,#c9d5ea);
  font-size:12.5px;
  line-height:1.6;
  pointer-events:none;
}

/* ================= 动图：踩踏发力轮（BUFF 06） ================= */
.fb-pedal { margin-top:clamp(30px,4.5vh,48px); }

.fb-pedal-stage {
  position:relative;
  height:clamp(380px,44vw,580px);
  overflow:hidden;
  border:1px solid var(--line);
  background:radial-gradient(60% 90% at 26% 50%,rgba(206,250,105,.06),transparent 70%),#060d1b;
}

.fb-pedal-stage canvas {
  display:block;
  width:100%;
  height:100%;
}

.fb-pedal-legend {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:14px 0 0;
  padding:0;
  list-style:none;
}

.fb-pedal-legend li {
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:6px 10px;
  border:1px solid var(--line);
  background:rgba(5,11,22,.6);
  color:var(--muted);
  font-size:12.5px;
  line-height:1.3;
  transition:border-color .25s,color .25s,box-shadow .25s;
}

.fb-pedal-legend li i {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:var(--m);
  color:#041329;
  font:800 11px/1 var(--mono);
  font-style:normal;
}

.fb-pedal-legend li.is-on {
  border-color:var(--m);
  color:var(--ink);
  box-shadow:inset 0 0 0 1px var(--m),0 0 16px -6px var(--m);
}

/* ================= 实验 5：心率 / 呼吸强度（BUFF 07） ================= */
.fb-zone-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:20px;
  align-items:stretch;
}

.fb-zone-stage {
  position:relative;
  min-height:400px;
  overflow:hidden;
  border:1px solid var(--line);
  background:radial-gradient(55% 70% at 28% 46%,rgba(255,46,99,.09),transparent 72%),radial-gradient(55% 70% at 74% 46%,rgba(91,157,255,.08),transparent 72%),#060d1b;
}

.fb-zone-stage canvas {
  display:block;
  width:100%;
  height:100%;
}

.fb-zone-read {
  position:absolute;
  left:0;
  right:0;
  bottom:10px;
  display:flex;
  justify-content:space-around;
  pointer-events:none;
}

.fb-zone-read span {
  display:grid;
  justify-items:center;
  gap:2px;
}

.fb-zone-read b {
  color:var(--ink);
  font:800 24px/1 var(--sans);
  font-variant-numeric:tabular-nums;
  text-shadow:0 0 18px rgba(var(--buff-rgb),.5);
}

.fb-zone-read small {
  color:var(--faint);
  font:11px/1 var(--mono);
  letter-spacing:.08em;
}

.fb-zone-side { min-width:0; }

.fb-zone-band {
  position:relative;
  display:flex;
  height:14px;
  margin-top:20px;
}

.fb-zone-band span {
  width:var(--w);
  background:var(--c);
  opacity:.34;
}

.fb-zone-band span:first-child { border-radius:7px 0 0 7px; }
.fb-zone-band span:last-child { border-radius:0 7px 7px 0; }

.fb-zone-pin {
  position:absolute;
  top:-5px;
  bottom:-5px;
  left:var(--x,33%);
  width:3px;
  background:var(--ink);
  box-shadow:0 0 10px rgba(255,255,255,.8);
  transform:translateX(-50%);
  transition:left .15s ease-out;
}

.fb-zone-ticks {
  position:relative;
  height:16px;
  margin-top:6px;
  color:var(--faint);
  font:10.5px/1 var(--mono);
}

.fb-zone-ticks span {
  position:absolute;
  transform:translateX(-50%);
}

.fb-zone-ticks span:nth-child(1) { left:0; transform:none; }
.fb-zone-ticks span:nth-child(2) { left:28.3%; }
.fb-zone-ticks span:nth-child(3) { left:40%; }
.fb-zone-ticks span:nth-child(4) { left:61.7%; }
.fb-zone-ticks span:nth-child(5) { left:83.3%; }
.fb-zone-ticks span:nth-child(6) { right:0; left:auto; transform:none; }

.fb-zone-card {
  margin-top:14px;
  padding:14px 16px;
  border:1px solid var(--line);
  background:rgba(5,11,22,.6);
}

.fb-zone-level {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  color:var(--ink);
  font-size:16px;
}

.fb-zone-talk {
  margin-top:8px;
  color:var(--fb-text);
  font-size:14.5px;
  line-height:1.75;
}

.fb-zone-facts {
  display:grid;
  gap:8px;
  margin:12px 0 0;
  padding:12px 0 0;
  border-top:1px dashed rgba(120,168,226,.25);
  list-style:none;
}

.fb-zone-facts li {
  display:grid;
  grid-template-columns:70px minmax(0,1fr);
  gap:10px;
  align-items:start;
}

.fb-zone-facts b {
  color:var(--buff);
  font-size:12.5px;
  font-weight:750;
  line-height:1.7;
}

.fb-zone-facts span {
  color:var(--muted);
  font-size:13.5px;
  line-height:1.7;
}

/* ================= 动效暂停 ================= */
.motion-paused .fb *,.motion-paused .fb *::before,.motion-paused .fb *::after,
.motion-paused .fb-hud,.motion-paused .fb-toast {
  animation-duration:0s !important;
  animation-iteration-count:1 !important;
  transition-duration:0s !important;
  transition-delay:0s !important;
}

.motion-paused .fb-scroll-cue span,.motion-paused .fb-no1-big,.motion-paused .fb-beat { animation:none !important; }

/* ================= 响应式 ================= */
@media(max-width:1150px) {
  .fb-evo-list { grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:26px; }
}

@media(min-width:901px) and (max-width:1320px) {
  .fb-hud { right:6px; }
  .fb-hud-list a { width:32px; height:29px; }
  .fb-hud-list svg { width:15px; height:15px; }
  .fb-toast { right:48px; }
}

@media(max-width:900px) {
  .fb-hero-inner { grid-template-columns:minmax(0,1fr); }
  .fb-hero-stage { min-height:clamp(230px,34vh,320px); margin-top:4px; }
  .fb-split,.fb-split-even { grid-template-columns:minmax(0,1fr); }
  .fb-zone-grid { grid-template-columns:minmax(0,1fr); }
  .fb-zone-stage { min-height:360px; }
  .fb-pedal-stage { height:clamp(370px,106vw,460px); }
  .fb-next-grid { grid-template-columns:minmax(0,1fr); }
  .fb-hud {
    left:12px;
    right:auto;
    top:auto;
    bottom:calc(14px + env(safe-area-inset-bottom,0px));
    grid-auto-flow:column;
    align-items:center;
    gap:8px;
    padding:5px 10px 5px 12px;
    border:1px solid var(--line);
    border-radius:999px;
    background:rgba(5,11,22,.92);
    transform:translateY(12px);
  }
  .fb-hud.is-on { transform:none; }
  .fb-hud-count { grid-auto-flow:column; gap:6px; align-items:baseline; }
  .fb-hud-count span { display:none; }
  .fb-hud-count b { font-size:15px; }
  .fb-hud-list { grid-auto-flow:column; gap:1px; }
  .fb-hud-list a { width:27px; height:26px; }
  .fb-hud-list svg { width:13px; height:13px; }
  .fb-hud-list span { display:none; }
  .fb-hud-list li.is-current a { transform:scale(1.08); }
  .fb-toast {
    left:12px;
    right:auto;
    top:auto;
    bottom:calc(64px + env(safe-area-inset-bottom,0px));
    transform:translateY(10px);
  }
  .fb-toast.is-show { transform:none; }
  /* 全屏长镜头里，提示挪到上方，别压住画面下方的引文 */
  .fb-cinema .fb-toast { top:124px; bottom:auto; }
  .fb-tip-pop { display:none; }
}

@media(max-width:800px) {
  .fb { --fb-top:73px; }
}

@media(max-width:700px) {
  .fb-kpis { grid-template-columns:minmax(0,1fr); }
  .fb-duo { grid-template-columns:minmax(0,1fr); }
  .fb-duo-x { font-size:40px; }
  .fb-sliders { grid-template-columns:minmax(0,1fr); }
  .fb-refs-list { columns:1; }
  .fb-ledger-scale { grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr); gap:10px; }
  /* 与 pirsig.js 的 mobile（宽 < 700）同一套构图 */
  .fb-pirsig { height:930vh; }
  .fb-ride-title { top:auto; bottom:7%; transform:translate(-50%,8px); }
  .fb-ride-stage.is-title .fb-ride-title { transform:translate(-50%,0); }
  .fb-quote-a { bottom:4%; }
  .fb-throttle { bottom:16%; }
  .fb-pirsig-hint { top:calc(var(--fb-top) + 54px); }
}

@media(max-width:560px) {
  .fb-br { display:inline; }
  .fb-stack { gap:6px; }
  .fb-stack a { width:44px; }
  .fb-stack a::before { width:40px; height:35px; }
  .fb-stack svg { width:19px; height:19px; }
  .fb-stack span { font-size:11px; }
  .fb-meta { font-size:11px; }
  .fb-meta span+span::before { margin:0 7px; }
  .fb-lane { grid-template-columns:minmax(0,1fr) auto; gap:4px 10px; }
  .fb-lane-name { grid-column:1/-1; padding-bottom:0; }
  .fb-lane-axis { margin-left:0; margin-right:70px; }
  .fb-bar { grid-template-columns:86px minmax(0,1fr) 40px; gap:8px; }
  .fb-bar-name { font-size:12.5px; }
  .fb-evo-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fb-rules li { grid-template-columns:minmax(0,1fr); gap:8px; }
  .fb-rules .fb-flag { justify-self:start; margin-top:0; }
  .fb-triad li { grid-template-columns:40px minmax(0,1fr); padding:12px; }
  html[data-fb-lang]:not([data-fb-lang="zh"]) .fb-triad li { grid-template-columns:124px minmax(0,1fr); }
  html[data-fb-lang]:not([data-fb-lang="zh"]) .fb-triad b { font-size:18px; }
  .fb-pirsig-hint { font-size:11px; }
  .fb-verdict { margin-left:0; }
  .fb-ring-center b { font-size:38px; }
}

@media(max-width:380px) {
  .fb-seg button { font-size:15px; }
  .fb-seg-4 button { font-size:13px; }
  .fb-chips button { padding:6px 9px; font-size:13px; }
  .fb-hud-list a { width:24px; }
}

@media print {
  .fb-hero-canvas,.fb-pirsig-canvas,.fb-shots,.fb-throttle,.fb-hud,.fb-toast,.fb-scroll-cue,.fb-pirsig-hint { display:none !important; }
  .fb-pirsig { height:auto; }
  .fb-ride-stage,.fb-pirsig-stage,.fb-rush-stage { position:relative; inset:auto; height:auto; visibility:visible; }
  .fb-ride-title { position:relative; left:auto; top:auto; transform:none; opacity:1; }
  .fb-quote { position:relative; left:auto; transform:none; opacity:1; }
  .fb-js .fb-reveal:not(.is-in) { opacity:1; transform:none; }
}

/* BUFF 07：为什么 → 多强 → 多久。实验 5 前的引子、两个实验之间的桥、实验 6 的强度联动 */
.fb-lead { max-width:760px; margin:clamp(28px,4vh,44px) 0 clamp(18px,3vh,28px); }
.fb-step-lead { margin-top:18px; color:var(--ink); }
.fb-step-lead strong,.fb-split .fb-p strong:first-child { color:var(--buff); }

.fb-bridge {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:clamp(22px,3.5vh,36px) auto clamp(8px,1.5vh,14px);
  color:var(--muted);
  font:600 12px/1 var(--mono);
  letter-spacing:.12em;
}

.fb-bridge i {
  position:relative;
  width:clamp(80px,14vw,180px);
  height:1px;
  background:linear-gradient(90deg,rgba(var(--buff-rgb),.15),var(--buff));
}

.fb-bridge i::after {
  content:"";
  position:absolute;
  right:-1px;
  top:-4px;
  border:4.5px solid transparent;
  border-left:7px solid var(--buff);
  border-right:0;
}

.fb-commute-int { margin:4px 0 14px; }
.fb-commute-int-label { margin-bottom:8px; color:var(--ink); font-size:13.5px; font-weight:700; }
.fb-commute-int-label small { margin-left:6px; color:var(--faint); font:11.5px/1.3 var(--mono); }
.fb-chips-int button { min-height:38px; padding:6px 10px; font-size:13px; }
.fb-chips-int.is-synced button[aria-checked="true"] { animation:fb-sync .9s var(--ease) 1; }
@keyframes fb-sync { 0% { box-shadow:inset 0 0 0 1px var(--buff),0 0 0 0 rgba(var(--buff-rgb),.6); } 100% { box-shadow:inset 0 0 0 1px var(--buff),0 0 0 12px rgba(var(--buff-rgb),0); } }

/* 实验 7：按读者位置预设 AQI */
.fb-aqi-live {
  margin:2px 0 14px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-left:2px solid var(--accent);
  background:rgba(5,11,22,.55);
}

.fb-aqi-status { color:var(--ink); font-size:13.5px; line-height:1.6; }
.fb-aqi-detail { margin-top:4px; color:var(--faint); font:11.5px/1.5 var(--mono); }
.fb-aqi-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.fb-aqi-actions:has(> button:not([hidden])) { margin-top:8px; }

.fb-mini-btn {
  min-height:32px;
  padding:5px 12px;
  border:1px solid rgba(var(--buff-rgb,69,200,245),.55);
  border-radius:999px;
  background:transparent;
  color:var(--ink);
  font-size:12.5px;
  font-weight:650;
}

.fb-mini-btn:hover { background:rgba(69,200,245,.12); }
.fb-mini-btn[hidden] { display:none; }
.no-js .fb-aqi-live { display:none; }
