/* Editorial typography only. Product previews retain their own type systems. */
:is(.case-design, .case-standalone) {
  --case-editorial-font: var(--font-instrument-sans, "Instrument Sans"), "Helvetica Neue", Helvetica, Arial, sans-serif;
  --case-heading-font: var(--font-space-grotesk, "Space Grotesk"), "Helvetica Neue", Helvetica, Arial, sans-serif;
  --case-label-font: var(--font-space-mono, "Space Mono");
  --case-title-size: clamp(36px, 4.2vw, 52px);
  --case-section-size: clamp(30px, 3.2vw, 38px);
}
:is(.case-design, .case-standalone) :is(h1,h2,h3,h4,p,li,dt,dd,figcaption,blockquote):not(:where(.sentry-demo *, .sentry-preview-card *, .agent-film *, .agent-handoff-preview *, .rt-specimen *, .queue-flow *, .queue-concept-sketch *, .travel-glance *, .trace-watch *, pre *, code *)) {
  font-family:var(--case-editorial-font)!important;
}
:is(.case-design, .case-standalone) h1 {
  font-family:var(--case-heading-font)!important;
  font-size:var(--case-title-size)!important;
  font-weight:600!important;
  line-height:1.1!important;
  letter-spacing:-.05em!important; word-spacing:-.05em;
  text-wrap:balance;
}
:is(.case-design, .case-standalone) h2:not(:where(.sentry-demo *, .agent-handoff-preview *, .queue-flow *, .related-studies *)) {
  font-family:var(--case-heading-font)!important;
  font-size:var(--case-section-size)!important;
  font-weight:600!important;
  line-height:1.12!important;
  letter-spacing:-.05em!important; word-spacing:-.05em;
  text-wrap:balance;
}
:is(.case-design, .case-standalone) :is(h3,h4):not(:where(.sentry-demo *, .agent-handoff-preview *, .queue-flow *, .rt-specimen *)) {
  font-family:var(--case-heading-font)!important;
  font-size:26px!important;
  font-weight:600!important;
  line-height:1.15!important;
  letter-spacing:-.01em!important;
}
/* Reading copy fills the authored column; no new narrow text containers. */
:is(.case-design, .case-standalone) :is(.section-text,.ibm-section-text,.td-section-text,.fb-text,.trace-ecosystem-copy > p,.agent-story-opening > p:not(.agent-story-label),.agent-story-section > p:not(.agent-story-label),.se-chapter > p,.story-queue-solution > div > p) {
  font-size:16px!important;
  line-height:1.55!important;
  font-weight:400!important;
  letter-spacing:0!important;
}
:is(.case-design, .case-standalone) :is(.agent-story-insight strong,.user-quote-blue p,.key-insight p,.research-quote) {
  font-family:var(--case-editorial-font)!important;
  font-style:normal!important;
  font-weight:400!important;
  letter-spacing:-.015em!important;
  line-height:1.4!important;
}
:is(.case-design, .case-standalone) :is(.section-subtitle,.subsection-header,.attempt-summary,.attempt-body,.numbered-feature p,.decision-content p,.column p,.research-label,.research-value) {
  font-family:var(--case-editorial-font)!important;
}
@media(max-width:700px) {
  :is(.case-design, .case-standalone) :is(.section-text,.ibm-section-text,.td-section-text,.fb-text,.trace-ecosystem-copy > p,.agent-story-opening > p:not(.agent-story-label),.agent-story-section > p:not(.agent-story-label),.se-chapter > p,.story-queue-solution > div > p) { font-size:16px!important; line-height:1.6!important; }
}

