/* Isolated candidate residual: walkthrough collection hub, Direction A. */
body.wh-hub {
  margin: 0;
  background: var(--paper);
  color: var(--ink-soft);
  font-family: var(--font-fa);
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.wh-hub *, body.wh-hub *::before, body.wh-hub *::after { box-sizing: border-box; }
body.wh-hub h1, body.wh-hub h2, body.wh-hub h3, body.wh-hub p { margin: 0; }
body.wh-hub h1, body.wh-hub h2, body.wh-hub h3 { color: var(--ink); text-wrap: balance; }
body.wh-hub a:not(.btn) { color: inherit; text-decoration: none; }
body.wh-hub img, body.wh-hub svg { display: block; max-inline-size: 100%; }
body.wh-hub :focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
body.wh-hub a, body.wh-hub button { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
body.wh-hub .sigil-defs { position: absolute; inline-size: 0; block-size: 0; overflow: hidden; }
body.wh-hub .header.is-hidden { transform: translateY(-100%); }

body.wh-hub .header__start, body.wh-hub .header__brand, body.wh-hub .header__nav,
body.wh-hub .footer__brand, body.wh-hub .footer__social { display: flex; align-items: center; }
body.wh-hub .header__start { gap: var(--sp-3); min-inline-size: 0; }
body.wh-hub .header__brand, body.wh-hub .footer__brand { gap: var(--sp-2); flex: 0 0 auto; min-block-size: 44px; }
body.wh-hub .header__sigil, body.wh-hub .footer__sigil { inline-size: 24px; block-size: 24px; flex: 0 0 24px; color: var(--ink); }
body.wh-hub .header__wordmark, body.wh-hub .footer__wordmark { color: var(--ink); font-size: var(--fs-meta); font-weight: 700; }
body.wh-hub .header__sep { color: var(--ink-meta); flex: 0 0 auto; font-size: var(--fs-meta); }
body.wh-hub .header__nav { gap: var(--sp-3); flex: 0 0 auto; }
body.wh-hub .header__pill, body.wh-hub .header__link { display: inline-flex; align-items: center; min-block-size: 44px; }
body.wh-hub .header__pill::after { content: ""; position: absolute; inset: -7px 0; }
body.wh-hub .header__link { color: var(--ink-meta); font-size: var(--fs-meta); font-weight: 600; padding-inline: var(--sp-1); transition: color var(--dur-base); }
body.wh-hub .header__rail { display: none; }

body.wh-hub .header__rail-back { display: inline-flex; align-items: center; gap: var(--sp-2); min-block-size: 44px; color: var(--ink); font-size: var(--fs-meta); font-weight: 700; flex: 0 0 auto; }
body.wh-hub .header__rail-arrow { font-size: var(--fs-body); }
body.wh-hub .header__rail-sep { color: var(--line-gold); font-size: var(--fs-caption); flex: 0 0 auto; }
body.wh-hub .header__rail-current { color: var(--ink-meta); font-size: var(--fs-meta); font-weight: 600; flex: 0 0 auto; }
body.wh-hub .header__trail bdi, body.wh-hub .header__rail bdi { direction: ltr; unicode-bidi: isolate; font-family: var(--font-en); }

body.wh-hub .wh-shell { position: relative; overflow: clip; }
body.wh-hub .wh-shell::before { content: ""; position: absolute; inset-block: 0; inset-inline-start: var(--sp-4); border-inline-start: 1px solid var(--line-gold); pointer-events: none; }
body.wh-hub .wh-intro, body.wh-hub .wh-skills, body.wh-hub .wh-consult { padding-inline: var(--gutter); }
body.wh-hub .wh-intro { padding-block: var(--sp-16) var(--sp-12); }
body.wh-hub .wh-intro__grid, body.wh-hub .wh-skills__inner, body.wh-hub .wh-consult__inner { max-inline-size: var(--measure-wide); margin-inline: auto; }
body.wh-hub .wh-intro__grid { display: grid; gap: var(--sp-10); align-items: center; }
body.wh-hub .wh-eyebrow { color: var(--ink-meta); font-family: var(--font-en); font-size: var(--fs-caption); font-weight: 700; letter-spacing: .14em; line-height: var(--lh-en); text-transform: uppercase; }
body.wh-hub .wh-title { margin-block-start: var(--sp-3); font-family: var(--font-display); font-size: var(--fs-display); font-weight: 700; line-height: var(--lh-display); }
body.wh-hub .wh-lede { max-inline-size: 39rem; margin-block-start: var(--sp-4); color: var(--ink-soft); }
body.wh-hub .wh-intro__action { margin-block-start: var(--sp-6); }
body.wh-hub .wh-intro__action .btn { min-block-size: 56px; }
body.wh-hub .wh-map { margin: 0; }
body.wh-hub .wh-map img { inline-size: min(100%, 240px); block-size: auto; margin-inline: auto; }
body.wh-hub .wh-map figcaption { max-inline-size: 29rem; margin: var(--sp-5) auto 0; border-inline-start: var(--mark-annotation-border); padding-inline-start: var(--sp-3); color: var(--ink-soft); font-size: var(--fs-meta); line-height: var(--lh-body); }
body.wh-hub .wh-map .wh-jumps { padding: var(--sp-5) 0 0; }
body.wh-hub .wh-map .wh-jumps__links { margin-block-start: 0; }

body.wh-hub .wh-jumps { padding-inline: var(--gutter); padding-block-end: var(--sp-16); }
body.wh-hub .wh-jumps__inner { max-inline-size: var(--measure-wide); margin-inline: auto; }
body.wh-hub .wh-jumps__label { color: var(--ink-meta); font-size: var(--fs-meta); font-weight: 700; }
body.wh-hub .wh-jumps__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); margin-block-start: var(--sp-4); }
body.wh-hub .wh-jump { display: flex; align-items: center; justify-content: space-between; min-block-size: 44px; border-bottom: 1px solid var(--line-gold); color: var(--ink); font-weight: 700; padding-inline: var(--sp-3); }
body.wh-hub .wh-jump::after { content: "↓"; color: var(--ink-meta); }

