/* 0. ACCESSIBILITY DEFENSE: SKIP LINK */
.skip-link {
  position: fixed;
  top: -120px;
  left: 16px;
  z-index: 10000;
  padding: 12px 20px;
  background: #b08a5b;
  color: #020617 !important;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid #c4a574;
  border-radius: 4px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6), 0 0 20px rgba(176, 138, 91, 0.4);
  transition: top 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.skip-link:focus,
.skip-link:focus-visible {
  top: 14px;
  outline: 3px solid #f59e0b;
  outline-offset: 3px;
}

.hub-page{--hub-cyan:#c4a574;--hub-aqua:#c4a574;--hub-ink:#061925;--hub-panel:#092331;--hub-paper:#eef2f0;background:var(--hub-ink);color:#eaf3f2;overflow-x:clip}.hub-page section[id]{scroll-margin-top:72px}
html[data-language="en"] [data-lang="zh"], body[data-language="en"] [data-lang="zh"] { display: none !important; }
html[data-language="zh"] [data-lang="en"], body[data-language="zh"] [data-lang="en"] { display: none !important; }
.hub-page .site-header{position:sticky;top:0;z-index:50;background:rgba(4,24,35,.96);backdrop-filter:blur(18px);border-bottom:1px solid rgba(196,165,116,.14)}

.hub-page .primary-nav{justify-content:flex-end}.hub-page .primary-nav a{white-space:nowrap}
.hub-page .brand-section{color:var(--hub-aqua)}

.hub-hero{min-height:min(860px,calc(100svh - 64px));position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.55fr);align-items:end;gap:60px;padding:clamp(120px,14vw,210px) clamp(24px,7vw,110px) clamp(70px,8vw,110px);isolation:isolate;overflow:hidden;background:radial-gradient(circle at 76% 30%,rgba(34,211,214,.17),transparent 32%),linear-gradient(135deg,#061925 0%,#071f2d 58%,#04131c 100%)}
.hub-hero-grid{position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(86,215,216,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(86,215,216,.07) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.95),transparent 92%)}
.hub-hero::after{content:"NVM";position:absolute;right:-.03em;top:.02em;z-index:-1;color:rgba(116,238,228,.035);font:800 clamp(220px,34vw,560px)/.8 Arial,sans-serif;letter-spacing:-.09em}
.hub-hero-orbit{position:absolute;right:9%;top:17%;width:min(34vw,470px);aspect-ratio:1;border:1px solid rgba(196,165,116,.18);border-radius:50%;z-index:-1}.hub-hero-orbit:before,.hub-hero-orbit:after{content:"";position:absolute;border:1px solid rgba(196,165,116,.12);border-radius:50%;inset:12%}.hub-hero-orbit:after{inset:30%;background:radial-gradient(circle,rgba(43,212,213,.3),transparent 58%)}.hub-hero-orbit i{position:absolute;width:9px;height:9px;border-radius:50%;background:#ef9b47;box-shadow:0 0 20px rgba(239,155,71,.7)}.hub-hero-orbit i:nth-child(1){left:12%;top:27%}.hub-hero-orbit i:nth-child(2){right:8%;top:52%;background:var(--hub-aqua)}.hub-hero-orbit i:nth-child(3){left:45%;bottom:-4px}
.hub-hero-copy{max-width:960px}.hub-kicker,.hub-section-heading>p,.method-copy>p:first-child,.enterprise-strip>div>p{color:var(--hub-aqua);font:650 11px/1.4 "IBM Plex Mono",Consolas,monospace;letter-spacing:.2em}.hub-hero h1{margin:25px 0 28px;max-width:980px;font-size:clamp(48px,5.4vw,72px);line-height:1.02;letter-spacing:-.045em;font-weight:650}.hub-hero h1 em{color:var(--hub-aqua);font-style:normal;font-weight:380}.hub-intro{max-width:760px;color:#b9ccd1;font-size:clamp(16px,1.35vw,21px);line-height:1.75}.hub-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.hub-hero-actions .button{min-height:52px}.hub-hero-actions svg{width:20px;fill:none;stroke:currentColor;stroke-width:2}
.hub-hero-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid rgba(196,165,116,.24);align-self:end;padding-top:16px;width:100%;box-sizing:border-box}
.hub-hero-index>.index-metric,.hub-hero-index>div{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:16px 16px;background:rgba(8,28,42,0.65);border:1px solid rgba(196,165,116,.2);border-radius:8px;overflow:hidden;box-sizing:border-box;min-width:0;transition:border-color .25s,transform .25s}
.hub-hero-index>.index-metric:hover{border-color:rgba(196,165,116,.5);transform:translateY(-2px)}
.hub-hero-index b{font:700 32px/1 "IBM Plex Mono",monospace;color:#fff;white-space:nowrap;letter-spacing:-0.02em}
.hub-hero-index span{color:#8ea9b3;font:650 10.5px/1.35 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

.knowledge-spine{padding:clamp(70px,8vw,120px) clamp(22px,6.5vw,104px);background:#081f2c;border-top:1px solid rgba(196,165,116,.16);border-bottom:1px solid rgba(196,165,116,.16)}
.spine-heading{display:grid;grid-template-columns:minmax(180px,.3fr) minmax(0,1fr);gap:50px;align-items:start;margin-bottom:50px}.spine-heading>p{color:var(--hub-aqua);font:650 10px/1.5 "IBM Plex Mono",monospace;letter-spacing:.17em}.spine-heading h2{margin:0;font-size:clamp(32px,3.8vw,56px);line-height:1.08;letter-spacing:-.04em}.spine-heading h2 em{color:var(--hub-aqua);font-style:normal;font-weight:400}.spine-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(196,165,116,.2);border-left:1px solid rgba(196,165,116,.2)}.spine-grid article{min-width:0;min-height:260px;padding:27px 24px;border-right:1px solid rgba(196,165,116,.2);border-bottom:1px solid rgba(196,165,116,.2);background:linear-gradient(145deg,rgba(43,212,213,.06),transparent)}.spine-grid article>span{color:#eea14f;font:500 24px/1 "IBM Plex Mono",monospace}.spine-grid small{display:block;margin:28px 0 12px;color:#66ded9;font:650 9px/1.4 "IBM Plex Mono",monospace;letter-spacing:.13em}.spine-grid b{font-size:clamp(18px,1.5vw,23px);line-height:1.4}.spine-grid p{color:#8faab1;font-size:15px;line-height:1.7}.spine-schema{display:grid;grid-template-columns:minmax(180px,.3fr) minmax(0,1fr);gap:50px;margin:28px 0 0;padding:22px 0;border-top:1px solid rgba(196,165,116,.15);color:#89a4ab;font:600 10px/1.7 "IBM Plex Mono",monospace;letter-spacing:.06em}.spine-schema b{color:#65ded9;letter-spacing:.12em}

.hub-section{padding:clamp(80px,9vw,150px) clamp(22px,6.5vw,104px)}.hub-section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.36fr);column-gap:60px;align-items:end;margin-bottom:56px}.hub-section-heading>p{grid-column:1/-1}.hub-section-heading h2{margin:17px 0 0;color:#08202d;font-size:clamp(40px,4.25vw,64px);line-height:1.05;letter-spacing:-.04em}.hub-section-heading h2 em{font-style:normal;color:#159fa3;font-weight:400}.hub-section-heading>span{color:#59717a;font-size:16px;line-height:1.6;padding-bottom:7px}
.topic-section{background:var(--hub-paper);color:#08202d}.topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.7vw,42px)}.topic-card{min-width:0;background:#0e2a38;border:1px solid #ccd9d8;box-shadow:0 24px 70px rgba(2,24,32,.08);transition:transform .3s ease,box-shadow .3s ease}.topic-card:hover{transform:translateY(-6px);box-shadow:0 32px 85px rgba(2,24,32,.15)}.topic-image{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#071d29}.topic-image:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(3,18,26,.8),transparent 60%)}.topic-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease}.topic-card:hover .topic-image img{transform:scale(1.035)}.topic-image>span{position:absolute;left:26px;bottom:21px;z-index:1;color:#8bf3e9;font:650 10px/1.4 "IBM Plex Mono",monospace;letter-spacing:.16em}.topic-body{padding:clamp(24px,3.1vw,46px)}.topic-body>p:first-child{color:#168e93;font:650 9px/1.5 "IBM Plex Mono",monospace;letter-spacing:.13em}.topic-body h3{margin:13px 0 14px;font-size:clamp(32px,3.4vw,52px);line-height:1;letter-spacing:-.04em}.topic-body strong{display:block;min-height:3.1em;color:#0c3844;font-size:clamp(18px,1.45vw,23px);line-height:1.45}.topic-body>p:not(:first-child){min-height:5.4em;color:#597079;line-height:1.7}.topic-link{display:flex;align-items:center;justify-content:space-between;margin-top:25px;padding-top:20px;border-top:1px solid #dbe3e2;color:#087d83;font:700 11px/1.4 "IBM Plex Mono",monospace;letter-spacing:.09em;text-decoration:none}.topic-link i{font-size:24px;font-style:normal}.topic-link:hover span{text-decoration:underline;text-underline-offset:5px}

.workbench-section{background:#061b28;border-top:1px solid rgba(196,165,116,.14);border-bottom:1px solid rgba(196,165,116,.14)}.workbench-heading{margin-bottom:46px}.workbench-feature{position:relative;min-height:590px;overflow:hidden;border:1px solid rgba(196,165,116,.23);background:#051824;isolation:isolate}.workbench-feature:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,19,28,.98) 0%,rgba(3,20,29,.91) 39%,rgba(3,20,29,.35) 65%,rgba(3,20,29,.05) 100%)}.workbench-feature>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center}.workbench-body{position:relative;z-index:1;width:min(58%,720px);min-height:590px;display:flex;flex-direction:column;justify-content:center;padding:clamp(38px,5vw,76px)}.workbench-body>p:first-child{margin:0;color:#67e3dd;font:650 9px/1.5 "IBM Plex Mono",monospace;letter-spacing:.15em}.workbench-body h3{margin:19px 0 18px;color:#fff;font-size:clamp(38px,4vw,62px);line-height:1;letter-spacing:-.04em}.workbench-body strong{display:block;max-width:650px;color:#79e7df;font-size:clamp(17px,1.45vw,22px);line-height:1.55}.workbench-body>p:not(:first-child){max-width:650px;margin:21px 0 0;color:#a9c0c6;font-size:15px;line-height:1.75}.workbench-meta{display:block;margin-top:27px;color:#dda768;font:650 9px/1.5 "IBM Plex Mono",monospace;letter-spacing:.09em}.workbench-link{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(100%,410px);margin-top:25px;padding:13px 17px;border:1px solid rgba(196,165,116,.44);background:rgba(5,31,42,.78);color:#79eee5;font:700 10px/1.4 "IBM Plex Mono",monospace;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.workbench-link:hover{background:#18c7c9;color:#05202b}.workbench-link i{font-size:20px;font-style:normal}.workbench-feature>small{position:absolute;right:20px;bottom:17px;color:#a9c3ca;font:600 9px/1.45 "IBM Plex Mono",monospace;letter-spacing:.08em}

.research-library{background:#071c28}.hub-section-heading.inverse h2{color:#f0f7f6}.hub-section-heading.inverse>span{color:#90aab2}.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(196,165,116,.2);border-left:1px solid rgba(196,165,116,.2)}.library-grid>a{position:relative;min-height:250px;padding:34px 88px 34px 34px;border-right:1px solid rgba(196,165,116,.2);border-bottom:1px solid rgba(196,165,116,.2);color:#eaf4f3;text-decoration:none;background:linear-gradient(135deg,rgba(43,212,213,.035),transparent);transition:background .25s ease}.library-grid>a:last-child:nth-child(odd){grid-column:1/-1;min-height:220px;background:linear-gradient(110deg,rgba(43,212,213,.1),rgba(199,138,75,.035) 62%,transparent)}.library-grid>a:hover{background:rgba(43,212,213,.1)}.library-grid small{display:block;color:#62dcd6;font:650 9px/1.4 "IBM Plex Mono",monospace;letter-spacing:.14em}.library-grid b{display:block;margin:24px 0 16px;font-size:clamp(24px,2.6vw,38px);line-height:1.1}.library-grid>a>span{color:#91aab1;line-height:1.6}.library-grid i{position:absolute;right:28px;top:29px;color:rgba(196,165,116,.45);font:400 30px/1 "IBM Plex Mono",monospace;font-style:normal}

.method-section{display:grid;grid-template-columns:minmax(0,.75fr) minmax(420px,1.25fr);gap:clamp(50px,8vw,130px);background:#0e2a38;color:#e8e0d4}.method-copy h2{margin:19px 0 24px;font-size:clamp(40px,4.8vw,72px);line-height:1.03;letter-spacing:-.045em}.method-copy h2 em{font-style:normal;color:#148f93;font-weight:400}.method-copy>p:last-child{color:#5a7077;font-size:17px;line-height:1.8}.method-ladder{display:grid}.method-ladder>div{display:grid;grid-template-columns:54px minmax(160px,.6fr) minmax(180px,1fr);align-items:center;gap:22px;padding:25px 8px;border-bottom:1px solid #c6d4d2}.method-ladder>div:first-child{border-top:1px solid #c6d4d2}.method-ladder span{color:#139da1;font:650 13px/1 "IBM Plex Mono",monospace}.method-ladder b{font:700 12px/1.4 "IBM Plex Mono",monospace;letter-spacing:.08em}.method-ladder p{margin:0;color:#62777d;line-height:1.55}
.enterprise-strip{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.65fr);gap:70px;padding:clamp(70px,8vw,120px) clamp(22px,6.5vw,104px);background:#0c313d url("assets/silicon-ip-panorama-v2.webp") center/cover no-repeat;background-blend-mode:soft-light;border-top:1px solid rgba(196,165,116,.18)}.enterprise-strip h2{margin:18px 0 0;font-size:clamp(36px,4.5vw,68px);line-height:1.04;letter-spacing:-.04em}.enterprise-strip h2 em{font-style:normal;color:var(--hub-aqua);font-weight:400}.enterprise-strip>p{align-self:end;margin:0;padding:26px;border-left:2px solid var(--hub-cyan);background:rgba(3,20,29,.68);color:#b7cbd0;line-height:1.8}
.hub-footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:40px;padding:32px clamp(22px,5vw,80px);background:#04131c;border-top:1px solid rgba(196,165,116,.15)}.hub-footer>div{display:flex;justify-content:center;gap:25px}.hub-footer>div a{color:#9eb5bb;text-decoration:none;font:600 10px/1.4 "IBM Plex Mono",monospace;letter-spacing:.08em}.hub-footer>p{color:#58737d;font:600 9px/1.5 "IBM Plex Mono",monospace;letter-spacing:.08em;text-align:right}

@media(max-width:1180px){.hub-page .primary-nav{display:none}.hub-page .menu-button{display:grid}.hub-page .primary-nav.open{display:grid;position:absolute;top:100%;left:0;right:0;padding:18px 24px;background:#071d2a;border-top:1px solid rgba(196,165,116,.15);box-shadow:0 25px 45px rgba(0,0,0,.25)}.hub-page .primary-nav.open a{min-height:46px;display:flex;align-items:center;border-bottom:1px solid rgba(196,165,116,.1)}.hub-hero{grid-template-columns:1fr}.hub-hero-index{grid-template-columns:repeat(3,1fr);max-width:760px}.hub-hero-index>div{padding:14px 16px}.enterprise-strip{grid-template-columns:1fr}.enterprise-strip>p{max-width:720px}}
@media(max-width:960px){.spine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.hub-section-heading,.method-section,.spine-heading,.spine-schema{grid-template-columns:1fr}.spine-heading,.spine-schema{gap:18px}.hub-section-heading>span{margin-top:22px}.topic-grid,.library-grid{grid-template-columns:1fr}.library-grid>a:last-child:nth-child(odd){grid-column:auto;min-height:250px}.topic-body strong,.topic-body>p:not(:first-child){min-height:0}.workbench-feature{min-height:0;display:grid}.workbench-feature:after{display:none}.workbench-feature>img{position:static;z-index:0;aspect-ratio:16/9;object-position:65% center}.workbench-body{width:100%;min-height:0;padding:38px 30px;background:#082936}.workbench-feature>small{position:static;padding:12px 30px 17px;background:#082936}.method-ladder{margin-top:20px}.hub-footer{grid-template-columns:1fr}.hub-footer>div{justify-content:flex-start;flex-wrap:wrap}.hub-footer>p{text-align:left}.hub-hero-orbit{width:65vw;right:-15%;opacity:.65}}
@media(max-width:620px){.hub-page .site-header{min-height:64px}.hub-page .brand-section{display:none}.hub-hero{min-height:auto;display:block;padding:100px 20px 58px}.hub-hero h1{font-size:clamp(38px,11vw,44px);line-height:1.04;letter-spacing:-.04em}.hub-intro{font-size:15px;line-height:1.65}.hub-hero-actions{display:grid}.hub-hero-actions .button{width:100%;justify-content:center}.hub-hero-index{grid-template-columns:1fr;gap:12px;margin-top:40px}.hub-hero-index>div{padding:14px 16px}.knowledge-spine{padding:62px 18px}.spine-heading h2{font-size:34px}.spine-grid{grid-template-columns:1fr}.spine-grid article{min-height:0;padding:24px 20px}.spine-grid small{margin-top:20px}.hub-section{padding:70px 18px}.hub-section-heading{margin-bottom:34px}.hub-section-heading h2{font-size:38px}.topic-image{aspect-ratio:4/3}.topic-body{padding:24px 20px}.topic-body h3{font-size:30px}.workbench-heading h2{font-size:37px}.workbench-feature>img{aspect-ratio:4/3}.workbench-body{padding:28px 21px}.workbench-body h3{font-size:30px}.workbench-body>p:not(:first-child){font-size:15px}.workbench-link{width:100%}.workbench-feature>small{padding:11px 21px 16px}.library-grid>a{min-height:210px;padding:27px 58px 27px 22px}.library-grid b{font-size:26px}.method-section{gap:24px}.method-copy h2{font-size:38px}.method-ladder>div{grid-template-columns:38px 1fr;gap:12px;padding:20px 0}.method-ladder p{grid-column:2}.enterprise-strip{padding:70px 20px;gap:34px}.enterprise-strip h2{font-size:37px}.enterprise-strip>p{padding:20px}.hub-footer{padding:30px 20px}.hub-footer>div{display:grid;gap:13px}}
@media(prefers-reduced-motion:reduce){.topic-card,.topic-image img{transition:none}}

/* === 2026 Unified Monorepo & 6-Module Matrix Styles === */
.topic-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 0 24px;
}

.topic-tags span {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  font: 700 11.5px/1.3 "IBM Plex Mono", Consolas, monospace;
  color: #0d696a;
  background: rgba(19, 157, 161, .09);
  border: 1px solid rgba(19, 157, 161, .25);
  border-radius: 4px;
  letter-spacing: .04em;
  transition: all .2s ease;
}

.topic-card:hover .topic-tags span {
  border-color: rgba(19, 157, 161, .45);
  background: rgba(19, 157, 161, .15);
}

.topic-body strong {
  display: block;
  margin: 12px 0 10px;
  font-size: 17px;
  color: #0b2f3d;
  line-height: 1.45;
}

.topic-body > p:last-of-type {
  font-size: 15px;
  color: #536970;
  line-height: 1.65;
}

@media(min-width: 1440px) {
  .topic-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
  }
}


/* ==========================================================================
   REVIEWER 2 FIXES: HERO KPI, WORKBENCH CARD, ENTERPRISE STRIP & TOPIC CARDS
   ========================================================================== */

/* 1. Hero 標題行高放寬與平衡斷詞 */
.hub-hero h1 {
  margin: 20px 0 24px;
  max-width: 980px;
  font-size: clamp(40px, 4.6vw, 64px) !important;
  line-height: 1.16 !important;
  letter-spacing: -.035em !important;
  font-weight: 700;
  text-wrap: balance !important;
}
.hub-hero::after {
  pointer-events: none !important;
  user-select: none !important;
}
.hub-section-heading h2 {
  line-height: 1.15 !important;
  text-wrap: balance !important;
}

/* 2. Hero 3 大 KPI 卡片重構（徹底根除 ellipsis 省略號截斷） */
.hub-hero-index {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  border-top: 1px solid rgba(196, 165, 116, .24) !important;
  align-self: end !important;
  padding-top: 18px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.hub-hero-index > div {
  display: grid !important;
  grid-template-columns: 52px 1fr !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 16px !important;
  background: rgba(8, 28, 42, 0.7) !important;
  border: 1px solid rgba(196, 165, 116, .22) !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
}

.hub-hero-index b {
  font: 700 28px/1 "IBM Plex Mono", monospace !important;
  color: #fff !important;
  letter-spacing: -0.02em !important;
}

.hub-hero-index span {
  color: #a2bac2 !important;
  font: 650 11px/1.35 "IBM Plex Mono", monospace !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  text-wrap: balance !important;
}

@media (max-width: 1180px) {
  .hub-hero-index {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    max-width: 760px !important;
    margin-top: 32px !important;
  }
  .hub-hero-index > div {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 6px !important;
  }
}

@media (max-width: 620px) {
  .hub-hero-index {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .hub-hero-index > div {
    display: grid !important;
    grid-template-columns: 46px 1fr !important;
    align-items: center !important;
    padding: 10px 14px !important;
  }
}

/* 3. 6 大核心模組卡片 (.topic-card) 高度統一與按鈕鎖定卡片底端 */
.topic-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-width: 0 !important;
  background: #0e2a38;
  border: 1px solid #ccd9d8;
  box-shadow: 0 24px 70px rgba(2, 24, 32, .08);
  border-radius: 6px;
  overflow: hidden;
}

.topic-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  padding: clamp(24px, 2.5vw, 36px) !important;
}

.topic-body h3 {
  margin: 10px 0 12px !important;
  font-size: clamp(24px, 2.2vw, 32px) !important;
  line-height: 1.15 !important;
  letter-spacing: -.03em !important;
  text-wrap: balance !important;
}

.topic-body strong {
  display: block !important;
  min-height: 2.8em !important;
  margin: 8px 0 12px !important;
  font-size: 15.5px !important;
  color: #0b2f3d !important;
  line-height: 1.45 !important;
  text-wrap: pretty !important;
}

.topic-body > p:last-of-type {
  min-height: 4.8em !important;
  font-size: 14px !important;
  color: #536970 !important;
  line-height: 1.6 !important;
}

.topic-tags {
  margin: auto 0 18px !important;
  padding-top: 14px !important;
  min-height: 40px !important;
}

.topic-link {
  margin-top: auto !important;
  padding-top: 16px !important;
  border-top: 1px solid #dbe3e2 !important;
}

/* 4. 補齊 Section 02 (.workbench-card) 遺失的 CSS 樣式 */
.workbench-card {
  position: relative;
  background: radial-gradient(circle at 85% 20%, rgba(43, 212, 213, .12), transparent 45%),
              linear-gradient(135deg, #071f2d 0%, #051824 100%) !important;
  border: 1px solid rgba(196, 165, 116, .28) !important;
  border-radius: 10px !important;
  padding: clamp(32px, 4.5vw, 56px) !important;
  box-shadow: 0 30px 80px rgba(2, 20, 28, .4) !important;
}

.workbench-badge {
  display: inline-flex !important;
  align-items: center !important;
  padding: 4px 12px !important;
  border-radius: 999px !important;
  background: rgba(196, 165, 116, .12) !important;
  border: 1px solid rgba(196, 165, 116, .3) !important;
  color: var(--hub-aqua) !important;
  font: 700 10px/1.4 "IBM Plex Mono", monospace !important;
  letter-spacing: .12em !important;
  margin-bottom: 16px !important;
}

.workbench-copy h3 {
  color: #fff !important;
  font-size: clamp(28px, 3vw, 44px) !important;
  line-height: 1.15 !important;
  letter-spacing: -.035em !important;
  margin: 0 0 16px !important;
  text-wrap: balance !important;
}

.workbench-copy > p {
  color: #a8c1c7 !important;
  font-size: 15.5px !important;
  line-height: 1.7 !important;
  max-width: 820px !important;
  margin-bottom: 26px !important;
}

.workbench-features {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
  margin: 28px 0 !important;
}

.workbench-features > div {
  background: rgba(5, 31, 44, .7) !important;
  border: 1px solid rgba(196, 165, 116, .16) !important;
  border-radius: 6px !important;
  padding: 18px 20px !important;
}

.workbench-features strong {
  display: block !important;
  color: var(--hub-aqua) !important;
  font: 700 13px/1.4 "IBM Plex Mono", monospace !important;
  letter-spacing: .06em !important;
  margin-bottom: 6px !important;
}

.workbench-features span {
  color: #b7ccd1 !important;
  font-size: 13.5px !important;
  line-height: 1.5 !important;
}

.workbench-actions {
  display: flex !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  margin-top: 28px !important;
}

@media(max-width: 820px) {
  .workbench-features {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}

/* 5. 修復 Section 03 (.enterprise-strip) 選擇器脫節 */
.enterprise-strip {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 40px !important;
}

.enterprise-strip p:last-of-type {
  margin: 18px 0 0 !important;
  padding: 18px 22px !important;
  border-left: 3px solid var(--hub-cyan) !important;
  background: rgba(3, 20, 29, .75) !important;
  color: #b7cbd0 !important;
  font-size: 14.5px !important;
  line-height: 1.75 !important;
  border-radius: 0 6px 6px 0 !important;
  max-width: 780px !important;
}

.enterprise-actions {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
}

/* 6. Section 00 斷點提前至 1100px */
@media(max-width: 1100px) {
  .spine-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* =========================================================
   全站語系切換最上層治理規範：英文為第一預設 (English as Default)
   ========================================================= */
[data-lang="zh"] {
  display: none !important;
}
[data-lang="en"] {
  display: revert;
}

html[data-language="zh"] [data-lang="zh"],
body[data-language="zh"] [data-lang="zh"] {
  display: revert !important;
}
html[data-language="zh"] [data-lang="en"],
body[data-language="zh"] [data-lang="en"] {
  display: none !important;
}



/* ==========================================================================
   2026 NVM KNOWLEDGE HUB: 44PX HEADER, 7-MODULE STRIP & SLIDE DECK ARCHITECTURE
   ========================================================================== */

/* 1. ULTRA-MINIMAL STICKY HEADER (44px / h-11) */
.hub-minimal-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 44px;
  background: rgba(10, 17, 24, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(30, 41, 59, 0.85);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--hub-keepout, 24px);
  box-sizing: border-box;
}

.hub-header-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hub-micro-logo {
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: transparent;
  border: 1px solid #b08a5b;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.hub-micro-logo span {
  color: #b08a5b;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.hub-brand-name {
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #f1f5f9;
  text-transform: uppercase;
}

.hub-spec-badge {
  display: inline-block;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 9.5px;
  color: #64748b;
  border-left: 1px solid #334155;
  padding-left: 10px;
  letter-spacing: 0.06em;
}

.hub-header-right {
  display: flex;
  align-items: center;
  gap: 20px;
}

.hub-top-nav {
  display: flex;
  align-items: center;
  gap: 14px;
}

.hub-top-nav a {
  color: #94a3b8;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11px;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
  white-space: nowrap;
}

.hub-top-nav a:hover,
.hub-top-nav a.is-active {
  color: #c4a574;
}

.hub-header-ctrls {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hub-keyboard-hint-btn {
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid #334155;
  color: #94a3b8;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 10px;
  font-weight: 600;
  border-radius: 4px;
  padding: 3px 7px;
  cursor: pointer;
  transition: all 0.2s;
}

.hub-keyboard-hint-btn:hover {
  border-color: #8a6a42;
  color: #c4a574;
}

/* 2. 7 CORE MODULES STRIP & SUBMODULE RIBBON */
.hub-module-strip-container {
  position: sticky;
  top: 44px;
  z-index: 90;
  background: #0b131e;
  border-bottom: 1px solid #1e293b;
}

.hub-module-tabs {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  padding: 8px 16px;
  scrollbar-width: none;
  max-width: 1280px;
  margin: 0 auto;
}

.hub-module-tabs::-webkit-scrollbar {
  display: none;
}

.module-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 6px;
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid transparent;
  color: #94a3b8;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.2s ease;
}

.module-tab-btn:hover {
  background: rgba(30, 41, 59, 0.7);
  color: #e2e8f0;
  border-color: #c9c0b4;
}

.module-tab-btn.is-active {
  background: rgba(8, 51, 68, 0.85);
  border-color: rgba(6, 182, 212, 0.6);
  color: #67e8f9;
  box-shadow: 0 0 12px rgba(6, 182, 212, 0.15);
}

.module-tab-btn .tab-num {
  font-weight: 700;
  color: #64748b;
}

.module-tab-btn.is-active .tab-num {
  color: #b08a5b;
}



/* 3. PAGINATED SLIDE STAGE */
.hub-deck-viewport {
  padding: 24px 16px 36px;
  max-width: 1280px;
  margin: 0 auto;
}

.deck-stage-wrapper {
  position: relative;
  border-radius: 16px;
  background: #0e1622;
  border: 1px solid #1e293b;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.55);
  overflow: hidden;
  min-height: 580px;
}

.deck-slide {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  min-height: 560px;
  animation: slideInFade 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

.deck-slide.is-active {
  display: flex;
}

@keyframes slideInFade {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.stage-topbar {
  padding: 14px 24px;
  border-bottom: 1px solid rgba(30, 41, 59, 0.85);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11.5px;
  background: rgba(15, 23, 42, 0.3);
}

.stage-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #94a3b8;
}

.stage-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #c4a574;
  box-shadow: 0 0 8px #c4a574;
}

.stage-module-tag {
  color: #f1f5f9;
  font-weight: 700;
}

.stage-category-text {
  color: #b08a5b;
}

.stage-meta-badge {
  color: #64748b;
  font-size: 10.5px;
}

.stage-body {
  padding: 32px 28px;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.9fr);
  gap: 36px;
  align-items: center;
  flex: 1;
}

.stage-kicker {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 4px;
  background: rgba(8, 51, 68, 0.6);
  border: 1px solid rgba(176, 138, 91, 0.4);
  color: #c4a574;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 14px;
}

.stage-title {
  font-size: clamp(26px, 2.7vw, 38px);
  font-weight: 800;
  line-height: 1.2;
  color: #fff;
  letter-spacing: -0.03em;
  margin: 0 0 16px;
}

.stage-gradient-text {
  background: linear-gradient(90deg, #b08a5b 0%, #c4a574 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.stage-desc {
  font-size: 14px;
  line-height: 1.7;
  color: #cbd5e1;
  margin: 0 0 24px;
}

.deck-pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 24px;
}

.deck-pillar-card {
  padding: 12px 14px;
  border-radius: 8px;
  background: rgba(15, 23, 42, 0.75);
  border: 1px solid #1e293b;
}

.pillar-code {
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11px;
  font-weight: 700;
  color: #b08a5b;
}

.pillar-text {
  font-size: 11.5px;
  color: #94a3b8;
  margin-top: 4px;
  line-height: 1.4;
}

.stage-action-area {
  margin-top: 10px;
}

.stage-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: 6px;
  background: rgba(8, 51, 68, 0.8);
  border: 1px solid #8a6a42;
  color: #c4a574;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
}

.stage-link-btn:hover {
  background: #8a6a42;
  color: #020617;
  border-color: #b08a5b;
}

.stage-engine-col {
  background: #080d14;
  border-radius: 12px;
  border: 1px solid #1e293b;
  padding: 22px;
}

.engine-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #1e293b;
  padding-bottom: 12px;
  margin-bottom: 16px;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11px;
}

.engine-title {
  color: #94a3b8;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.engine-state-pill {
  padding: 3px 8px;
  border-radius: 4px;
  background: #0f172a;
  border: 1px solid #334155;
  color: #c4a574;
  font-weight: 700;
}

.engine-rows-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11.5px;
}

.engine-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 9px 12px;
  border-radius: 6px;
  background: rgba(15, 23, 42, 0.9);
  border: 1px solid #1e293b;
}

.engine-row-label {
  color: #64748b;
  font-size: 11px;
}

.engine-trigger-btn {
  margin-top: 18px;
  width: 100%;
  padding: 10px;
  border-radius: 6px;
  background: #8a6a42;
  color: #020617;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11.5px;
  font-weight: 800;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 14px rgba(176, 138, 91, 0.3);
}

.engine-trigger-btn:hover {
  background: #b08a5b;
  box-shadow: 0 4px 18px rgba(176, 138, 91, 0.5);
}

.stage-deck-controller {
  padding: 12px 24px;
  border-top: 1px solid rgba(30, 41, 59, 0.85);
  background: rgba(15, 23, 42, 0.5);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11.5px;
}

.deck-ctrl-btn {
  background: none;
  border: none;
  color: #94a3b8;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s;
}

.deck-ctrl-btn:hover {
  color: #c4a574;
}

.deck-indicators {
  display: flex;
  align-items: center;
  gap: 6px;
}

.deck-indicator-bar {
  width: 28px;
  height: 5px;
  border-radius: 3px;
  background: #334155;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
}

.deck-indicator-bar.is-active {
  background: #b08a5b;
  width: 36px;
  box-shadow: 0 0 8px #b08a5b;
}

/* 4. SPEC DRAWER & COMPLETE EVIDENCE MATRIX */
.spec-drawer-section {
  max-width: 1280px;
  margin: 10px auto 50px;
  padding: 0 16px;
}

.spec-drawer-toggle-bar {
  display: flex;
  justify-content: center;
}

.spec-drawer-btn {
  width: 100%;
  padding: 14px 20px;
  border-radius: 8px;
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid #334155;
  color: #cbd5e1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.spec-drawer-btn:hover {
  border-color: #8a6a42;
  color: #c4a574;
  background: rgba(15, 23, 42, 0.95);
}

.drawer-icon {
  color: #b08a5b;
  font-size: 11px;
  transition: transform 0.25s ease;
}

.spec-drawer-btn[aria-expanded="true"] .drawer-icon {
  transform: rotate(180deg);
}

.drawer-badge {
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 4px;
  background: rgba(6, 182, 212, 0.15);
  border: 1px solid rgba(6, 182, 212, 0.4);
  color: #b08a5b;
}

.spec-drawer-content {
  display: none;
  padding-top: 28px;
  animation: slideInFade 0.28s;
}

.spec-drawer-content.is-open {
  display: block;
}

.spec-metrics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 36px;
}

.spec-metric-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 18px 20px;
  background: rgba(15, 23, 42, 0.7);
  border: 1px solid #1e293b;
  border-radius: 8px;
}

.spec-metric-card b {
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 32px;
  font-weight: 700;
  color: #fff;
}

.spec-metric-card span {
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  color: #94a3b8;
  margin-top: 4px;
}

.spec-matrix-header {
  margin-bottom: 28px;
}

.spec-matrix-header p {
  color: #c4a574;
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  margin: 0 0 6px;
}

.spec-matrix-header h2 {
  font-size: 28px;
  font-weight: 700;
  color: #f1f5f9;
  line-height: 1.2;
  margin: 0 0 8px;
}

.spec-matrix-header h2 em {
  font-style: normal;
  color: #b08a5b;
}

.spec-matrix-header span {
  color: #94a3b8;
  font-size: 14px;
}

.drawer-workbench-box {
  margin-top: 36px;
  padding: 28px;
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid #1e293b;
}

.drawer-workbench-copy h3 {
  font-size: 24px;
  color: #fff;
  margin: 12px 0 10px;
}

.drawer-workbench-copy p {
  color: #94a3b8;
  line-height: 1.6;
  font-size: 14px;
}

.drawer-workbench-actions {
  display: flex;
  gap: 12px;
  margin-top: 20px;
}

/* Responsive adjustments for Stage */
@media(max-width: 1024px) {
  .stage-body {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 24px 20px;
  }
  .deck-pillars-grid {
    grid-template-columns: 1fr;
  }
  .hub-header-left .hub-spec-badge {
    display: none;
  }
}

@media(max-width: 768px) {
  .hub-minimal-header {
    padding: 0 var(--hub-keepout, 24px);
  }
  .hub-top-nav {
    display: none;
  }
  .hub-deck-viewport {
    padding: 16px 10px 24px;
  }
  .spec-metrics-grid {
    grid-template-columns: 1fr;
  }
  .stage-topbar {
    padding: 10px 16px;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  .stage-deck-controller {
    padding: 10px 16px;
    flex-direction: column;
    gap: 12px;
  }
}

@media print {
  .hub-toc-bar,
  .hub-reading-tracker,
  .stage-deck-controller,
  .stage-topbar,
  .hub-hero-orbit,
  .hub-hero-actions {
    display: none !important;
  }
}
