/* Scene consistency report, scoped under .scene-report. Generated from the
   audited packages' shared styles.css: every upstream selector is rooted at the
   report container, :root/body/html rules land on the container itself, and
   the page-wide switches are classes on the container rather than on <body>.
   The block below restores the user-agent defaults the upstream page relied
   on and the site's preflight removes; the page rules name their own shell. */
html:has(body.scene-shell){scroll-behavior:smooth;scroll-padding-top:56px}
@media (prefers-reduced-motion:reduce){html:has(body.scene-shell){scroll-behavior:auto}}
body.scene-shell{background:#121212}
.scene-report p{margin:1em 0}
.scene-report dl{margin:1em 0}
.scene-report a{text-decoration:underline}
.scene-report select{appearance:auto;min-width:0}
/* Safari counts a select's full, unclipped option text as overflow of every
   ancestor: the sticky section menu, which follows the reader, widened the
   page by up to 135 px as it named longer chapters. Containing its paint keeps
   the text inside the control. */
.scene-report select{contain:paint}
/* Containment clips anything painted outside the box, so the focus ring sits inside it. */
.scene-report select:focus-visible{outline-offset:-3px;box-shadow:none}
/* A long unbroken token (a file path in the footer) must wrap, not widen the page. */
.scene-report{overflow-wrap:break-word}
.scene-report input[type=range]{padding:0;border:0;background:none}
/* Scene consistency report. The surround is a neutral, untinted dark grey on
   purpose: the argument is about relationships between pictures, and a tinted
   ground would lend every frame a cast it does not have. Measurement labels
   stay quiet; region outlines are strokes, never fills. */
.scene-report{color-scheme:dark;
  --bg:#121212;--panel:#1a1a1a;--panel-2:#222;--ink:#ebebeb;--muted:#a3a3a3;--faint:#6f6f6f;
  --line:#2e2e2e;--rule:#3d3d3d;
  --frame:#bdbdbd;
  --different:#e0876f;--equivalent:#8cc49a;--indeterminate:#c9b86a;--unavailable:#8a8a8a;
  --focus:#f2d06b;
  --max:1320px;--measure:72ch;--bar:48px;}
.scene-report *{box-sizing:border-box}
.scene-report{margin:0;background:var(--bg);color:var(--ink);
     font:17px/1.62 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}
.scene-report .wrap{width:min(var(--max),calc(100% - 48px));margin-inline:auto}
.scene-report a{color:var(--ink)}
.scene-report :focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.scene-report button{font:inherit;color:var(--ink);background:var(--panel-2);border:1px solid var(--rule);
       border-radius:4px;padding:6px 12px;cursor:pointer}
.scene-report button:hover{border-color:var(--muted)}
.scene-report button[aria-pressed="true"]{background:#333;border-color:var(--ink)}
.scene-report button.quiet{background:transparent;color:var(--muted);font-size:14px;padding:4px 10px}
.scene-report button.quiet:hover{color:var(--ink)}
.scene-report button.link{background:none;border:0;padding:0;color:var(--ink);text-decoration:underline;
            text-decoration-color:var(--rule);text-underline-offset:3px;font:inherit}
.scene-report button.link:hover{text-decoration-color:var(--ink)}
.scene-report button.watch{margin:0 0 10px;font-size:14px;padding:5px 12px}
.scene-report .hero{padding:80px 0 40px}
.scene-report .eyebrow{margin:0 0 14px;color:var(--muted);font:600 12px/1.3 ui-monospace,SFMono-Regular,monospace;
         letter-spacing:.14em;text-transform:uppercase}
.scene-report .hero h1{margin:0;max-width:18ch;font:500 clamp(44px,6.4vw,96px)/.96 Georgia,serif;letter-spacing:-.035em}
.scene-report .standfirst{max-width:56ch;margin:28px 0 30px;color:#d8d8d8;font:clamp(20px,2.1vw,29px)/1.36 Georgia,serif}
.scene-report .reading-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0 0 30px;font-size:15px}
.scene-report .reading-links a{text-underline-offset:4px;text-decoration-color:var(--rule)}
.scene-report .caveat{max-width:80ch;border-left:2px solid var(--rule);padding:2px 0 2px 20px;color:var(--muted)}
.scene-report .caveat strong{color:var(--ink)}
.scene-report .provenance{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;margin:40px 0 0;
            background:var(--line);border:1px solid var(--line)}
.scene-report .provenance div{background:var(--panel);padding:14px 18px}
.scene-report .provenance dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.scene-report .provenance dd{margin:4px 0 0;font-size:15px}
/* ---------- toolbar ---------- */
.scene-report .toolbar{position:sticky;top:0;z-index:20;background:rgba(18,18,18,.94);backdrop-filter:blur(6px);
         border-block:1px solid var(--line)}
.scene-report .toolbar-inner{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;min-height:var(--bar);padding-block:6px}
.scene-report .jump{font:inherit;font-size:14px;color:var(--ink);background:var(--panel-2);border:1px solid var(--rule);
      border-radius:4px;padding:5px 8px;max-width:min(46ch,100%)}
.scene-report .key{display:flex;flex-wrap:nowrap;align-items:center;gap:12px;margin-left:auto;color:var(--faint);font-size:12.5px;white-space:nowrap}
.scene-report .key-item{display:inline-flex;gap:6px;align-items:center}
@media (max-width:1100px){.scene-report .key{display:none}}
/* ---------- the score and its player ---------- */
.scene-report .score{padding:36px 0 40px;background:#0e0e0e}
.scene-report .score h2{margin:0 0 6px;font:500 clamp(26px,2.4vw,36px)/1.1 Georgia,serif}
.scene-report .score .note{margin:0 0 20px;color:var(--muted);max-width:90ch;font-size:15px}
.scene-report .player-slot{width:100%;min-width:0;max-width:960px;margin-inline:auto;min-height:calc(min(960px,100vw - 48px) * 408 / 960 + 140px)}
.scene-report .player-shell{background:#0e0e0e}
.scene-report .player-shell:focus-visible{outline-offset:6px}
.scene-report .player-head{display:flex;align-items:center;gap:10px;min-height:28px;padding:0 0 6px;
             font:13px ui-monospace,monospace;color:var(--muted)}
.scene-report .player-label{flex:1;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scene-report .player-counter{color:var(--faint);white-space:nowrap}
.scene-report .player-dock-only{display:none}
.scene-report .player-shell.docked .player-dock-only{display:inline-block}
.scene-report .player-head .quiet{white-space:nowrap;padding:2px 8px;font-size:12.5px}
.scene-report .picture{position:relative;width:100%;aspect-ratio:960/408;background:#000}
.scene-report .picture img,.scene-report .picture video{position:absolute;inset:0;width:100%;height:100%;display:block}
.scene-report .player-shell:not(.has-video) video{visibility:hidden}
.scene-report .transport{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;padding-top:10px}
.scene-report .readout{min-width:24ch;color:var(--muted);font:13px ui-monospace,monospace;text-align:center}
.scene-report .shot-navigation{display:flex;align-items:center;gap:10px;margin-top:10px;color:var(--muted);font-size:13px}
.scene-report .shot-navigation span{flex-shrink:0}
.scene-report .shot-select{min-width:0;width:100%;padding:6px;border:1px solid var(--rule);border-radius:4px;
             background:var(--panel-2);color:var(--ink);font:inherit}
.scene-report .player-note{margin:6px 0 0;min-height:1.2em;color:var(--indeterminate);font-size:13px;text-align:center}
/* Docked: the player follows the reader into the sections. The slot keeps its
   height so the score does not jump. */
.scene-report .player-shell.docked{position:fixed;z-index:30;right:16px;bottom:16px;width:min(440px,calc(100vw - 32px));
                     padding:8px 10px 10px;border:1px solid var(--rule);border-radius:6px;
                     box-shadow:0 10px 40px rgba(0,0,0,.6)}
.scene-report .player-shell.docked .transport button{padding:4px 8px;font-size:13px}
.scene-report .player-shell.docked .readout{min-width:0;font-size:12px}
.scene-report .legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:18px 0 8px;color:var(--muted);font-size:13px}
.scene-report .legend i{display:inline-block;width:18px;height:0;border-top:2px solid;vertical-align:middle;margin-right:6px}
.scene-report .legend i.dashed{border-top-style:dashed}
.scene-report .lane-toggle{padding:3px 9px;font-size:13px;color:var(--muted);background:transparent}
.scene-report .lane-toggle[aria-pressed="false"]{opacity:.55;text-decoration:line-through}
.scene-report .lanes{width:100%;overflow-x:auto}
.scene-report .lanes svg{display:block;width:100%;min-width:720px;height:auto;cursor:crosshair}
.scene-report .lane-label{fill:var(--muted);font:11px ui-monospace,monospace}
.scene-report .axis text{fill:var(--faint);font:10px ui-monospace,monospace}
.scene-report .axis line{stroke:var(--line)}
.scene-report .shot-cell{fill:#1d1d1d;stroke:#0e0e0e;stroke-width:1}
.scene-report .shot-cell.active{fill:#3a3a3a}
.scene-report .shot-text{fill:var(--muted);font:10px ui-monospace,monospace;pointer-events:none}
.scene-report .cursor{stroke:var(--focus);stroke-width:1.5}
/* ---------- sections ---------- */
.scene-report .section{padding:70px 0;border-top:1px solid var(--line)}
.scene-report .section-heading,.scene-report .prose{width:min(var(--measure),100%);margin-inline:auto}
.scene-report .section-number{display:block;margin:0 0 10px;color:var(--faint);font:600 12px ui-monospace,monospace;letter-spacing:.14em}
.scene-report .section-heading h2{margin:0 0 20px;font:500 clamp(30px,3vw,48px)/1.06 Georgia,serif;letter-spacing:-.02em}
.scene-report .section-finding{margin:0 0 24px;color:#dadada;font:400 clamp(19px,1.6vw,22px)/1.42 Georgia,serif;
                 border-left:2px solid var(--rule);padding-left:20px}
.scene-report .block{margin:40px auto 0;max-width:1180px}
.scene-report .caption{width:min(var(--measure),100%);margin:12px auto 0;color:var(--muted);font-size:14.5px}
.scene-report .frames{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.scene-report .frames.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.scene-report .frame{margin:0;background:var(--panel)}
.scene-report .frame figcaption{padding:8px 10px;color:var(--muted);font:12.5px/1.4 ui-monospace,monospace}
.scene-report button.still{border:0;border-radius:0;padding:0;cursor:zoom-in}
.scene-report button.still:hover{outline:1px solid var(--muted);outline-offset:2px}
.scene-report .outlines{display:none;pointer-events:none;position:absolute;inset:0;width:100%;height:100%;z-index:1}
.scene-report.outlines-on .outlines{display:block}
.scene-report .outlines polygon{fill:none;stroke-width:1.4;vector-effect:non-scaling-stroke}
.scene-report details.fold{border-top:1px solid var(--line);padding-top:10px}
.scene-report details.fold > summary{cursor:pointer;color:var(--muted);font-size:15px}
.scene-report details.fold > summary:hover{color:var(--ink)}
.scene-report details.fold[open] > summary{margin-bottom:14px}
.scene-report table.data{width:100%;border-collapse:collapse;font-size:14px;margin-top:14px}
.scene-report .table-scroll{overflow-x:auto}
.scene-report table.data th{color:var(--muted);font-weight:600;text-align:left;border-bottom:1px solid var(--rule);padding:6px 8px;white-space:nowrap}
.scene-report table.data td{border-bottom:1px solid var(--line);padding:6px 8px;vertical-align:top;font-variant-numeric:tabular-nums}
.scene-report table.data td.num{text-align:right;white-space:nowrap}
.scene-report .badge{display:inline-block;padding:1px 8px;border:1px solid;border-radius:100px;font:600 11px/1.6 ui-monospace,monospace;
       text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;cursor:help}
.scene-report .badge::before{margin-right:5px}
.scene-report .badge.different,.scene-report .badge.contradicted{color:var(--different)}
.scene-report .badge.different::before{content:"≠"}
.scene-report .badge.equivalent,.scene-report .badge.supported{color:var(--equivalent)}
.scene-report .badge.equivalent::before{content:"="}
.scene-report .badge.indeterminate{color:var(--indeterminate)}
.scene-report .badge.indeterminate::before{content:"?"}
.scene-report .badge.unavailable,.scene-report .badge.not_identifiable{color:var(--unavailable)}
.scene-report .badge.unavailable::before{content:"–"}
.scene-report .chart{overflow-x:auto}
.scene-report .chart svg{display:block;width:100%;min-width:900px;height:auto}
.scene-report .chart text{fill:var(--muted);font:11px ui-monospace,monospace}
.scene-report .chart.clickable svg{cursor:crosshair}
.scene-report .small{color:var(--muted);font-size:13.5px}
.scene-report .player-shell.show-still video{visibility:hidden}
.scene-report .player-shell.has-video:not(.show-still) .picture img{visibility:hidden}
.scene-report .colour-detail{margin-top:14px}
.scene-report .colour-detail summary{cursor:pointer;color:var(--muted);font-size:14px}
.scene-report .method dl{display:grid;grid-template-columns:minmax(160px,24ch) 1fr;gap:6px 20px;margin:0 0 24px}
.scene-report .method dt{color:var(--muted)}
.scene-report .method dd{margin:0}
.scene-report footer{padding:50px 0 80px;border-top:1px solid var(--line);color:var(--faint);font-size:13px}
@media (max-width:640px){.scene-report .wrap{width:calc(100% - 32px)}
.scene-report .toolbar-inner{flex-wrap:nowrap}
.scene-report .jump{flex:1;min-width:0}
.scene-report .player-shell.docked{right:8px;left:8px;bottom:8px;width:auto}
.scene-report .player-shell.docked .player-to-score{display:none}
.scene-report .hero{padding-top:48px}
.scene-report .method dl{grid-template-columns:1fr}
.scene-report .player-slot{min-height:calc((100vw - 32px) * 408 / 960 + 164px)}}
/* ---------- colour instruments ----------
   Identity colours (Eli violet, Oskar aqua) are validated as a pair against the
   dark surface and deliberately avoid the warm/cool axis the measurements are
   about. Fills are always a region's own measured colour. */
.scene-report .score-stage{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
@media (min-width:1180px){.scene-report .score-stage{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}}
.scene-report .constellation{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px 14px}
.scene-report .constellation-title{margin:0 0 6px;color:var(--muted);font:600 12px ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}
.scene-report .constellation canvas{display:block;width:100%}
.scene-report .constellation-readout{width:100%;border-collapse:collapse;font-size:12.5px;margin:6px 0 8px;font-variant-numeric:tabular-nums}
.scene-report .constellation-readout th{color:var(--faint);font-weight:500;text-align:right;padding:2px 4px}
.scene-report .constellation-readout th:first-child{text-align:left}
.scene-report .constellation-readout td{padding:2px 4px;border-top:1px solid var(--line);color:var(--ink)}
.scene-report .constellation-readout td.num{text-align:right}
.scene-report .constellation .small{margin:0;font-size:12px}
.scene-report .series-key{display:inline-block;width:9px;height:9px;border:2px solid;margin-right:7px;vertical-align:-1px}
.scene-report .series-key.circle{border-radius:50%}
.scene-report .series-key.diamond{transform:rotate(45deg) scale(.85)}
.scene-report .tip{position:fixed;z-index:50;max-width:380px;padding:8px 10px;background:#1f1f1f;border:1px solid var(--rule);border-radius:4px;
     box-shadow:0 6px 24px rgba(0,0,0,.5);font-size:12.5px;line-height:1.45;pointer-events:none}
.scene-report .tip-title{color:var(--muted);font:12px ui-monospace,monospace;margin-bottom:4px}
.scene-report .tip-row{display:flex;gap:8px;align-items:baseline}
.scene-report .tip-row strong{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.scene-report .tip-row span{color:var(--muted)}
.scene-report .tip-key{display:inline-block;width:12px;height:0;border-top:3px solid;flex:none;transform:translateY(-3px)}
.scene-report .ribbon-image{image-rendering:pixelated}
.scene-report .lane-label.faint{fill:var(--faint)}
.scene-report .lane-label.warn{fill:var(--indeterminate)}
.scene-report .picture img.measured{opacity:0;transition:opacity .35s ease}
.scene-report.measured-on .picture img.measured{opacity:1}
.scene-report.measured-on button.still:not(.has-measured)::after{content:"no regions for this shot";position:absolute;left:8px;bottom:8px;
  padding:2px 6px;background:rgba(0,0,0,.7);color:var(--muted);font:11px ui-monospace,monospace}
.scene-report .fade{display:flex;align-items:center;gap:10px;padding:8px 10px 0;color:var(--muted);font-size:12.5px}
.scene-report .fade input{flex:1;accent-color:#bdbdbd}
.scene-report .lens-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px}
.scene-report .lens-legend{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--muted);font-size:12.5px;margin-left:auto}
.scene-report .lens-legend .tip-key{margin-right:6px;transform:translateY(-3px)}
.scene-report .lens-panels{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.scene-report .lens-panels:has(> .lens-panel:only-child){grid-template-columns:minmax(0,560px)}
.scene-report .lens-panel{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px}
.scene-report .lens-panel figcaption{color:var(--muted);font:12.5px ui-monospace,monospace;margin-bottom:4px}
.scene-report .lens-panel svg,.scene-report .skin-panel svg{display:block;width:100%;height:auto}
.scene-report .plane-ring{fill:none;stroke:#2a2a2a}
.scene-report .plane-axis{stroke:#3a3a3a}
.scene-report .plane-tick,.scene-report .plane-pole{fill:var(--faint);font:10px ui-monospace,monospace}
.scene-report .lens-line{stroke:#8a8a8a;stroke-width:1.5}
.scene-report .lens-end{stroke-width:2;paint-order:stroke}
.scene-report .lens-arrow{cursor:pointer;transition:opacity .2s}
.scene-report .lens-arrow:focus{outline:none}
.scene-report .lens-arrow:focus .lens-line,.scene-report .lens-arrow:hover .lens-line,.scene-report .lens-arrow.lit .lens-line{stroke:#ebebeb;stroke-width:2}
.scene-report .lens-arrow.dim{opacity:.16}
.scene-report .hit{stroke:transparent;stroke-width:16;stroke-linecap:round}
.scene-report .hit-dot{fill:transparent}
.scene-report .lens-detail{margin-top:14px}
.scene-report .balance-seg{stroke:none;cursor:default}
.scene-report .balance-seg:hover,.scene-report .balance-seg:focus{outline:none;filter:drop-shadow(0 0 2px #ebebeb)}
.scene-report .bar-total{fill:var(--ink);font:11px ui-monospace,monospace}
.scene-report .bar-group{fill:var(--ink);font:12px ui-monospace,monospace}
.scene-report .skin-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr))}
.scene-report .skin-panel{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px}
.scene-report .skin-panel figcaption{font-size:13px;color:var(--ink);padding:4px 2px 0}
.scene-report .skin-band{fill-opacity:.1;stroke-opacity:.7;stroke-width:1}
.scene-report .skin-ref{stroke:var(--muted);stroke-width:1}
.scene-report .skin-iqr{stroke:#6f6f6f;stroke-width:1}
.scene-report .skin-point{stroke-width:2;paint-order:stroke}
.scene-report .skin-label{fill:var(--muted);font:10px ui-monospace,monospace}
@media (prefers-reduced-motion:reduce){.scene-report .picture img.measured{transition:none}}
/* ---------- the film, and the zoom into the scene ---------- */
.scene-report .film-chart svg{min-width:760px}
.scene-report .film-chart{overflow-x:auto}
.scene-report .hit-rect{fill:transparent;cursor:crosshair}
.scene-report .hit-rect:focus{outline:none;stroke:#ebebeb;stroke-width:1}
.scene-report .scene-bracket{fill:none;stroke:#ebebeb;stroke-width:1.5}
.scene-report .bracket-label{fill:var(--ink);font:12px ui-monospace,monospace}
.scene-report .zoom-lines{fill:none;stroke:#6f6f6f;stroke-width:1}
.scene-report .movement-mark{stroke:#ebebeb;stroke-width:1;stroke-opacity:.7}
.scene-report .movement-mark-label{fill:var(--muted);font:11px ui-monospace,monospace}
.scene-report .seg-label{font:11px ui-monospace,monospace;pointer-events:none}
.scene-report .family-list{display:grid;gap:10px}
.scene-report .family-row{display:grid;grid-template-columns:minmax(150px,22ch) 1fr;grid-template-areas:"name bar" "name share";gap:4px 16px;align-items:center}
.scene-report .family-name{grid-area:name;display:flex;flex-direction:column;font-size:14px}
.scene-report .family-name span{color:var(--muted);font-size:13px}
.scene-report .family-bar{grid-area:bar;display:flex;height:22px;border-radius:3px;overflow:hidden;gap:2px;background:var(--bg)}
.scene-report .family-bar i{display:block;min-width:2px}
.scene-report .family-share{grid-area:share;color:var(--faint);font-size:12.5px}
@media (max-width:640px){.scene-report .family-row{grid-template-columns:1fr;grid-template-areas:"name" "bar" "share"}}
.scene-report .picker{font:inherit;font-size:14px;color:var(--ink);background:var(--panel-2);border:1px solid var(--rule);border-radius:4px;padding:5px 8px;max-width:100%}
.scene-report .constellation.compact{display:none}
.scene-report .player-shell.docked .constellation.compact{display:block;position:absolute;right:calc(100% + 10px);bottom:-1px;width:210px;padding:8px 10px;
  box-shadow:0 10px 40px rgba(0,0,0,.6)}
.scene-report .constellation.compact .constellation-title{margin-bottom:2px}
@media (max-width:900px){.scene-report .player-shell.docked .constellation.compact{display:none}}
.scene-report .family-row.is-scene .family-bar{outline:1.5px solid #ebebeb;outline-offset:2px}
.scene-report .setting-cell{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.scene-report .setting-cell .swatch{display:inline-block;width:18px;height:14px;border:1px solid #444}
.scene-report .grammar-mark{fill:#ebebeb;font:13px ui-monospace,monospace}
.scene-report .warn-cell{color:#f0b35a}
.scene-report .path-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.scene-report .path-panel{margin:0}
.scene-report .path-panel svg{width:100%;height:auto;display:block}
.scene-report .path-frame{fill:#1b1b1b;stroke:#444}
.scene-report .path-guide{stroke:#333}
.scene-report .path-line{fill:none;stroke-width:1.5}
.scene-report .clickable-mark{cursor:pointer}