body.wh-hub .wh-skills { padding-block: var(--sp-16); border-block-start: 1px solid var(--line-gold); scroll-margin-block-start: 100px; }
body.wh-hub .wh-skills__intro { max-inline-size: var(--measure); }
body.wh-hub .wh-section-title { font-family: var(--font-display); font-size: var(--fs-h2); font-weight: 700; line-height: var(--lh-heading); scroll-margin-block-start: 100px; }
body.wh-hub .wh-section-lede { margin-block-start: var(--sp-3); }
body.wh-hub .wh-skill-grid { display: grid; gap: var(--sp-8); margin-block-start: var(--sp-10); }
body.wh-hub .wh-skill { background: var(--slip); border: 1px solid var(--ink); border-radius: var(--r-surface); padding: var(--sp-6); }
body.wh-hub .wh-skill__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-4); border-block-end: 1px solid var(--line-gold); padding-block-end: var(--sp-4); }
body.wh-hub .wh-skill__name { font-family: var(--font-display); font-size: var(--fs-h3); font-weight: 700; line-height: var(--lh-heading); scroll-margin-block-start: 100px; }
body.wh-hub .wh-skill__code { color: var(--ink-meta); direction: ltr; font-family: var(--font-en); font-size: var(--fs-caption); font-weight: 700; line-height: var(--lh-en); letter-spacing: .08em; text-align: left; }
body.wh-hub .wh-skill__desc { margin-block: var(--sp-4); color: var(--ink-soft); }
body.wh-hub .wh-leaf-list { display: grid; gap: var(--sp-3); list-style: none; margin: 0; padding: 0; }
body.wh-hub .wh-leaf { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: var(--sp-4); min-block-size: 72px; border: 1px solid var(--line-gold); border-radius: var(--r-row); color: var(--ink); padding: var(--sp-4); }
body.wh-hub .wh-leaf__title { display: block; font-weight: 700; }
body.wh-hub .wh-leaf__sub { display: block; margin-block-start: var(--sp-1); color: var(--ink-soft); font-size: var(--fs-body); line-height: var(--lh-body); }
body.wh-hub .wh-leaf__ref { align-self: start; color: var(--ink-meta); direction: ltr; font-family: var(--font-en); font-size: var(--fs-caption); font-weight: 700; line-height: var(--lh-en); letter-spacing: .06em; text-align: left; }
body.wh-hub .wh-skill__more { display: inline-flex; align-items: center; gap: var(--sp-2); min-block-size: 44px; margin-block-start: var(--sp-4); border-block-end: 1px solid var(--line-gold); color: var(--ink); font-weight: 700; }
body.wh-hub .wh-skill__more::before { content: "←"; }

