/* Shared local fonts: English / numbers first, Traditional Chinese fallback. */
@font-face {
  font-family: 'Work Sans'; src: url('fonts/WorkSans-Variable.woff2') format('woff2');
  font-weight: 100 900; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'ShangguSans'; src: url('fonts/ShangguSans-Regular.woff2') format('woff2');
  font-weight: 100 499; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'ShangguSans'; src: url('fonts/ShangguSans-Medium.woff2') format('woff2');
  font-weight: 500 900; font-style: normal; font-display: swap;
}
/* Use this font's native low-position full stop; all other glyphs stay original. */
@font-face {
  font-family: 'ShangguSans'; src: url('fonts/WISBaselinePunctuation-Regular.woff2') format('woff2');
  font-weight: 100 499; font-style: normal; font-display: swap; unicode-range: U+3002;
}
@font-face {
  font-family: 'ShangguSans'; src: url('fonts/WISBaselinePunctuation-Medium.woff2') format('woff2');
  font-weight: 500 900; font-style: normal; font-display: swap; unicode-range: U+3002;
}
/* WIS brand system — Wayne-LOGO.pdf, page 1 (official brand specification).
   Navy #0A1F5D · gray #E6E9F0 · cyan #A3D1E0. Work Sans + Shanggu Sans.
   Status and chart-category colors retain their semantic meaning. */
:root {
  --wis-navy: #0a1f5d;
  --wis-cyan: #a3d1e0;
  --wis-gray: #e6e9f0;
  --wis-paper: #ffffff;
  --wis-font: 'Work Sans', 'ShangguSans', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
  --font: var(--wis-font);
  --sans: var(--wis-font);
  --mono: var(--wis-font);
  --num: var(--wis-font);
  --font-sans: var(--wis-font);
  --default-font-family: var(--wis-font);
  --el-font-family: var(--wis-font);
  --wis-navy-rgb: 10, 31, 93;
  --wis-cyan-rgb: 163, 209, 224;
  --wis-soft: var(--wis-gray);
  --wis-cyan-soft: color-mix(in srgb, var(--wis-cyan) 20%, white);
  --wis-line: var(--wis-gray);
  --wis-line-strong: color-mix(in srgb, var(--wis-navy) 30%, var(--wis-gray));
  --wis-muted: color-mix(in srgb, var(--wis-navy) 75%, white);
  --wis-hover: color-mix(in srgb, var(--wis-navy) 85%, var(--wis-cyan));
  --wis-deep: var(--wis-navy);
  --wis-dark-surface: color-mix(in srgb, var(--wis-navy) 90%, black);
  --wis-dark-panel: color-mix(in srgb, var(--wis-navy) 86%, var(--wis-cyan));
  --wis-dark-border: rgba(var(--wis-cyan-rgb), .32);
  --wis-on-dark: var(--wis-gray);
  --wis-on-dark-muted: color-mix(in srgb, var(--wis-gray) 75%, var(--wis-cyan));
  --wis-radius: 12px;
  --wis-control-radius: 6px;
}
::selection { color: var(--wis-navy); background: var(--wis-cyan); }