/* Shared editorial patterns, calibrated against the Design Engineer reference. */
:is(.case-design,.case-standalone) {
  --editorial-surface:#f7f7f7;
  --editorial-border:#dedede;
  --editorial-copy:#555;
  --editorial-ink:#171717;
  --editorial-accent:#7250c8;
}
html[data-theme=dark] :is(.case-design,.case-standalone),
body.case-standalone[data-theme=dark] {
  --editorial-surface:#171717;
  --editorial-border:#303030;
  --editorial-copy:#b8b8b8;
  --editorial-ink:#fafafa;
}
:is(.case-design,.case-standalone) :is(.agent-decision-grid > div,.se-research-pair article,.se-split-audit article) {
  padding:24px!important;
  border:1px solid var(--editorial-border)!important;
  border-radius:4px!important;
  background:var(--editorial-surface)!important;
  box-shadow:none!important;
}
:is(.case-design,.case-standalone) :is(.agent-decision-grid,.se-research-pair,.se-split-audit) { gap:24px!important; }
:is(.case-design,.case-standalone) :is(.agent-decision-grid,.se-research-pair,.se-split-audit) h3 {
  font-size:24px!important; margin:0 0 12px!important; color:var(--editorial-ink)!important;
}
:is(.case-design,.case-standalone) :is(.agent-decision-grid,.se-research-pair,.se-split-audit) p {
  font-size:14px!important; line-height:1.55!important; color:var(--editorial-copy)!important; margin:0!important;
}
:is(.case-design,.case-standalone) :is(.agent-story-insight,.key-insight,.user-quote-blue) {
  background:var(--editorial-surface)!important;
  border:0!important; border-left:3px solid var(--editorial-accent)!important;
  border-radius:0 4px 4px 0!important;
  padding:clamp(24px,3vw,32px)!important; margin-block:32px!important;
  color:var(--editorial-ink)!important; box-shadow:none!important;
}
:is(.case-design,.case-standalone) :is(.agent-story-insight strong,.key-insight p,.user-quote-blue p) {
  font-size:clamp(20px,2vw,24px)!important; line-height:1.5!important;
  color:var(--editorial-ink)!important; font-style:normal!important;
}
:is(.case-design,.case-standalone) :is(.agent-learning-list,.story-lessons,.design-decisions) { display:grid; gap:32px!important; }
:is(.case-design,.case-standalone) :is(.agent-learning-list article,.story-lessons article,.decision-item) {
  background:none!important; border:0!important; box-shadow:none!important;
  padding:0!important; margin:0!important; border-radius:0!important;
  display:grid!important; grid-template-columns:24px minmax(0,1fr)!important; column-gap:20px!important;
}
:is(.case-design,.case-standalone) .story-lessons article::before {
  content:'↗'; color:var(--editorial-accent); font:24px/1.25 var(--case-editorial-font); grid-row:1 / 3;
}
:is(.case-design,.case-standalone) .story-lessons article > :is(h3,p) { grid-column:2; }
:is(.case-design,.case-standalone) :is(.agent-learning-list,.story-lessons,.decision-content) :is(h3,h4) {
  font-size:24px!important; line-height:1.1!important; margin:0 0 10px!important; color:var(--editorial-ink)!important;
}
:is(.case-design,.case-standalone) :is(.agent-learning-list,.story-lessons,.decision-content) p {
  font-size:16px!important; line-height:1.55!important; margin:0!important; color:var(--editorial-copy)!important;
}
:is(.case-design,.case-standalone) :is(.agent-learning-list article > svg,.decision-icon) {
  color:var(--editorial-accent)!important; background:none!important; border:0!important;
  width:24px!important; height:24px!important; padding:0!important;
}
:is(.case-design,.case-standalone) .agent-decision-symbol { color:var(--editorial-accent)!important; margin-bottom:24px!important; }
@media(max-width:700px) {
  :is(.case-design,.case-standalone) :is(.agent-decision-grid,.se-research-pair,.se-split-audit) { grid-template-columns:1fr!important; }
}
/* Substantial concept explanations use two columns; compact evidence uses three. */
.case-design .trace-case.travel-case.se-case-message-queuing .se-concept-decisions {
  display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:24px!important; overflow:visible!important;
}
.case-design .trace-case.travel-case.se-case-message-queuing .se-concept-decisions figure {
  padding:24px!important; background:var(--editorial-surface)!important; border:1px solid var(--editorial-border)!important; border-radius:4px!important;
}
.case-design .se-concept-decisions figcaption p { font-size:14px!important; line-height:1.55!important; }
@media(max-width:700px) {
  .case-design .trace-case.travel-case.se-case-message-queuing .se-concept-decisions { grid-template-columns:1fr!important; }
}

/* Apple Watch and Split Panel use the same editorial card roles. */
.case-design :is(.trace-insight-readings article,.se-component-contract article) {
  padding:24px!important;
  background:var(--editorial-surface)!important;
  border:1px solid var(--editorial-border)!important;
  border-radius:4px!important;
  color:var(--editorial-ink)!important;
}
.case-design :is(.trace-insight-readings,.se-component-contract) h3 {
  font-size:24px!important; font-weight:700!important;
  line-height:1.1!important; margin:0 0 12px!important;
  color:var(--editorial-ink)!important;
}
.case-design :is(.trace-insight-readings,.se-component-contract) p {
  font-size:14px!important; line-height:1.55!important;
  color:var(--editorial-copy)!important; margin:0!important;
}
.case-design .trace-has-navigation :is(.trace-problem-compact > p,.travel-evidence-copy > p) {
  font-size:16px!important; line-height:1.55!important;
}