body.wh-hub .wh-consult { padding-block: var(--sp-16); border-block-start: 1px solid var(--line-gold); }
body.wh-hub .wh-consult__inner { max-inline-size: var(--measure); }
body.wh-hub .wh-consult__title { font-family: var(--font-display); font-size: var(--fs-h2); font-weight: 700; line-height: var(--lh-heading); }
body.wh-hub .wh-consult__copy { margin-block-start: var(--sp-4); }
body.wh-hub .wh-consult__link { display: inline-flex; align-items: center; min-block-size: 44px; margin-block-start: var(--sp-4); border-block-end: 1px solid var(--line-gold); color: var(--ink); font-weight: 700; }

body.wh-hub .footer__inner { max-inline-size: var(--measure-wide); margin-inline: auto; }
body.wh-hub .footer__top { display: flex; flex-direction: column; align-items: center; gap: var(--sp-5); margin-block-end: var(--sp-6); }
body.wh-hub .footer__social { gap: var(--sp-5); }
body.wh-hub .footer__social a, body.wh-hub .footer__nav a, body.wh-hub .footer__consult a { display: inline-flex; align-items: center; min-block-size: 44px; color: var(--ink-soft); font-size: var(--fs-meta); }
body.wh-hub .footer__nav { padding-block: var(--sp-4); border-block: 1px solid var(--line-gold); margin-block-end: var(--sp-5); color: var(--ink-meta); text-align: center; }
body.wh-hub .footer__nav a { padding-inline: var(--sp-1); }
body.wh-hub .footer__consult { margin: 0 0 var(--sp-3); color: var(--ink-soft); text-align: center; }
body.wh-hub .footer__consult a { color: var(--ink); font-weight: 600; border-block-end: 1px solid var(--line-gold); }
body.wh-hub .footer__copy { margin: 0; color: var(--ink-meta); font-family: var(--font-en); font-size: var(--fs-caption); text-align: center; }

@media (hover: hover) {
  body.wh-hub .header__link:hover, body.wh-hub .footer__social a:hover, body.wh-hub .footer__nav a:hover { color: var(--ink); }
  body.wh-hub .wh-jump:hover, body.wh-hub .wh-leaf:hover { background: var(--paper); }
  body.wh-hub .wh-skill__more:hover, body.wh-hub .wh-consult__link:hover, body.wh-hub .footer__consult a:hover { border-block-end-color: var(--ink); }
}

@media (min-width: 768px) {
  body.wh-hub .wh-intro { padding-block: var(--sp-20) var(--sp-16); }
  body.wh-hub .wh-intro__grid { grid-template-columns: minmax(0, 1fr) minmax(240px, .55fr); gap: var(--sp-16); }
  body.wh-hub .wh-map img { margin-inline: 0; }
  body.wh-hub .wh-map figcaption { margin-inline: 0; }
  body.wh-hub .wh-jumps__links { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  body.wh-hub .footer__top { flex-direction: row; justify-content: space-between; }
}

@media (min-width: 1024px) {
  body.wh-hub .wh-skill-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 768px) {
  body.wh-hub .wh-map .wh-jumps__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  body.wh-hub .header__pill--desk, body.wh-hub .header__link--desk { display: none; }
  body.wh-hub .header__nav { gap: var(--sp-2); }
  body.wh-hub .header__rail { display: flex; align-items: center; gap: var(--sp-2); min-block-size: 44px; border-block-start: 1px solid var(--line-gold); overflow-x: auto; padding-inline: var(--gutter); scrollbar-width: none; white-space: nowrap; }
  body.wh-hub .header__rail::-webkit-scrollbar { display: none; }
}

@media (max-width: 599px) {
  body.wh-hub .wh-intro, body.wh-hub .wh-skills, body.wh-hub .wh-consult { padding-inline: var(--gutter); }
  body.wh-hub .wh-jumps { padding-inline: var(--gutter); }
  body.wh-hub .wh-jumps__links { grid-template-columns: 1fr; }
  body.wh-hub .wh-skill { padding: var(--sp-5); }
  body.wh-hub .wh-skill__head { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html:has(body.wh-hub) { scroll-behavior: auto !important; }
  body.wh-hub *, body.wh-hub *::before, body.wh-hub *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
