/* The established navigation and hero remain in style.css.
   These surfaces use the neutral colours sampled from the app icon. */
.editorial, .topic-page main, .foot {
  --ink: #252526; --ink-2: #5a5858; --ink-3: #645f5c;
  --paper: #f5f3f0; --paper-2: #eae5df; --fill: #eae5df;
  --hairline: #c9c3bd; --hairline-soft: #ded8d1;
  color: var(--ink); background: var(--paper);
}
[data-theme="dark"] :is(.editorial, .topic-page main, .foot) {
  --ink: #ded8d1; --ink-2: #bbb5b0; --ink-3: #a7a19c;
  --paper: #1a1a1a; --paper-2: #252526; --fill: #2f2e30;
  --hairline: #595658; --hairline-soft: #3d3a3c;
}
.editorial { margin-top: clamp(64px,8vw,112px); }
:is(.editorial, .topic-page main, .foot) .wrap { max-width: 1360px; width: min(100% - clamp(22px,5vw,72px)*2, 1360px); }
:is(.editorial, .topic-page main) section { padding-block: clamp(64px,8vw,120px); }
:is(.editorial, .topic-page main) :is(h1,h2,h3) { text-transform: none; letter-spacing: -.04em; font-weight: 550; line-height: 1.14; }
:is(.editorial, .topic-page main) :is(h1,h2) { font-size: clamp(2.2rem,4.25vw,4.4rem); }
:is(.editorial, .topic-page main) h3 { font-size: 1.25rem; }
:is(.editorial, .topic-page main) :is(p,li,dd) { text-wrap: pretty; }
:is(.editorial, .topic-page main) :is(h1,h2,h3,p,li,dd) { overflow-wrap: normal; word-break: normal; hyphens: none; }
[data-lang="ko"] :is(.editorial, .topic-page main) :is(h1,h2,h3,p,li,dd) { word-break: keep-all; }
.editorial [hidden] { display: none !important; }
.editorial figure { margin: 0; }
.section-index { font: .75rem/1.5 var(--mono); color: var(--ink-3); letter-spacing: .025em; margin-bottom: 28px; }
.section-heading { display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; gap: clamp(32px,7vw,100px); margin-bottom: 48px; }
.section-desc { color: var(--ink-2); font-size: 1.0625rem; line-height: 1.75; max-width: 48ch; }
.editorial .workspace-band {
  --ink: #ded8d1; --ink-2: #bcb6b0; --ink-3: #a7a19c;
  --paper: #1a1a1a; --paper-2: #252526; --fill: #2f2e30;
  --hairline: #595658; --hairline-soft: #3d3a3c;
  background: var(--paper); color: var(--ink); padding-bottom: 64px;
}
.workspace-toolbar { display: flex; align-items: center; gap: 18px; padding-block: 16px; border-block: 1px solid var(--hairline); }
.platform-tabs { display: flex; gap: 24px; }
.platform-tabs button { color: var(--ink-2); font: .9375rem var(--font); min-height: 44px; padding: 8px 0; border: 0; border-bottom: 1px solid transparent; background: transparent; cursor: pointer; }
.platform-tabs button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--ink); }
.workspace-panel { padding: clamp(12px,2.8vw,40px); background: #171718; }
.workspace-panel .flow-app { margin: 0; width: 100%; aspect-ratio: 16/9; object-fit: contain; border-radius: 0; box-shadow: none; }
.workspace-panel .flow-app:hover, .workspace-panel .flow-app:active { transform: none; box-shadow: none; }
.feature-story + .feature-story { border-top: 1px solid var(--hairline); }
.feature-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.8fr); gap: clamp(40px,7vw,100px); align-items: center; }
.feature-layout.feature-reverse { grid-template-columns: minmax(0,.8fr) minmax(0,1.25fr); }
.feature-visual { min-width: 0; }
.feature-copy > p { margin-top: 24px; color: var(--ink-2); font-size: 1.0625rem; line-height: 1.75; }
.feature-copy > .feature-note { border-top: 1px solid var(--hairline); padding-top: 24px; font-size: .875rem; }
.print-story { background: var(--paper-2); }
.editorial .download, .topic-page main .download { background: var(--paper-2); }
.download-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; }
.download-heading .section-desc { margin-top: 26px; max-width: 55ch; }
.download-heading > img { margin-top: 40px; }
.download-platforms { display: grid; grid-template-columns: 1fr 1fr; border-block: 1px solid var(--hairline); margin-top: 48px; }
.download-platform { min-width: 0; padding: 32px 48px 32px 0; }
.download-platform + .download-platform { border-left: 1px solid var(--hairline); padding-left: 48px; padding-right: 0; }
.platform-top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 20px; }
:is(.editorial, .topic-page main) .platform-top :is(h2,h3) { font-size: 1.25rem; }
.platform-release { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: flex-end; gap: 6px 12px; margin-left: auto; font: .8125rem var(--mono); color: var(--ink-2); }
.platform-top [data-release-notes] { padding-block: 8px; color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.platform-top [data-release-notes]:hover { color: var(--ink); }
.download-platform > p { font-size: .9375rem; margin-top: 12px; color: var(--ink-2); }
:is(.editorial, .topic-page main) .download-platform .btn { width: 100%; display: flex; justify-content: space-between; gap: 12px; padding-block: 12px; margin-top: 26px; min-height: 54px; border-radius: 3px; font-size: .9375rem; line-height: 1.5; white-space: normal; text-align: left; background: var(--ink); color: var(--paper); }
.download-platform .btn > span:first-child { min-width: 0; }
.download-platform .btn > span[aria-hidden] { flex-shrink: 0; }
.download-platform code { display: block; overflow-wrap: anywhere; margin-top: 15px; color: var(--ink-3); font-size: .75rem; }
.download-notes { margin-top: 25px; display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,.6fr); gap: 20px 64px; font-size: .875rem; color: var(--ink-2); align-items: start; }
.download-notes summary { padding: 7px 0; min-height: 44px; cursor: pointer; color: var(--ink); }
.download-install-copy { padding-bottom: 12px; font-size: 1rem; line-height: 1.8; }
.download-install-copy p + p { margin-top: 18px; }
.download-resources { padding-top: 7px; font-size: .9375rem; line-height: 1.8; }
.download-notes a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.download-more { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 18px; }
.download-more a { padding-block: 7px; }
/* The dedication retains the README text and date link. */
.dedication { border-top: 1px solid var(--hairline); }
.dedication-layout { max-width: 820px; }
.dedication blockquote { margin: 30px 0; font-size: clamp(1.5rem,2.8vw,2.65rem); line-height: 1.5; letter-spacing: -.03em; word-break: keep-all; text-wrap: pretty; }
.dedication blockquote b { font-weight: 500; }
[data-lang="ja"] .dedication blockquote,
[data-lang="zh"] .dedication blockquote { word-break: normal; line-break: strict; letter-spacing: 0; }
.dedication .dedication-date { font: .8125rem var(--mono); color: var(--ink-3); }
/* Keep a touch exit visible when a short viewport makes the menu scroll. */
.nav-sheet { scroll-padding-top: max(72px, calc(env(safe-area-inset-top) + 60px)); }
.nav-sheet-bar { position: sticky; top: 0; z-index: 1; background: var(--paper); }
.shot-lightbox-close { width: 44px; height: 44px; z-index: 1; }
.shot-lightbox:is([data-image-state="loading"], [data-image-state="error"]) .shot-lightbox-image { visibility: hidden; }
.shot-lightbox-feedback { position: absolute; inset: 64px 24px 88px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; pointer-events: none; color: #ded8d1; text-align: center; }
.shot-lightbox-feedback p { max-width: 32ch; margin: 0; font-size: 1rem; line-height: 1.6; word-break: keep-all; text-wrap: pretty; }
.shot-lightbox-feedback button { min-height: 44px; padding: 8px 20px; border: 1px solid #77716b; border-radius: 24px; color: inherit; background: #1a1a1a; font: inherit; cursor: pointer; pointer-events: auto; }
.shot-lightbox-feedback button[hidden] { display: none; }
.shot-lightbox-feedback button:hover { background: #2f2e30; }
.shot-lightbox.has-gallery { padding-bottom: max(88px, calc(env(safe-area-inset-bottom) + 72px)); }
.shot-lightbox.has-gallery .shot-lightbox-image { max-height: calc(100dvh - max(16px, env(safe-area-inset-top)) - max(88px, calc(env(safe-area-inset-bottom) + 72px))); }
.shot-lightbox.has-gallery .shot-lightbox-image { touch-action: pan-y pinch-zoom; cursor: grab; }
.shot-lightbox.has-gallery .shot-lightbox-image:active { cursor: grabbing; }
.shot-lightbox-navigation { position: absolute; z-index: 1; left: 50%; bottom: max(16px, env(safe-area-inset-bottom)); transform: translateX(-50%); display: flex; align-items: center; gap: 24px; color: #ded8d1; }
.shot-lightbox-navigation[hidden] { display: none; }
.shot-lightbox-navigation button { width: 44px; height: 44px; padding: 0; border: 1px solid #77716b; border-radius: 50%; color: inherit; background: #1a1a1a; font-size: 1.25rem; cursor: pointer; }
.shot-lightbox-navigation button:disabled { color: #77716b; border-color: #595658; cursor: default; }
.shot-lightbox-navigation button:hover:not(:disabled) { background: #2f2e30; }
#shotLightboxCount { min-width: 7ch; text-align: center; font: .8125rem var(--mono); white-space: nowrap; }

/* Shared detail pages use a reading column and the same picture controls. */
.topic-page main > section:first-of-type { padding-top: clamp(54px,7vw,100px); }
.topic-page main .wrap { max-width: 1160px; }
.topic-page main .lede { font-size: 1.125rem; max-width: 65ch; line-height: 1.75; margin-top: 26px; }
.topic-page main section + section { border-top: 1px solid var(--hairline); }
.topic-page main :is(.tool p,.gm-card p,.faq-card p,.why dd,.flow p) { font-size: 1rem; line-height: 1.75; }
.topic-page main .faq-grid { background: none; gap: 0 48px; }
.topic-page main .faq-card { padding: 28px 0; border-bottom: 1px solid var(--hairline); background: none; }
.product-workspaces { margin-top: 48px; }
.product-workspace { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.6fr); gap: clamp(32px,5vw,64px); align-items: start; padding-block: 36px 56px; border-top: 1px solid var(--hairline); }
.topic-page main .product-copy h2 { font-size: clamp(1.5rem,2.5vw,2rem); line-height: 1.3; letter-spacing: -.03em; }
.product-copy > p { margin-top: 22px; font-size: 1rem; line-height: 1.8; color: var(--ink-2); }
.product-points { list-style: none; margin: 24px 0 0; padding: 0; }
.product-points li { padding-block: 10px; border-top: 1px solid var(--hairline-soft); font-size: .9375rem; line-height: 1.7; color: var(--ink-2); }
.product-links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 20px; font-size: .9375rem; }
.product-links a { padding-block: 8px; }
.product-links a, .product-support a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.topic-page main .product-workspace .capture { margin: 0; }
.product-support { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 64px; padding-top: 28px; border-top: 1px solid var(--hairline); }
.product-support p { font-size: 1rem; line-height: 1.8; color: var(--ink-2); }
.product-workspace .file-format { white-space: nowrap; }
@media (max-width: 1000px) {
  .product-workspace { grid-template-columns: 1fr; }
  .product-points { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
}
@media (max-width: 740px) {
  .product-points, .product-support { grid-template-columns: 1fr; gap: 0; }
  .product-support { gap: 20px; }
}
.topic-page main .head { margin-bottom: 32px; }
.development-base { display: grid; grid-template-columns: minmax(0,.6fr) minmax(0,1.4fr); gap: 48px; margin-top: 56px; padding-block: 32px; border-block: 1px solid var(--hairline); }
.topic-page main :is(.development-base,.development-options) h2 { font-size: clamp(1.5rem,2vw,1.875rem); line-height: 1.3; letter-spacing: -.025em; }
:is(.development-base,.development-options,.development-output) > p { color: var(--ink-2); font-size: 1rem; line-height: 1.75; }
.development-options { margin-top: 48px; }
.development-options > p { margin-top: 24px; max-width: 72ch; }
.development-targets { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 48px; margin-top: 28px; border-top: 1px solid var(--hairline); }
.development-targets > div { display: grid; grid-template-columns: 84px minmax(0,1fr); gap: 20px; align-items: baseline; padding-block: 23px; border-bottom: 1px solid var(--hairline); }
.development-targets dt, .development-targets dd { margin: 0; font-size: 1rem; line-height: 1.65; }
.development-targets code { color: var(--ink); font-size: 1rem; }
.development-targets dd { color: var(--ink-2); }
.development-options > .fine { font-size: .875rem; color: var(--ink-3); }
.development-output { margin-top: 36px; }
.development-links { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 24px; }
.development-base a, .development-links a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 740px) { .development-base { grid-template-columns: 1fr; gap: 16px; } .development-targets { grid-template-columns: 1fr; } }
.print-details { margin-top: 48px; border-top: 1px solid var(--hairline); }
.print-details > div { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: 48px; padding-block: 28px; border-bottom: 1px solid var(--hairline); }
.print-details dt { font-size: 1.125rem; font-weight: 550; line-height: 1.6; word-break: normal; }
.print-details dd { margin: 0; color: var(--ink-2); font-size: 1rem; line-height: 1.75; }
.print-details .fine { margin-top: 12px; text-align: left; color: var(--ink-3); }
.print-details a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.print-details .file-format, #paper .file-format { white-space: nowrap; }
[data-lang="ko"] .print-details dt { word-break: keep-all; }
.topic-page main .story-grid { display: block; max-width: 65ch; }
.foot { padding-block: 38px 24px; border-top: 1px solid var(--hairline); }
.foot .foot-nav { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px 32px; margin-block: 28px; }
.foot .foot-nav a { padding-block: 5px; font-size: .875rem; }
.feature-layout:not(.feature-reverse) > .feature-copy { grid-column:2; grid-row:1; }
.feature-layout:not(.feature-reverse) > .feature-visual { grid-column:1; grid-row:1; }
@media (max-width:1000px) {
  .feature-layout, .feature-layout.feature-reverse { grid-template-columns:1fr; gap:32px; }
  .feature-layout:not(.feature-reverse) > .feature-copy,
  .feature-layout:not(.feature-reverse) > .feature-visual { grid-column:auto; grid-row:auto; }
  .feature-copy { max-width:65ch; }
  .feature-copy > .feature-note { max-width:65ch; }
}
@media (min-width:1001px) and (max-width:1100px) {
  .feature-layout, .feature-layout.feature-reverse { grid-template-columns:1fr 1fr; gap:36px; }
}
@media (min-width: 741px) and (max-width: 1100px) {
  .section-heading { gap: 36px; grid-template-columns: 1fr 1fr; }
  .editorial h2 { font-size: 2.65rem; }
}
@media (max-width: 740px) {
  .section-heading, .feature-layout, .feature-layout.feature-reverse { grid-template-columns: 1fr; gap: 30px; }
  .section-heading { margin-bottom: 30px; }
  .section-desc { font-size: 1rem; }
  .feature-copy { order: -1; }
  .feature-copy > p { font-size: 1rem; }
  .feature-copy > .feature-note { margin-top: 20px; padding-top: 20px; }
  .workspace-panel { padding: 8px; margin-inline: -8px; }
  .workspace-toolbar { gap: 12px; }
  .platform-tabs { gap: 10px; min-width: 0; overflow-x: auto; }
  .platform-tabs button { flex-shrink: 0; white-space: nowrap; }
  .platform-tabs button:focus-visible { outline-offset: -3px; }
  .editorial .workspace-band { padding-bottom: 44px; }
  .download-platforms { grid-template-columns: 1fr; margin-top: 34px; }
  .download-platform, .download-platform + .download-platform { border-left: 0; padding: 28px 0; }
  .download-platform + .download-platform { border-top: 1px solid var(--hairline); }
  .download-heading > img { width: 60px; height: 60px; margin-top: 0; }
  .download-heading .section-desc { font-size: 1rem; }
  .download-notes { grid-template-columns: 1fr; gap: 16px; }
  .print-details > div { grid-template-columns: 1fr; gap: 12px; padding-block: 24px; }
  .foot .foot-nav { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 24px; }
}
@media (prefers-contrast: more) {
  .editorial, .topic-page main, .foot { --ink-2: #363435; --ink-3: #4f4c4b; --hairline: #77716b; }
  [data-theme="dark"] :is(.editorial,.topic-page main,.foot), .editorial .workspace-band { --ink-2: #ded8d1; --ink-3: #c7c1bb; }
}
.capture { margin-top: 34px; }
.capture .shot { display: block; width: 100%; height: auto; cursor: zoom-in; border-radius: 0; }
.workspace-panel .capture, .feature-visual .capture { margin-top: 0; }
.workspace-panel .shot { object-fit: contain; }
.topic-page main .capture { margin-block: 40px; }
.faq-list { margin-top: 44px; border-top: 1px solid var(--hairline); }
.faq-item { border-bottom: 1px solid var(--hairline); }
.faq-item summary { display: flex; justify-content: space-between; align-items: baseline; gap: 28px; list-style: none; padding: 24px 0; cursor: pointer; font-size: 1.125rem; font-weight: 550; line-height: 1.6; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; font: 1.5rem var(--mono); flex: 0 0 auto; }
.faq-item[open] summary::after { content: '−'; }
.faq-item > p { max-width: 72ch; padding-bottom: 26px; font-size: 1rem; line-height: 1.8; color: var(--ink-2); }
.faq-groups { margin-top: 48px; }
.faq-group { display: grid; grid-template-columns: minmax(0,.45fr) minmax(0,1.55fr); gap: clamp(24px,5vw,64px); }
.faq-group + .faq-group { margin-top: 48px; }
.topic-page main .faq-group h2 { font-size: 1.125rem; line-height: 1.6; letter-spacing: -.02em; padding-top: 24px; }
.faq-group .faq-list { margin-top: 0; }
.faq-group summary { text-wrap: pretty; }
[data-lang="ko"] .faq-group summary { word-break: keep-all; }
[data-lang="ja"] .faq-group summary { line-break: strict; }
.faq-answer { max-width: 72ch; padding-bottom: 26px; color: var(--ink-2); font-size: 1rem; line-height: 1.8; }
.faq-answer p + p { margin-top: 14px; }
.faq-answer a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 740px) {
  .faq-group { grid-template-columns: 1fr; gap: 20px; }
  .topic-page main .faq-group h2 { padding-top: 0; }
}
.repair-workflow { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(36px,6vw,80px); margin-top: 56px; }
.topic-page main .repair-workflow h2 { font-size: clamp(1.5rem,2vw,1.875rem); line-height: 1.3; letter-spacing: -.025em; }
.repair-workflow .tools { grid-template-columns: 1fr; margin-top: 24px; }
.repair-workflow .tools > .tool { padding: 22px 0; border-left: 0; }
.repair-review > p { margin-top: 24px; color: var(--ink-2); font-size: 1rem; line-height: 1.75; }
.repair-review a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.repair-ir { margin-top: 32px; border-top: 1px solid var(--hairline); }
.repair-ir > .fine { color: var(--ink-3); font-size: .875rem; }
@media (max-width: 1000px) { .repair-workflow { grid-template-columns: 1fr; gap: 40px; } }
.detail-link { display: inline-block; margin-top: 28px; padding-block: 12px; text-decoration: underline; text-underline-offset: 5px; }
.roll-gallery { overflow: hidden; border-top: 1px solid var(--hairline); }
.gallery-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 16px 24px; }
.gallery-controls { display: flex; flex-shrink: 0; align-items: center; gap: 12px; margin-left: auto; }
.gallery-count { font: .8125rem var(--mono); white-space: nowrap; margin-right: 12px; color: var(--ink-2); }
.gallery-controls button { border: 1px solid var(--hairline); border-radius: 50%; color: var(--ink); background: none; width: 46px; height: 46px; font-size: 1.25rem; cursor: pointer; }
.gallery-controls button:hover:not(:disabled) { color: var(--paper); background: var(--ink); }
.gallery-controls button:disabled { opacity: .35; cursor: default; }
.roll-track { position: relative; display: flex; align-items: center; gap: clamp(24px,4vw,64px); overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 55px max(24px,calc((100vw - 785px)/2)) 28px; perspective: 1400px; }
.roll-track::-webkit-scrollbar { display: none; }
.roll-frame { flex: 0 0 auto; scroll-snap-align: center; transform: perspective(1400px) rotateY(var(--roll-angle,0deg)) translateZ(var(--roll-depth,0px)); transform-origin: center; transition: transform .2s ease-out; }
.roll-track .flow-app { width: auto; height: clamp(235px,36vw,520px); max-width: calc(100vw - 48px); object-fit: contain; margin: 0; border-radius: 0; transform: none; box-shadow: none; }
.roll-track .flow-app:hover, .roll-track .flow-app:active { transform: none; box-shadow: none; }
@media (max-width: 740px) {
  .gallery-controls { gap: 7px; }
  .gallery-count { margin-right: 5px; font-size: .75rem; }
  .gallery-controls button { width: 44px; height: 44px; }
  .roll-track { padding-block: 34px 15px; gap: 22px; }
  .roll-track .flow-app { height: 250px; }
}
@media (prefers-reduced-motion: reduce) { .roll-frame { transform: none; transition: none; } }
.guide-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: clamp(40px,6vw,88px); align-items: start; margin-top: 48px; }
.guide-group + .guide-group { margin-top: 40px; }
.topic-page main .guide-group h2 { font-size: 1.125rem; letter-spacing: -.02em; line-height: 1.5; padding-bottom: 18px; border-bottom: 1px solid var(--hairline); }
.guide-links { list-style: none; padding: 0; margin: 0; }
.guide-links li { border-bottom: 1px solid var(--hairline-soft); }
.guide-links a { display: block; padding: 20px 0; color: var(--ink); text-decoration: none; }
.guide-name { display: block; font-size: 1.0625rem; line-height: 1.55; text-decoration: underline; text-decoration-color: var(--hairline); text-underline-offset: 4px; }
.guide-description { display: block; color: var(--ink-2); font-size: .9375rem; line-height: 1.75; margin-top: 8px; }
.guide-links a:hover .guide-name, .guide-links a:focus-visible .guide-name { text-decoration-color: currentColor; }
.guide-preview { position: sticky; top: 100px; margin: 0; }
.topic-page main .guide-preview .capture { margin: 0; }
.guide-preview figcaption { margin-top: 14px; color: var(--ink-3); font-size: .8125rem; line-height: 1.6; }
@media (max-width: 1000px) {
  .guide-layout { grid-template-columns: 1fr; }
  .guide-preview { position: static; }
}
.topic-page main .dataset-grid { display: block; max-width: 74ch; }
.topic-page main .dataset-card { padding: 26px 0; border-bottom: 1px solid var(--hairline); }
.topic-page main .dataset-card p { font-size: 1rem; line-height: 1.8; }
.topic-page main .stats { margin-top: 48px; }
.topic-page main .stat .num { font-weight: 400; }
.topic-page main .stats .lbl { color: var(--ink-2); font-size: 1rem; }
#profiles .stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
.topic-page main #profiles h1 { font-size: clamp(1.75rem,4.25vw,4.4rem); }
#profiles .stat .num { font-size: clamp(2.5rem,4vw,3.5rem); }
#profiles .stat:nth-child(2) { padding-left: 28px; border-left: 1px solid var(--hairline); }
.profile-count-note { margin: 20px 0 0; max-width: 70ch; text-align: left; }
.profile-details { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(36px,6vw,80px); margin-top: 52px; }
.topic-page main .profile-details h2 { font-size: clamp(1.5rem,2vw,1.875rem); line-height: 1.3; letter-spacing: -.025em; }
.profile-families { margin-top: 24px; border-top: 1px solid var(--hairline); }
.profile-family-count { margin-left: auto; color: var(--ink-3); font: .875rem var(--mono); }
.profile-list { list-style: none; padding: 0 0 24px; margin: 0; }
.profile-list li { padding-block: 7px; color: var(--ink-2); font-size: 1rem; }
.profile-notes p { margin-top: 24px; color: var(--ink-2); font-size: 1rem; line-height: 1.75; }
.profile-notes a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1000px) { .profile-details { grid-template-columns: 1fr; gap: 40px; } }
.topic-page main .why > div { padding-block: 28px; grid-template-columns: minmax(0,.65fr) minmax(0,1fr); }
.topic-page main .why dt { font-size: 1.0625rem; }
.requirement-version { white-space: nowrap; }
.why a, .capture-options a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.why a[href$="/LICENSE"] { white-space: nowrap; }
.capture-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 48px; margin-top: 36px; }
.capture-options article { padding-top: 26px; border-top: 1px solid var(--hairline); }
.capture-options p { margin-top: 20px; color: var(--ink-2); font-size: 1rem; line-height: 1.75; }
@media (max-width: 740px) { .capture-options { grid-template-columns: 1fr; } }
.scanning-steps { list-style: none; padding: 0; margin: 48px 0 0; counter-reset: scan-step; }
.scanning-steps > li { display: grid; grid-template-columns: 2.5ch minmax(0,.6fr) minmax(0,1.4fr); gap: 24px; padding-block: 30px; border-top: 1px solid var(--hairline); }
.scanning-steps > li::before { counter-increment: scan-step; content: counter(scan-step,decimal-leading-zero); color: var(--ink-3); font: .8125rem/1.8 var(--mono); padding-top: 2px; }
.topic-page main .scanning-steps h2 { font-size: 1.125rem; line-height: 1.5; letter-spacing: -.02em; }
.scan-step-copy > p { font-size: 1rem; line-height: 1.8; color: var(--ink-2); }
.scan-step-copy > p + p { margin-top: 16px; }
.topic-page main .scan-step-copy .capture { margin: 24px 0 0; }
.scanning-steps a, .scanning-sources a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.scanning-sources { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--hairline); font-size: .875rem; }
.scanning-sources p { color: var(--ink-3); }
@media (max-width: 740px) {
  .scanning-steps > li { grid-template-columns: 2ch minmax(0,1fr); gap: 12px 16px; }
  .scan-step-copy { grid-column: 2; }
}
.scanner-install, .scanner-sources { display: flex; flex-wrap: wrap; gap: 12px 28px; font-size: .9375rem; }
.scanner-install { margin-top: 24px; }
.scanner-install a, .scanner-sources a, .scanner-help a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.scanner-install a { padding-block: 8px; }
.scanner-directory { margin-top: 48px; }
.scanner-basis { max-width: 70ch; color: var(--ink-2); font-size: .9375rem; line-height: 1.8; padding-bottom: 24px; border-bottom: 1px solid var(--hairline); }
.scanner-family summary { font-size: clamp(1.0625rem,1.6vw,1.375rem); }
.scanner-models { width: 100%; border-collapse: collapse; text-align: left; font-size: .9375rem; line-height: 1.65; }
.scanner-models th { padding: 0 20px 12px 0; font-size: .8125rem; font-weight: 500; color: var(--ink-3); }
.scanner-models td { padding: 16px 20px 16px 0; border-top: 1px solid var(--hairline-soft); vertical-align: top; }
.scanner-models th:first-child, .scanner-models td:first-child { width: 65%; }
.scanner-models th:last-child, .scanner-models td:last-child { width: 35%; padding-right: 0; color: var(--ink-2); }
.scanner-models code, .scanner-model-name { white-space: nowrap; }
.faq-item > .scanner-family-note { margin-top: 16px; max-width: 84ch; padding-bottom: 26px; font-size: .9375rem; }
.scanner-family:not(:has(.scanner-family-note)) .scanner-models { margin-bottom: 20px; }
.scanner-help { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 64px; margin-top: 48px; }
.topic-page main .scanner-help h2 { font-size: 1.125rem; line-height: 1.5; letter-spacing: -.02em; }
.scanner-help p { margin-top: 16px; color: var(--ink-2); font-size: 1rem; line-height: 1.8; }
.scanner-sources { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--hairline); }
@media (max-width: 740px) {
  .topic-page main .why > div { grid-template-columns: 1fr; gap: 15px; }
  .scanner-models { font-size: .875rem; }
  .scanner-models th, .scanner-models td { padding-right: 14px; }
  .scanner-help { grid-template-columns: 1fr; }
}
.dedication .dedication-date { display: block; margin-top: 20px; white-space: nowrap; }
.foot .foot-top { justify-content: flex-start; margin: 0; font-size: 1.3rem; letter-spacing: -.025em; }
.foot .foot-nav { text-align: left; }
.foot .foot-nav a { justify-self: start; border: 0; text-align: left; color: var(--ink-2); }
.foot .foot-nav a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 5px; }
.foot .fine { text-align: left; margin-left: 0; margin-right: 0; max-width: 110ch; font-size: .75rem; line-height: 1.7; white-space: normal; }
.foot .foot-licenses { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.foot-licenses a { white-space: nowrap; }
/* Material is confined to the background; photo pixels remain unobscured. */
.editorial .workspace-band, .editorial .print-story, .topic-page main { position: relative; isolation: isolate; }
.editorial .workspace-band { background: linear-gradient(118deg,#171718 0%,#252526 48%,#1c1b1d 100%); }
.editorial .print-story { background: linear-gradient(132deg,#f1ede8 0%,#ded8d1 56%,#eee9e3 100%); }
[data-theme="dark"] .editorial .print-story { background: linear-gradient(132deg,#252526 0%,#2f2e30 56%,#1c1b1d 100%); }
.editorial .workspace-band::before, .editorial .print-story::before, .topic-page main::before { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:url('../surface-grain.svg') repeat; opacity:.07; mix-blend-mode:soft-light; }
.editorial .print-story::before, .topic-page main::before { mix-blend-mode:multiply; opacity:.055; }
[data-theme="dark"] .editorial .print-story::before, [data-theme="dark"] .topic-page main::before { mix-blend-mode:soft-light; opacity:.08; }
.workspace-panel { background:none; padding:clamp(16px,3.5vw,50px) clamp(8px,2vw,28px); }
.workspace-panel .shot { border:1px solid #595658; border-radius:12px; background:#202022; }
@media (max-width:740px) { .workspace-panel .shot { border-radius:5px; } }
@media (prefers-reduced-transparency:reduce) { .editorial .workspace-band::before,.editorial .print-story::before,.topic-page main::before { display:none; } }
.feature-copy .feature-title-link { color:inherit; text-decoration:underline; text-decoration-color:var(--hairline); text-decoration-thickness:1px; text-underline-offset:.16em; }
.feature-copy .feature-title-link:hover { text-decoration-color:var(--ink); }
.dedication blockquote :is(h1,h2) { font:inherit; line-height:inherit; letter-spacing:inherit; }
.dedication-date a { color:inherit; text-decoration-thickness:1px; text-underline-offset:4px; }