/* Main site: white editorial surfaces, navy type, cyan details from the logo. */
.wis-refreshed .site-header { border-top: 3px solid var(--wis-navy); }
.wis-refreshed nav.main-nav a.active { border-bottom: 2px solid var(--wis-cyan); }
.wis-refreshed nav.main-nav a:hover { color: var(--wis-hover); }
.wis-refreshed .wis-home-hero,
.wis-refreshed .wis-team-hero {
  background: radial-gradient(ellipse at 100% 0, var(--wis-cyan-soft), transparent 62%), var(--wis-paper);
}
.wis-home-hero h1 em, .wis-team-hero h1 em {
  text-decoration: underline;
  text-decoration-color: var(--wis-cyan);
  text-decoration-thickness: .09em;
  text-underline-offset: .16em;
  text-decoration-skip-ink: none;
}
.wis-eyebrow::before, .wis-small-dot { background: var(--wis-cyan); }
.wis-refreshed .section-label::before {
  content: '/'; color: var(--wis-cyan); margin-right: 10px; font-weight: 700;
}
.wis-refreshed .wis-expertise-card {
  background: linear-gradient(150deg, var(--wis-paper) 40%, var(--wis-cyan-soft));
  border-color: var(--wis-line-strong);
}
.wis-orbit b span { color: var(--wis-cyan); }
.wis-area-tabs button[aria-selected="true"] {
  border-bottom-color: var(--wis-navy); background: var(--wis-cyan-soft); border-radius: 4px 4px 0 0;
}
.wis-refreshed .wis-offer-no { background: var(--wis-cyan-soft); border-color: var(--wis-cyan); }
.wis-project-art { background: var(--wis-navy); color: var(--wis-cyan); }
.wis-project-art strong { color: var(--wis-cyan); }
.wis-project-art::before {
  background-image: linear-gradient(rgba(var(--wis-cyan-rgb),.12) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--wis-cyan-rgb),.12) 1px,transparent 1px);
}
.wis-project-art.wis-agent-art { background: var(--wis-cyan-soft); color: var(--wis-navy); }
.wis-agent-art::before {
  background-image: linear-gradient(rgba(var(--wis-navy-rgb),.06) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--wis-navy-rgb),.06) 1px,transparent 1px);
}
.wis-agent-flow span { background: var(--wis-paper); }
.wis-tags span { background: var(--wis-cyan-soft); border-color: var(--wis-cyan); }
.wis-refreshed .wis-diagnostic, .wis-refreshed .footer-cta {
  --text: #fff; --text-mute: #d4e2f0; --accent: var(--wis-cyan);
  color: white; background: var(--wis-navy);
  border-top: 4px solid var(--wis-cyan);
}
.wis-refreshed :is(.wis-diagnostic,.footer-cta,.workbench-product,.workbench-steps) .section-label { color: var(--wis-cyan); }
.wis-refreshed :is(.wis-diagnostic,.footer-cta,.workbench-steps) .btn-primary {
  color: var(--wis-navy); background: var(--wis-cyan); border-color: var(--wis-cyan);
}
.wis-refreshed :is(.wis-diagnostic,.footer-cta,.workbench-steps) .btn-primary:hover {
  color: var(--wis-navy); background: white; border-color: white;
}
.wis-refreshed :is(.footer-cta,.workbench-steps) .btn-secondary { color: white; border-color: var(--wis-cyan); }
.wis-refreshed :is(.footer-cta,.workbench-steps) .btn-secondary:hover { color: var(--wis-navy); background: var(--wis-cyan); }
.wis-refreshed .site-footer { background: var(--wis-soft); }
.wis-refreshed .site-footer a:hover { color: var(--wis-navy); text-decoration: underline; }
.wis-refreshed :is(input,textarea,select):focus { outline-color: var(--wis-navy); border-color: var(--wis-navy); }
.wis-refreshed :is(input,select) { accent-color: var(--wis-navy); }
.wis-refreshed :is(.wis-diagnostic,.footer-cta,.workbench-product,.workbench-steps) :focus-visible { outline-color: var(--wis-cyan); }

/* Standalone Token page shares the same brand and light/dark contrast. */
.token-final .btn-primary { background: var(--wis-cyan); color: var(--wis-navy); border-color: var(--wis-cyan); }

.token-final { border-top-color: var(--wis-cyan); }
.token-final .btn-primary:hover { background: white; border-color: white; color: var(--wis-navy); }

