.resource-main { --resource-muted: #69716b; }
.resource-intro { padding-top: 64px; padding-bottom: 48px; }
.resource-kicker { display: flex; gap: 12px; align-items: center; font: 11px "IBM Plex Mono", monospace; color: var(--resource-muted); margin-bottom: 26px; }
.resource-kicker a { color: inherit; text-decoration: none; }
.resource-kicker a:hover { color: var(--green); }
.resource-intro h1 { font-size: 54px; line-height: 1.1; font-weight: 500; letter-spacing: 0; max-width: 890px; margin: 0 0 24px; text-wrap: balance; overflow-wrap: break-word; }
.resource-lead { font-size: 18px; line-height: 1.7; max-width: 690px; color: var(--resource-muted); margin: 0 0 28px; }
.resource-actions { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.resource-main .button { border-radius: 5px; }
.resource-main .text-link { gap: 8px; font-size: 13px; }
.resource-main .text-link svg { width: 16px; height: 16px; flex-shrink: 0; }
.resource-section { padding-top: 42px; padding-bottom: 48px; border-top: 1px solid var(--line); }
.resource-section-heading { display: grid; grid-template-columns: 1fr 2fr; gap: 28px; align-items: baseline; margin-bottom: 34px; }
.resource-main h2 { font-size: 28px; line-height: 1.3; font-weight: 500; letter-spacing: 0; text-wrap: balance; }
.resource-main h3 { font-size: 18px; font-weight: 500; line-height: 1.4; margin: 0 0 12px; }
.resource-main p { line-height: 1.8; }
.resource-decision { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 60px; margin-bottom: 34px; }
.resource-decision p, .resource-evidence p, .resource-paragraph { font-size: 15px; color: var(--resource-muted); max-width: 740px; }
.resource-table-wrap { overflow-x: auto; width: 100%; border-block: 1px solid var(--line); }
.resource-table { border-collapse: collapse; width: 100%; table-layout: fixed; text-align: left; }
.resource-table caption { text-align: left; font-size: 12px; padding: 15px 0; color: var(--resource-muted); }
.resource-table th, .resource-table td { padding: 20px 18px; vertical-align: top; font-size: 14px; line-height: 1.7; border-top: 1px solid var(--line); overflow-wrap: break-word; }
.resource-table th { font-weight: 500; }
.resource-table thead th:first-child { width: 23%; }
.resource-table thead th:nth-child(2) { color: var(--green); }
.resource-table td { color: var(--resource-muted); }
.resource-table td:nth-child(2) { background: #f5f8f6; color: #2d4236; }
.resource-main .resource-source { font-size: 12px; line-height: 1.8; color: var(--resource-muted); margin: 20px 0 0; max-width: 900px; }
.resource-source a, .resource-paragraph a { color: inherit; text-underline-offset: 3px; }
.resource-evidence { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); gap: 48px; align-items: center; }
.resource-proof { margin: 0; min-width: 0; }
.resource-proof img { width: 100%; height: auto; display: block; border: 1px solid var(--line); border-radius: 6px; }
.resource-proof figcaption { font-size: 11px; line-height: 1.7; color: var(--resource-muted); margin-top: 12px; }
.resource-proof figcaption span { display: block; }
.resource-guide-layout { display: grid; grid-template-columns: 230px minmax(0,1fr); gap: 64px; border-top: 1px solid var(--line); padding-top: 40px; padding-bottom: 64px; }
.resource-contents { align-self: start; position: sticky; top: 110px; }
.resource-contents nav { display: grid; gap: 16px; margin: 22px 0 28px; }
.resource-contents nav a { font-size: 13px; line-height: 1.6; color: var(--resource-muted); text-decoration: none; }
.resource-contents nav a:hover { color: var(--green); }
.resource-share { display: inline-flex; align-items: center; padding: 0; border: 0; border-radius: 0; background: none; color: var(--green); cursor: pointer; font-family: inherit; }
.resource-share-status { display: block; min-height: 24px; font-size: 12px; padding-top: 8px; color: var(--resource-muted); }
.resource-share-line { display: flex; gap: 14px; align-items: baseline; margin-top: 20px; }
.resource-film { width: 100%; height: auto; display: block; margin: 28px 0 20px; border-radius: 6px; background: #111; }
.resource-asset-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 30px; }
.resource-asset-grid figure { margin: 0; }
.resource-asset-grid a { color: inherit; text-decoration: none; }
.resource-asset-grid img { width: 100%; height: auto; border: 1px solid var(--line); border-radius: 5px; }
.resource-asset-grid figcaption { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; margin-top: 12px; }
.resource-asset-grid svg { width: 16px; height: 16px; }
.resource-guide-body { min-width: 0; max-width: 820px; }
.resource-prerequisites { margin-bottom: 28px; }
.resource-prerequisites h2 { margin-top: 0; font-size: 20px; }
.resource-prerequisites p, .resource-step p, .resource-check p { font-size: 15px; color: var(--resource-muted); }
.resource-step { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 24px; padding-top: 34px; padding-bottom: 26px; border-bottom: 1px solid var(--line); scroll-margin-top: 110px; }
.resource-step h2 { font-size: 24px; margin: 0 0 14px; }
.resource-step p { margin: 0; }
.resource-index { font: 11px "IBM Plex Mono", monospace; color: var(--resource-muted); padding-top: 8px; }
.resource-check { padding-top: 32px; scroll-margin-top: 110px; }
.resource-check h2 { font-size: 24px; }
.resource-next { border-top: 1px solid var(--line); margin-top: 32px; padding-top: 24px; display: grid; gap: 16px; }
.resource-directory { padding-top: 0; }
.resource-row { display: grid; grid-template-columns: 50px minmax(0,1fr) 24px; gap: 20px; align-items: start; text-decoration: none; color: inherit; padding: 34px 0; border-bottom: 1px solid var(--line); }
.resource-row:last-child { border-bottom: 0; }
.resource-row h2 { margin: 0 0 10px; font-size: 28px; }
.resource-row p { margin: 0; max-width: 680px; font-size: 15px; color: var(--resource-muted); }
.resource-row > svg { width: 20px; height: 20px; margin-top: 8px; color: var(--green); transition: transform .15s; }
.resource-row:hover > svg { transform: translate(3px,-3px); }
.resource-row:hover h2 { color: var(--green); }
.resource-principles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 64px; margin-top: 32px; }
.resource-principles p { font-size: 15px; color: var(--resource-muted); }
.resource-closing { border-top: 1px solid var(--line); padding-block: 48px 64px; display: grid; grid-template-columns: 1.5fr 1fr; gap: 40px; align-items: center; }
.resource-closing h2 { max-width: 580px; margin: 16px 0; }
.resource-closing p { font-size: 14px; color: var(--resource-muted); }
.resource-closing > div:last-child { display: grid; gap: 20px; }
.resource-main :focus-visible { outline: 2px solid var(--green); outline-offset: 5px; }
html[data-theme="dark"] .resource-main { --resource-muted: #aab1ac; }
html[data-theme="dark"] .resource-table td:nth-child(2) { background: #17241c; color: #d8e6dc; }
@media (max-width: 900px) {
  .resource-guide-layout { grid-template-columns: 180px minmax(0,1fr); gap: 32px; }
  .resource-evidence { grid-template-columns: 1fr; gap: 28px; }
  .resource-intro h1 { font-size: 44px; }
}
@media (max-width: 640px) {
  .resource-intro { padding-top: 36px; padding-bottom: 32px; }
  .resource-intro h1 { font-size: 34px; }
  .resource-lead { font-size: 16px; }
  .resource-actions { gap: 18px; }
  .resource-section { padding-block: 30px; }
  .resource-section-heading, .resource-decision, .resource-principles, .resource-closing { grid-template-columns: 1fr; gap: 24px; }
  .resource-section-heading { gap: 8px; }
  .resource-section-heading h2 { margin: 0; }
  .resource-main h2 { font-size: 24px; }
  .resource-table { min-width: 590px; }
  .resource-table th, .resource-table td { padding: 14px; font-size: 13px; }
  .resource-guide-layout { grid-template-columns: 1fr; gap: 28px; padding-top: 26px; }
  .resource-contents { position: static; }
  .resource-contents nav { gap: 10px; margin: 16px 0; }
  .resource-step { gap: 14px; }
  .resource-step h2 { font-size: 22px; }
  .resource-row { grid-template-columns: 25px minmax(0,1fr) 20px; gap: 12px; padding-block: 26px; }
  .resource-row h2 { font-size: 24px; }
  .resource-row p { font-size: 14px; }
  .resource-asset-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .resource-row > svg { transition: none; } }

/* Films use native controls and load only a poster until the viewer presses play. */
.scene-player { margin: 28px 0 0; min-width: 0; }
.scene-player video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #101010; border-radius: 6px; }
.scene-player figcaption { font-size: 11px; line-height: 1.7; margin-top: 12px; color: var(--muted); }
.scene-player figcaption a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.scene-feature { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 56px; align-items: center; padding-block: 48px; border-top: 1px solid var(--line); }
.scene-feature .scene-player { margin: 0; }
.scene-feature h2 { font-size: 30px; line-height: 1.25; font-weight: 500; margin: 16px 0; }
.scene-feature p { font-size: 15px; line-height: 1.8; color: var(--muted); margin-bottom: 20px; }
.scene-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 24px; margin: 28px 0; }
.scene-card { min-width: 0; }
.scene-card > a { display: block; color: inherit; }
.scene-thumbnail { position: relative; aspect-ratio: 16 / 9; border-radius: 6px; overflow: hidden; background: #101010; margin-bottom: 18px; }
.scene-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.scene-duration { position: absolute; bottom: 10px; right: 10px; background: #161a17; color: #fff; padding: 4px 6px; font: 10px var(--mono); border-radius: 3px; }
.scene-play { position: absolute; inset: 0; margin: auto; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #fffffff0; color: #222523; }
.scene-play svg { width: 18px; height: 18px; }
.scene-card h2, .resource-main .scene-card h2 { font-size: 20px; line-height: 1.4; font-weight: 500; margin: 10px 0; }
.scene-card p { font-size: 13px; line-height: 1.7; color: var(--muted); }
.scene-card a:hover h2 { color: var(--green); }
.home-resource-links { display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; padding-block: 17px; border-top: 1px solid var(--line); font-size: 13px; }
.home-resource-links > span { margin-right: auto; font: 10px var(--mono); color: var(--muted); }
.home-resource-links a { display: inline-flex; align-items: center; gap: 8px; }
.home-resource-links a:hover { color: var(--green); }
.home-resource-links svg { width: 13px; height: 13px; }
.home-film-section { padding-block: 48px; border-top: 1px solid var(--line); }
.home-film-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; }
.home-film-heading h2 { font-size: 32px; font-weight: 500; margin-top: 14px; }
.watch-intro { padding-top: 30px; }
.watch-intro > .text-link { margin-bottom: 24px; font-size: 12px; }
.watch-intro .resource-kicker { margin-bottom: 12px; }
.watch-intro h1 { font-size: 44px; line-height: 1.15; font-weight: 500; letter-spacing: 0; margin-bottom: 14px; }
.watch-intro > p { font-size: 16px; color: var(--muted); }
.watch-intro .scene-player { margin-top: 24px; margin-bottom: 32px; }
.watch-context { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 60px; }
.watch-context h2 { font-size: 24px; margin: 14px 0; }
.watch-context p { color: var(--muted); font-size: 15px; line-height: 1.8; margin-bottom: 18px; }
.nav-resources > .nav-solutions-panel { max-height: calc(100dvh - 120px); overflow-y: auto; }
@media (max-width: 800px) {
  .scene-feature { grid-template-columns: 1fr; gap: 24px; }
  .scene-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .nav-resources > .nav-solutions-panel { max-height: none; overflow: visible; }
}
@media (max-width: 640px) {
  .home-resource-links { gap: 14px 22px; }
  .home-resource-links > span { width: 100%; }
  .scene-grid, .watch-context { grid-template-columns: 1fr; }
  .scene-feature { padding-block: 30px; }
  .scene-feature h2, .home-film-heading h2 { font-size: 26px; }
  .home-film-heading { display: grid; gap: 18px; }
  .watch-intro h1 { font-size: 32px; }
  .watch-context { gap: 24px; }
}