/* Consistent editorial wayfinding: uppercase mono, with readable neutral ink. */
:is(.case-design,.case-standalone) { --editorial-muted:#686868; --editorial-accent:#6d28d9; }
html[data-theme=dark] :is(.case-design,.case-standalone) { --editorial-muted:#a3a3a3; --editorial-accent:#b497ff; }
.case-design .agent-story { --editorial-accent:#e64800; }
html[data-theme=dark] .case-design .agent-story { --editorial-accent:#ff6b24; }
.case-standalone { --editorial-accent:#e64800; }
html[data-theme=dark] .case-standalone { --editorial-accent:#ff6b24; }
:is(.case-design,.case-standalone) :is(.project-meta,.ibm-project-meta,.td-project-meta,.fb-meta,.section-label,.ibm-section-label,.td-section-label,.fb-label,.trace-kicker,.agent-story-label,.agent-segment-label,.info-item h4,.trace-project-facts dt,.agent-story-facts dt) {
  font-family:var(--case-label-font),monospace!important;
  font-size:11px!important; font-weight:500!important; line-height:1.5!important;
  letter-spacing:.08em!important; text-transform:uppercase!important;
  color:var(--editorial-muted)!important;
}
:is(.case-design,.case-standalone) :is(.tree-nav,.agent-story-tree,.sentry-story-tree,.trace-case-tree) a {
  font-family:var(--case-label-font),monospace!important;
  font-size:10px!important; font-weight:500!important; line-height:1.5!important;
  letter-spacing:.04em!important; text-transform:uppercase!important;
  color:var(--editorial-muted)!important;
}
:is(.case-design,.case-standalone) :is(.tree-nav,.agent-story-tree,.sentry-story-tree,.trace-case-tree) :is(a[aria-current],a:hover,a:focus-visible),
.case-standalone .tree-section.active > a { color:var(--editorial-ink)!important; }
:is(.case-design,.case-standalone) :is(.section-subtitle,.attempt-summary,.attempt-body,.column > p,.footer-credit,.se-caption,.se-source figcaption,.se-handle-study figcaption) { color:var(--editorial-muted)!important; }
/* Captions on fixed light artwork keep dark ink in both page themes. */
.case-standalone :is(.image-label,.quote-card .speaker) { color:#626262!important; }
.case-standalone a.story-block { color:var(--editorial-ink)!important; background:var(--editorial-surface)!important; }
.case-standalone a.story-block :is(h3,p,span) { color:inherit!important; }
.case-design .trace-case .trace-decision-scroll { --trace-ink:#1d1d1f; --trace-copy:#555; color:#1d1d1f; }
.case-design .trace-case .ts-color-bridge { color:var(--trace-copy)!important; }
/* Older case templates share the same navigation and metadata contrast. */
.case-design :is(.ibm-top-nav,.td-top-nav,.top-nav,.ibm-footer-links,.td-footer-links,.footer-links) :is(a,button),
.case-design :is(.td-nav-pills,.ibm-nav-pills,.nav-pills) :is(a,button) {
  color:var(--editorial-ink)!important;
}
.case-design :is(.ibm-tree-section-link,.td-tree-section-link,.tree-section-link,.tree-subsection-link) {
  color:var(--editorial-muted)!important;
}
.case-design :is(.ibm-info-item,.td-info-item,.fb-info-item) h4 {
  font-family:var(--case-label-font),monospace!important;
  font-size:11px!important; font-weight:500!important; line-height:1.5!important;
  letter-spacing:.08em!important; text-transform:uppercase!important; color:var(--editorial-muted)!important;
}
.case-design .agent-segment {
  background:var(--editorial-surface)!important; border:1px solid var(--editorial-border)!important;
  border-radius:4px!important; padding:24px!important;
}
.case-design .agent-segment p { color:var(--editorial-copy)!important; }
.case-design .image-label { color:var(--editorial-muted)!important; }
.case-standalone .image-container .image-label { color:var(--editorial-muted)!important; }
.case-design .se-concept-decisions figcaption { color:var(--editorial-copy)!important; }
.case-design .agent-study-page :is(p,nav a,.walkthrough-switch button,.walkthrough-caption button) { color:#625b55; }
.case-design .agent-study-page .walkthrough-step { opacity:1; }
.case-design .agent-study-page .agent-description { color:#625b55!important; }
/* Accent is editorial, not a recoloring of screenshots or product UI. */
.case-design :is(.ibm-highlight-icon,.ibm-locked-icon,.td-highlight-icon,.td-locked-icon),
.case-standalone :is(.decision-icon,.story-icon) { color:var(--editorial-accent)!important; }
.case-design :is(.ibm-main-content,.td-main-content) blockquote {
  border-left:3px solid var(--editorial-accent)!important;
  padding:24px!important; border-radius:0 4px 4px 0; background:var(--editorial-surface);
  color:var(--editorial-ink); font-style:normal;
}
.case-design:has(.agent-study-page) { background:var(--editorial-page-bg,#fff); }
html[data-theme=dark] .case-design:has(.agent-study-page) { --editorial-page-bg:#000; }
.case-design .agent-study-page { background:var(--editorial-page-bg,#fff); color:var(--editorial-ink); }
.case-design .agent-study-page > :is(header,nav,footer,.agent-study-notes) :is(p,a,span) { color:var(--editorial-muted)!important; }

.case-design :is(.ibm-key-insight,.td-key-insight) {
  border-left:3px solid var(--editorial-accent)!important;
  padding:24px!important; background:var(--editorial-surface)!important;
}
.case-design :is(.ibm-key-insight,.td-key-insight) p {
  color:var(--editorial-ink)!important; font-style:normal!important; line-height:1.55!important;
}
.case-design .td-disclaimer-icon-wrap svg { color:var(--editorial-accent)!important; }

/* Product specimens remain light; page theme is not a product-state toggle. */
.case-design .se-hero-art.se-hero-split-panel,
.case-design .se-hero-split-panel .se-hero-product { background:#fff!important; background-image:none!important; }
.case-design .se-handle-study figure > div { background:#fff!important; color:#302d38!important; border-color:#d7d4de; overflow:visible; }
.case-design .se-handle-study figure span { color:#302d38!important; }
.case-design .se-handle-study i { position:relative; background:#d7d4de; box-shadow:none; }
.case-design .se-handle-study [data-state="1"] i { background:#9d7aff; box-shadow:0 0 0 1px #cbb9ff; }
.case-design .se-handle-study [data-state="2"] i { background:#7951ff; box-shadow:0 0 0 3px #fff,0 0 0 5px #7951ff; border-radius:1px; }
.case-design .se-handle-study [data-state="3"] { grid-template-columns:1.25fr 1px .75fr; }
.case-design .se-handle-study [data-state="3"] i { background:#5934c4; box-shadow:0 0 0 2px #7951ff; }
.case-design .se-handle-study [data-state="3"] i::after { content:""; position:absolute; inset:calc(50% - 11px) -3px auto; height:22px; background:#5934c4; border-radius:3px; }
.case-design .se-component-contract { background:#fff!important; border-radius:4px!important; }
.case-design .se-component-contract article { background:#f6f5f8!important; border-color:#dfdce5!important; }
.case-design .se-component-contract :is(h3,p,.trace-kicker) { color:#302d38!important; }
.case-design .sentry-split .split-divider:hover::before { background:#a78bfa; box-shadow:0 0 0 1px #cbb9ff; }
.case-design .sentry-split .split-divider:focus-visible::before { background:#7951ff; box-shadow:0 0 0 3px #fff,0 0 0 5px #7951ff; }
.case-design .sentry-split .split-divider.is-dragging::before { background:#5934c4; box-shadow:0 0 0 2px #7951ff; }

/* Each takeaway has its own small diagram. */
:is(.case-design,.case-standalone) .story-lessons article::before { content:none; }
.case-design .story-lessons .editorial-idea-icon { width:24px; height:24px; color:var(--editorial-accent); grid-column:1; grid-row:1 / 3; margin-top:2px; }

/* Research notes retain paper color, independently of the page theme. */
.case-design .agent-story .agent-segment,
.case-design .agent-story .agent-segment:nth-child(2) {
  background:#ffff99!important; border:1px solid #e0e080!important; border-radius:2px!important;
  box-shadow:0 4px 0 #dddd78,0 12px 24px #00000012!important;
}
.case-design .agent-story .agent-segment :is(h4,dt,strong) { color:#332d23!important; }
.case-design .agent-story .agent-segment :is(p,dd,span) { color:#594e31!important; }
.case-design .agent-story .agent-segment .agent-segment-label { color:#706039!important; }
.case-design .agent-story { --editorial-accent:#7733e8; }
html[data-theme=dark] .case-design .agent-story { --editorial-accent:#b889ff; }

/* Research evidence stays in the reading flow, with a restrained numeric accent. */
.case-design .agent-configuration-stat { margin:32px 0; padding:0; max-width:68ch; }
.case-design .agent-configuration-stat h3 { font-size:24px!important; line-height:1.3!important; letter-spacing:-.015em; margin:0 0 12px; color:var(--editorial-ink); text-wrap:pretty; }
.case-design .agent-configuration-stat h3 span { color:var(--editorial-accent); }
.case-design .agent-configuration-stat > p { font-size:16px; line-height:1.55; color:var(--editorial-copy); margin:0; }
.case-standalone .technical-question-card {
  position:relative; padding:40px; margin:32px 0; border:1px solid var(--editorial-border); border-radius:4px;
  background:var(--editorial-surface); color:var(--editorial-ink);
}
.case-standalone .technical-question-card::before,.case-standalone .technical-question-card::after {
  content:""; position:absolute; width:24px; height:24px; border-color:var(--editorial-accent); border-style:solid;
}
.case-standalone .technical-question-card::before { top:12px; left:12px; border-width:1px 0 0 1px; }
.case-standalone .technical-question-card::after { bottom:12px; right:12px; border-width:0 1px 1px 0; }
.case-standalone .technical-question-card > p { font-size:28px!important; font-weight:500; line-height:1.25!important; letter-spacing:-.02em; max-width:36ch; margin:16px 0; color:var(--editorial-ink)!important; }
.case-standalone .technical-question-detail { display:block; max-width:62ch; font-size:14px; line-height:1.55; color:var(--editorial-copy); }
@media(max-width:600px) {
 .case-standalone .technical-question-card { padding:32px 24px; }
 .case-standalone .technical-question-card > p { font-size:24px!important; }
}
.case-design .se-hero-split-panel .split-reference-preview { background:#fff!important; }

/* Restore the original treatment for this participant quote only. */
.case-standalone :is(blockquote.font-research-quote,.font-original-question) {
  background:transparent!important; border:0!important;
  border-left:3px solid var(--figma-blue)!important; border-radius:0!important;
  padding:0 0 0 var(--space-lg)!important; margin:var(--space-xl) 0!important;
}
.case-standalone :is(blockquote.font-research-quote,.font-original-question) p {
  font-family:"Source Serif 4",Georgia,serif!important;
  font-size:var(--font-subsection)!important; font-style:italic!important;
  font-weight:400!important; line-height:1.5!important; letter-spacing:normal!important;
  color:var(--text-primary)!important; margin:0!important;
}

/* FontContext uses bright orange for editorial marks, not card surfaces. */
body.case-fontcontext,
html[data-theme=dark] body.case-fontcontext {
  --editorial-accent:#ff5a00;
  /* One accent only: the Figma blue tokens resolve to the orange family so tiles, rules and buttons match the icons. */
  --figma-blue:#ff5a00; --figma-blue-hover:#e04f00; --figma-blue-50:rgba(255,90,0,.5);
  /* Tinted surfaces (icon tiles, research block) are neutral light grey, not an orange wash. */
  --figma-blue-light:#f4f4f6;
}
html[data-theme=dark] body.case-fontcontext { --figma-blue-light:rgba(255,255,255,.07); }
.case-fontcontext .attempt-visual svg,
.case-fontcontext :is(.stat-icon,.metric-icon,.bolt-icon,.decision-icon,.story-icon) {
  color:var(--editorial-accent)!important;
}
.case-fontcontext :is(.font-research-quote,.font-original-question) {
  border-left-color:var(--editorial-accent)!important;
}

/* In-page type test (?typetest=1): the switcher writes these variables on <html>. */
html[data-type] :is(.case-design,.case-standalone) { --case-heading-font: var(--tt-heading); --case-editorial-font: var(--tt-body); --case-label-font: var(--tt-label); }
html[data-type] :is(.case-design,.case-standalone) :is(h1,h2,h3,h4) { font-weight: var(--tt-heading-weight, 600) !important; font-style: var(--tt-heading-style, normal); }
html[data-type] .case-design h1 { font-family: var(--tt-heading) !important; }


/* Contact links stand alone, without a credit line or decorative divider. */
.portfolio-contact-footer { border-top:0!important;justify-content:flex-end!important; }