/* Existing research portal and report: keep the editorial/dark layout. */
.wis-topic-portal { background: var(--wis-deep); color: white; }
.portal-backdrop {
  background: linear-gradient(90deg,rgba(var(--wis-navy-rgb),.97),rgba(var(--wis-navy-rgb),.8) 53%,rgba(var(--wis-navy-rgb),.36)),url(ai-infrastructure/assets/cover-v1.png) center/cover;
}
.portal-brand { background: transparent; padding: 0; }
.portal-brand img { filter: none; opacity: 1; }
.portal-eyebrow,.portal h1 em,.portal-footer b,.portal-edition b,.portal-choice h2>span { color: var(--wis-cyan); }
.portal-choice,.smart-choice { background: rgba(var(--wis-navy-rgb),.72); border-color: rgba(var(--wis-cyan-rgb),.5); }
.portal-choice::before,.portal-eyebrow i { background: var(--wis-cyan); }
.portal-choice:hover,.portal-choice:focus-visible { border-color: var(--wis-cyan); }
.portal-copy>p,.portal-footer { color: #b8c9dd; }
.wis-topic-bar { background: var(--wis-navy); color: white; border-color: var(--wis-cyan); }
.wis-topic-brand span { color: var(--wis-cyan); }

/* Feishu service and demo chrome. Status indicators are deliberately separate. */
.wis-service-logo { filter: none; background: transparent; padding: 0; }
.console { --cy: var(--wis-cyan); --cy-2: var(--wis-cyan); --panel: rgba(var(--wis-navy-rgb),.65); background: var(--wis-deep); }
.console-section { background: radial-gradient(ellipse at 50% 40%,var(--wis-navy),var(--wis-deep) 75%); }
.cs-toolbar button.active { background: var(--wis-cyan); border-color: var(--wis-cyan); color: var(--wis-navy); }

/* The prebuilt dashboard keeps its data palette; brand its controls/surfaces. */
.wis-topic-command {
  --el-color-primary: var(--wis-cyan);
  --el-color-primary-light-3: #bfe0eb;
  --el-color-primary-light-5: #d4eaf2;
  --el-color-primary-light-7: #eaf4f8;
  --el-color-primary-light-9: #f3f7fb;
  --el-color-primary-dark-2: #7bb7cb;
  --el-bg-color: var(--wis-deep);
  --el-bg-color-overlay: var(--wis-navy);
  --el-fill-color-blank: var(--wis-deep);
  --el-border-color: #526a92;
  background: var(--wis-deep); color: white;
}
.wis-topic-command .command-controls {
  --el-color-primary: var(--wis-cyan);
  --el-bg-color: var(--wis-navy);
  --el-fill-color-blank: var(--wis-deep);
  --el-text-color-primary: #fff;
  --el-border-color: #526a92;
}
.wis-topic-command .command-controls .el-button--primary,
.wis-topic-command .command-controls .is-active .el-radio-button__inner { color: var(--wis-navy); background: var(--wis-cyan); border-color: var(--wis-cyan); }
.wis-topic-command .command-controls .el-radio-button { --el-radio-button-checked-text-color: var(--wis-navy); }
.wis-topic-command .title_wrap .title-text { color: var(--wis-cyan); -webkit-text-fill-color: var(--wis-cyan); background: none; }
.wis-topic-command .company-logo { filter: none; background: transparent; padding: 0; object-fit: contain; }
.wis-topic-command .dv-border-box-13 { background: rgba(var(--wis-navy-rgb),.65); }
.wis-topic-command .el-dialog { --el-dialog-bg-color: var(--wis-navy); }

/* Traditional-only language indicator; no interactive toggle. */
.wis-language-label { font-size: 11px; color: var(--wis-muted); white-space: nowrap; letter-spacing: .03em; }

/* Shared 4:5 portrait frame: ~55% hair-to-chin height, eye line near 39%.
   Original faces are never stretched; scale is uniform on both axes. */
.wis-portrait-frame { display: block; aspect-ratio: 4/5; overflow: hidden; border-radius: 10px; background: var(--wis-portrait-bg); }
.wis-portrait-frame img { border-radius: 0; transform-origin: center top; }
.wis-portrait-frame img[src*="liu-gengyu-balanced"] { transform: translateY(-2.2%) scale(1.14); }
.wis-portrait-frame img[src*="wang-zhiwei-balanced"] { transform: translateY(3.8%) scale(1.05); }
/* Use generated alpha only: the original JPEG supplies all foreground pixels. */
:root { --wis-portrait-bg: var(--wis-gray); }
.wis-portrait-frame img, .wis-mini-portrait img {
  background: transparent;
  mask-mode: alpha;
  mask-size: 100% 100%;
  mask-position: center;
  mask-repeat: no-repeat;
}
:is(.wis-portrait-frame, .wis-mini-portrait) img[src*="pang-jingwen"] { mask-image: url(assets/team/masks/pang-jingwen.webp); }
:is(.wis-portrait-frame, .wis-mini-portrait) img[src*="liu-gengyu"] { mask-image: url(assets/team/masks/liu-gengyu.webp); }
:is(.wis-portrait-frame, .wis-mini-portrait) img[src*="huang-shibin"] { mask-image: url(assets/team/masks/huang-shibin.webp); }
:is(.wis-portrait-frame, .wis-mini-portrait) img[src*="wang-zhiwei"] { mask-image: url(assets/team/masks/wang-zhiwei.webp); }
.wis-mini-portrait { display: block; width: 34px; height: 34px; border: 2px solid var(--bg); border-radius: 50%; overflow: hidden; margin-left: -6px; background: var(--wis-portrait-bg); }
.wis-mini-portrait img { display: block; width: 100%; height: 100%; border: 0; border-radius: 0; margin: 0; mask-size: cover; }

/* One type system across the main site, React islands and standalone topics. */
html body { font-family: var(--wis-font); }
body.wis-refreshed { --font: var(--wis-font); }
button, input, select, textarea { font-family: var(--wis-font); }
code, pre, kbd, samp { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.wis-refreshed .site-logo, .wis-refreshed .footer-logo-image { mix-blend-mode: normal; object-fit: contain; }

/* Complete component palette, including inherited legacy and topic states. */
.wis-refreshed :is(.page-hero, .report-hero, .scan-hero, .workbench-hero) {
  background: linear-gradient(120deg, var(--wis-paper) 30%, var(--wis-cyan-soft));
}
.wis-refreshed section.gray { background: var(--wis-gray); }
.wis-refreshed :is(.service-card,.report-card,.industry-card,.method-card,.case-card,.insight-tile,.insight-link,.hook-card,.member-card,.founder-card) {
  background: var(--wis-paper); border-color: var(--wis-line-strong);
}
.wis-refreshed :is(a.service-card,a.report-card,a.industry-card,a.insight-tile,a.insight-link,.hook-card):hover {
  background: var(--wis-cyan-soft); border-color: var(--wis-navy);
}
.wis-refreshed .flagship-report { background: var(--wis-cyan-soft); border-color: var(--wis-cyan); }
.wis-refreshed .flagship-report::after { color: rgba(var(--wis-navy-rgb),.04); }
.wis-refreshed .service-card.recommend::before { color: var(--wis-paper); background: var(--wis-navy); }
.wis-refreshed :is(.founder-card .avatar,.member-card .avatar-sm) { color: var(--wis-navy); background: var(--wis-cyan); }
.wis-refreshed .custom-band { --text: var(--wis-paper); --text-mute: var(--wis-on-dark-muted); color: var(--wis-paper); background: var(--wis-navy); }
.wis-refreshed .custom-band h2 { color: var(--wis-paper); }
.wis-refreshed .custom-band .btn-secondary { color: var(--wis-navy); background: var(--wis-cyan); border-color: var(--wis-cyan); }
.wis-refreshed .custom-band .btn-secondary:hover { background: var(--wis-paper); border-color: var(--wis-paper); }
.wis-refreshed .page-tabs a.active { background: var(--wis-navy); color: var(--wis-paper); }
.wis-refreshed .page-tabs a:hover:not(.active) { background: var(--wis-cyan-soft); color: var(--wis-navy); }
.wis-refreshed :is(.lead-form,.scan-step) { background: var(--wis-paper); border-color: var(--wis-line-strong); }
.wis-refreshed :is(input,textarea,select)::placeholder { color: var(--wis-muted); opacity: 1; }
.wis-refreshed .scan-option:has(input:checked) { background: var(--wis-cyan-soft); border-color: var(--wis-navy); }
.wis-refreshed :is(.article-content blockquote,.stat-quote) { background: var(--wis-cyan-soft); border-color: var(--wis-cyan); }
.wis-refreshed .matrix-table th { color: var(--wis-paper); background: var(--wis-navy); }
.wis-refreshed .matrix-table td { background: var(--wis-paper); }
.wis-refreshed .matrix-table tr:nth-child(even) td { background: var(--wis-cyan-soft); }
.wis-refreshed .sticky-cta { background: var(--wis-paper); border-color: var(--wis-line-strong); box-shadow: 0 8px 24px rgba(var(--wis-navy-rgb),.1); }
.wis-topic-report :is(.toc small,.fine,.source-meta,.source-line), .wis-download-note { color: var(--wis-muted); }
.wis-topic-report .reading-progress { background: var(--wis-cyan); }
.wis-topic-report .lab input { accent-color: var(--wis-navy); }
.wis-topic-report :is(.lab,.table-wrap,.sources article), .wis-download-card { border-radius: var(--wis-radius); }
.wis-topic-report button, .wis-topic-report input, .wis-topic-downloads a { border-radius: var(--wis-control-radius); }
.wis-topic-command { --el-border-radius-base: var(--wis-control-radius); --el-text-color-regular: var(--wis-on-dark); }

/* Topic navigation and operational screens use the same logo and surfaces. */
.wis-topic-brand { display: inline-flex; align-items: center; gap: 16px; }
.wis-topic-logo { display: block; width: 146px; height: auto; object-fit: contain; }
.wis-topic-brand span { font-size: 11px; }
.wis-topic-command .title_wrap { background: var(--wis-dark-panel); border-bottom: 1px solid var(--wis-cyan); }
.wis-topic-command .title_wrap :is(.guang,.zuojuxing,.youjuxing) { background-image: none; }
.wis-topic-command .dv-border-box-13 { border-radius: var(--wis-radius); }
.console :is(.panel,.m-card) { border-radius: var(--wis-radius); clip-path: none; background: var(--wis-dark-panel); }
.console :is(.cs-toolbar button,.cs-scenes button,.chat-input,.msg-b) { border-radius: var(--wis-control-radius); }
.console .cs-title { background: none; color: var(--wis-gray); -webkit-text-fill-color: var(--wis-gray); text-shadow: none; letter-spacing: .04em; }
.console .panel-title { color: var(--wis-gray); letter-spacing: .03em; }
.console .panel-title::before, .console .panel-title::after { content: none; }
.console .panel::before { background: var(--wis-cyan); }
.console .msg.bot .msg-av { background: var(--wis-cyan); color: var(--wis-navy); box-shadow: none; }
.console .cs-toolbar button.active { background: var(--wis-cyan); color: var(--wis-navy); }
.wb-app { --d-bg: var(--wis-dark-surface); --d-side: var(--wis-navy); border-radius: var(--wis-radius); }
.wb-new { background: var(--wis-cyan); color: var(--wis-navy); border-color: var(--wis-cyan); }
.wb-folder.active, .wb-folder:hover { background: var(--wis-dark-panel); }
.wb-col, .step, .contact-box, .wis-demo-disclosure { border-radius: var(--wis-radius); }
.wis-replay-controls button, .wis-lightbox-close { border-radius: var(--wis-control-radius); }
.wis-replay-controls button:hover, .wis-lightbox-close:hover { background: var(--wis-cyan); color: var(--wis-navy); }
@media (max-width: 760px) {
  .wis-topic-brand { gap: 10px; }
  .wis-topic-logo { width: 128px; }
  .wis-topic-brand span { font-size: 10px; }
}

.wis-refreshed .demo-sidebar :is(.demo-caption,.demo-account small) { color: var(--wis-on-dark-muted); }
