/* Spec → Hardware. Load after site.css; shared company chrome stays intact. */
.spec-home, .spec-about {
  color: var(--ink, #151c29);
  background: var(--paper, #fff);
  font-family: var(--font, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif);
  line-height: 1.65;
}
:is(.spec-home, .spec-about) :is(section, article, figure, div)[id] { scroll-margin-top: 104px; }
:is(.spec-home, .spec-about) :is(h1, h2, h3) { text-wrap: balance; }
:is(.spec-home, .spec-about) :is(p, li, figcaption) { overflow-wrap: anywhere; }
:is(.spec-home, .spec-about) .spec-section { padding-block: 64px; }
:is(.spec-home, .spec-about) .spec-section-soft { background: var(--soft, #f5f7fa); }
:is(.spec-home, .spec-about) .spec-section-head { max-width: 820px; margin-bottom: 28px; }
:is(.spec-home, .spec-about) .spec-section-head h2 { margin-top: 9px; font-size: 36px; line-height: 1.2; letter-spacing: -1.05px; }
:is(.spec-home, .spec-about) .spec-section-head > p:not(.spec-kicker) { max-width: 760px; margin-top: 14px; color: var(--muted, #626a76); font-size: 16px; }
:is(.spec-home, .spec-about) .spec-kicker { color: var(--accent, #0866dd); font-size: 12px; line-height: 1.5; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
:is(.spec-home, .spec-about) .spec-lead { max-width: 780px; margin-top: 23px; color: var(--muted, #626a76); font-size: 18px; line-height: 1.7; }
:is(.spec-home, .spec-about) .spec-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 27px; }
:is(.spec-home, .spec-about) .spec-actions .button { gap: 12px; }
:is(.spec-home, .spec-about) .spec-credentials { margin-top: 20px; max-width: 780px; color: var(--muted, #626a76); font-size: 13px; }
.spec-home .spec-hero { padding-block: 64px 48px; }
.spec-home .spec-hero { display: grid; grid-template-columns: .85fr 1.15fr; gap: 40px; align-items: start; }
.spec-home .spec-hero-copy { min-width: 0; }
.spec-home .spec-subhead { margin-top: 20px; font-size: 24px; line-height: 1.35; letter-spacing: -.4px; }
.spec-home .spec-context { margin-top: 20px; color: var(--muted); font-size: 14px; }
.spec-home .spec-hero h1 { max-width: 1040px; margin-top: 19px; font-size: 64px; line-height: 1.08; letter-spacing: -2.7px; }
.spec-home .spec-hero h1 span { color: var(--accent, #0866dd); }
.spec-home .spec-evidence { padding-block: 0; }
.spec-home .spec-evidence > .container > h2, .spec-home .spec-evidence h2 { font-size: 23px; line-height: 1.3; letter-spacing: -.5px; }
.spec-home .spec-evidence > p { max-width: 780px; margin-top: 8px; color: var(--muted, #626a76); font-size: 14px; }
.spec-home .spec-wall { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 22px; }
.spec-home .spec-tile { min-width: 0; margin: 0; border: 1px solid var(--line, #e2e6ed); border-radius: 12px; overflow: hidden; background: #fff; }
.spec-home .spec-tile figure { margin: 0; }
.spec-home .spec-tile > a, .spec-home .spec-tile figure > a { display: block; background: #fff; }
.spec-home .spec-tile img { display: block; width: 100%; height: 150px; padding: 8px; object-fit: contain; }
.spec-home .spec-tile figcaption { margin: 0; padding: 13px 15px 15px; border-top: 1px solid var(--line, #e2e6ed); }
.spec-home .spec-tile figcaption strong { display: block; color: var(--ink, #151c29); font-size: 14px; line-height: 1.45; font-weight: 600; }
.spec-home .spec-tile figcaption span { display: block; margin-top: 4px; color: var(--muted, #626a76); font-size: 12px; line-height: 1.5; }
.spec-home .spec-tile a:hover { background: #fafcff; }
.spec-home .spec-tile a:focus-visible { outline-offset: -4px; }
.spec-home .spec-offers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.spec-home .spec-offer { display: flex; flex-direction: column; min-width: 0; padding: 29px; border: 1px solid var(--line, #e2e6ed); border-radius: 16px; background: #fff; }
.spec-home .spec-offer-number { color: var(--accent, #0866dd); font-size: 12px; line-height: 1.5; font-weight: 600; letter-spacing: .05em; }
.spec-home .spec-offer-body { flex: 1; }
.spec-home .spec-offer-body h3, .spec-home .spec-offer > h3 { margin-top: 16px; font-size: 27px; line-height: 1.2; letter-spacing: -.65px; }
.spec-home .spec-offer-body > p, .spec-home .spec-offer > p:not(.spec-offer-number) { margin-top: 14px; color: var(--muted, #626a76); font-size: 15px; }
.spec-home .spec-offer ul { margin: 20px 0 0; padding-left: 20px; font-size: 14px; }
.spec-home .spec-offer li { padding-left: 3px; }
.spec-home .spec-offer li + li { margin-top: 8px; }
.spec-home .spec-offer li::marker { color: var(--accent, #0866dd); }
.spec-home .spec-offer-actions { display: flex; align-items: stretch; gap: 12px; margin-top: auto; padding-top: 25px; }
.spec-home .spec-offer-actions .button { width: 100%; min-height: 48px; gap: 12px; }
.spec-home .spec-cases { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.spec-home .spec-case { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--line, #e2e6ed); border-radius: 14px; overflow: hidden; background: #fff; }
.spec-home .spec-case > figure, .spec-home .spec-case > a, .spec-home .spec-native-figure { display: block; margin: 0; background: #fff; }
.spec-home .spec-case figure > a { display: block; }
.spec-home .spec-case img { display: block; width: 100%; height: 240px; object-fit: contain; padding: 14px; background: #fff; }
.spec-home .spec-case figcaption { margin: 0; padding: 10px 20px; font-size: 12px; line-height: 1.5; border-top: 1px solid var(--line, #e2e6ed); }
.spec-home .spec-case-copy { display: flex; flex-direction: column; flex: 1; padding: 23px; border-top: 1px solid var(--line, #e2e6ed); }
.spec-home .spec-case-copy h3 { font-size: 23px; line-height: 1.25; letter-spacing: -.5px; margin-top: 10px; }
.spec-home .spec-case-copy > p:not(.spec-evidence-type) { color: var(--muted, #626a76); font-size: 14px; margin-top: 13px; }
.spec-home .spec-case-copy .text-link { margin-top: auto; padding-top: 18px; }
:is(.spec-home, .spec-about) .spec-evidence-type { color: var(--accent, #0866dd); font-size: 11px; line-height: 1.5; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.spec-home .spec-team-strip { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 28px; align-items: center; margin-top: 26px; border-block: 1px solid var(--line, #e2e6ed); padding-block: 21px; }
.spec-home .spec-team-strip h3 { font-size: 18px; line-height: 1.4; }
.spec-home .spec-team-strip p { max-width: 780px; margin-top: 5px; color: var(--muted, #626a76); font-size: 14px; }
.spec-home .spec-team-strip a { color: var(--accent, #0866dd); font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.spec-home .spec-method { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; counter-reset: spec-step; }
.spec-home .spec-method-step { min-width: 0; padding-top: 17px; border-top: 2px solid var(--accent, #0866dd); }
.spec-home .spec-method-step > span { display: block; color: var(--accent, #0866dd); font-size: 12px; font-weight: 600; }
.spec-home .spec-method-step h3 { margin-top: 11px; font-size: 18px; line-height: 1.35; }
.spec-home .spec-method-step p { margin-top: 9px; color: var(--muted, #626a76); font-size: 14px; }
.spec-home .spec-founder { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: 48px; align-items: center; }
.spec-home .spec-founder figure { margin: 0; min-width: 0; }
.spec-home .spec-founder img { display: block; width: 100%; height: 240px; object-fit: contain; }
.spec-home .spec-founder figcaption { font-size: 12px; margin-top: 8px; text-align: center; }
.spec-home .spec-founder-copy { min-width: 0; }
.spec-home .spec-founder h2 { font-size: 30px; line-height: 1.25; letter-spacing: -.7px; margin-top: 8px; }
.spec-home .spec-founder-copy > p:not(.spec-kicker) { margin-top: 14px; color: var(--muted, #626a76); font-size: 15px; }
.spec-home .spec-founder .text-link { margin-top: 17px; }
:is(.spec-home, .spec-about) .spec-contact { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); gap: 65px; align-items: start; }
:is(.spec-home, .spec-about) .spec-contact > div > p { max-width: 480px; color: var(--muted, #626a76); font-size: 15px; }
:is(.spec-home, .spec-about) .spec-contact .spec-section-head { margin-bottom: 18px; }
.spec-about .spec-about-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: 48px; align-items: center; padding-block: 56px; }
.spec-about .spec-about-hero h1 { max-width: 780px; font-size: 48px; line-height: 1.13; letter-spacing: -1.9px; margin-top: 14px; }
.spec-about .spec-about-hero figure { min-width: 0; margin: 0; }
.spec-about .spec-about-hero img { display: block; width: 100%; height: 260px; object-fit: contain; }
.spec-about .spec-about-hero figcaption { font-size: 12px; text-align: center; }
.spec-about .spec-about-copy { min-width: 0; }
.spec-about .spec-breadth { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-top: 25px; padding: 0; list-style: none; }
.spec-about .spec-breadth > :is(span, li, div) { border-top: 2px solid var(--line, #e2e6ed); padding-top: 12px; font-size: 13px; font-weight: 600; }
.spec-about .spec-about-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 45px; }
.spec-about .spec-about-row + .spec-about-row { margin-top: 40px; padding-top: 40px; border-top: 1px solid var(--line, #e2e6ed); }
.spec-about .spec-about-row h3 { margin-top: 9px; font-size: 25px; line-height: 1.3; letter-spacing: -.5px; }
.spec-about .spec-about-row p:not(.spec-kicker):not(.spec-evidence-type) { color: var(--muted, #626a76); font-size: 15px; margin-top: 14px; }
.spec-about .spec-about-row figure { min-width: 0; margin: 0; }
.spec-about .spec-about-row figure > a { display: block; border: 1px solid var(--line, #e2e6ed); border-radius: 10px; background: #fff; overflow: hidden; }
.spec-about .spec-about-row img { display: block; width: 100%; max-height: 320px; object-fit: contain; padding: 12px; }
.spec-about .spec-about-row figcaption { font-size: 12px; line-height: 1.6; margin-top: 9px; }
.spec-about .spec-about-row .text-link { margin-top: 15px; }
.spec-about .spec-judgments { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.spec-about .spec-judgments > article { min-width: 0; border-top: 2px solid var(--accent, #0866dd); padding-top: 18px; }
.spec-about .spec-judgments h3 { font-size: 20px; line-height: 1.35; }
.spec-about .spec-judgments p { color: var(--muted, #626a76); font-size: 14px; margin-top: 12px; }
.spec-about .spec-record-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.spec-about .spec-record-links > a { display: flex; flex-direction: column; min-width: 0; padding: 20px; border: 1px solid var(--line, #e2e6ed); border-radius: 10px; color: var(--accent, #0866dd); background: #fff; font-size: 15px; font-weight: 600; }
.spec-about .spec-record-links strong { font-size: 16px; line-height: 1.4; }
.spec-about .spec-record-links span { margin-top: 8px; color: var(--muted, #626a76); font-size: 13px; font-weight: 400; }
.spec-about .spec-record-links > a:hover { border-color: #a3bfe6; }
@media (max-width: 960px) {
  .spec-home .spec-hero h1 { font-size: 55px; }
  .spec-home .spec-founder, .spec-about .spec-about-hero, .spec-about .spec-about-row { gap: 30px; }
  :is(.spec-home, .spec-about) .spec-contact { gap: 35px; }
  .spec-about .spec-breadth { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  :is(.spec-home, .spec-about) .spec-section { padding-block: 44px; }
  :is(.spec-home, .spec-about) .spec-section-head { margin-bottom: 23px; }
  :is(.spec-home, .spec-about) .spec-section-head h2 { font-size: 28px; line-height: 1.25; letter-spacing: -.7px; }
  :is(.spec-home, .spec-about) .spec-section-head > p:not(.spec-kicker) { font-size: 15px; margin-top: 12px; }
  :is(.spec-home, .spec-about) .spec-lead { font-size: 16px; margin-top: 19px; }
  :is(.spec-home, .spec-about) .spec-actions { margin-top: 22px; gap: 12px 18px; }
  :is(.spec-home, .spec-about) .spec-credentials { font-size: 12px; margin-top: 17px; }
  .spec-home .spec-hero { padding-block: 44px 34px; }
  .spec-home .spec-hero { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .spec-home .spec-subhead { font-size: 20px; margin-top: 14px; }
  .spec-home .spec-hero .spec-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .spec-home .spec-hero .spec-actions .button { font-size: 13px; padding: 10px; gap: 6px; }
  .spec-home .spec-hero h1 { font-size: 38px; line-height: 1.12; letter-spacing: -1.4px; margin-top: 16px; }
  .spec-home .spec-evidence { padding-bottom: 42px; }
  .spec-home .spec-evidence h2 { font-size: 21px; }
  .spec-home .spec-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 19px; }
  .spec-home .spec-tile img { height: 145px; padding: 7px; }
  .spec-home .spec-tile figcaption { padding: 10px; }
  .spec-home .spec-tile figcaption strong { font-size: 14px; }
  .spec-home .spec-tile figcaption span { font-size: 12px; }
  .spec-home .spec-offers, .spec-home .spec-cases { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .spec-home .spec-offer { padding: 23px; }
  .spec-home .spec-offer-body h3, .spec-home .spec-offer > h3 { font-size: 25px; }
  .spec-home .spec-offer-actions { padding-top: 22px; }
  .spec-home .spec-case img { height: 180px; padding: 10px; }
  .spec-home .spec-case-copy { padding: 21px; }
  .spec-home .spec-case-copy h3 { font-size: 22px; }
  .spec-home .spec-team-strip { grid-template-columns: minmax(0, 1fr); gap: 13px; padding-block: 20px; margin-top: 22px; }
  .spec-home .spec-method { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 23px 18px; }
  .spec-home .spec-method-step h3 { font-size: 17px; }
  .spec-home .spec-founder { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .spec-home .spec-founder figure { order: 2; }
  .spec-home .spec-founder-copy { order: 1; }
  .spec-home .spec-founder h2 { font-size: 27px; }
  .spec-home .spec-founder img { height: 240px; }
  :is(.spec-home, .spec-about) .spec-contact { grid-template-columns: minmax(0, 1fr); gap: 27px; }
  .spec-about .spec-about-hero { grid-template-columns: minmax(0, 1fr); gap: 25px; padding-block: 42px; }
  .spec-about .spec-about-hero h1 { font-size: 38px; letter-spacing: -1.35px; }
  .spec-about .spec-about-hero figure { order: 2; }
  .spec-about .spec-about-copy { order: 1; }
  .spec-about .spec-about-hero img { height: 240px; }
  .spec-about .spec-breadth { gap: 16px 14px; margin-top: 22px; }
  .spec-about .spec-breadth > :is(span, li, div) { font-size: 12px; }
  .spec-about .spec-about-row { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .spec-about .spec-about-row + .spec-about-row { margin-top: 30px; padding-top: 30px; }
  .spec-about .spec-about-row > figure { order: 2; }
  .spec-about .spec-about-row > :not(figure) { order: 1; }
  .spec-about .spec-about-row h3 { font-size: 23px; }
  .spec-about .spec-about-row img { max-height: 320px; padding: 8px; }
  .spec-about .spec-judgments, .spec-about .spec-record-links { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .spec-about .spec-record-links > a { padding: 18px; }
}
.spec-home .spec-case-intro, .spec-case-intro { padding-block: 58px 28px; }
.spec-case-intro h1 { font-size: clamp(36px, 4vw, 54px); line-height: 1.15; letter-spacing: -1.6px; max-width: 850px; margin: 18px 0; }
.spec-case-intro .text-link { margin-top: 24px; }
.spec-about .spec-team-quote { max-width: 780px; margin: 34px 0 0; border-left: 3px solid var(--accent); padding-left: 22px; }
.spec-about .spec-team-quote blockquote { margin: 0; font-size: 19px; }
.spec-about .spec-team-quote figcaption { color: var(--muted); font-size: 13px; margin-top: 10px; }
.spec-about .spec-judgment-title { margin-top: 30px; font-size: 21px; }
.spec-about .spec-about-contact { margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--line); }
.spec-preserved-scenes details { margin-top: 24px; }
.spec-preserved-scenes summary { color: var(--accent); font-size: 16px; cursor: pointer; margin-bottom: 24px; }
.spec-about .spec-story-index { margin-top: 28px; font-size: 14px; }
.spec-about .spec-story-index summary { cursor: pointer; color: var(--accent); }
.spec-about .spec-story-index nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; margin-top: 20px; }
.spec-about .spec-story-index a { text-decoration: underline; color: var(--accent); }
@media (prefers-reduced-motion: reduce) {
  html:has(.spec-home), html:has(.spec-about), html.spec-home, html.spec-about { scroll-behavior: auto; }
  :is(.spec-home, .spec-about) *, :is(.spec-home, .spec-about) *::before, :is(.spec-home, .spec-about) *::after { animation: none !important; transition: none !important; }
}
