* { box-sizing: border-box; }
:root { --ink: #171616; --pencil: #ab362b; --rule: #aaa49e; }
body { max-width: 1280px; margin: auto; padding: 26px clamp(15px, 5vw, 72px) 65px; background: #fff; color: var(--ink); font-family: "Courier Prime", "Courier New", monospace; }
.sequence { margin: 0; padding: 16px 0 20px; border-bottom: 1px solid var(--rule); }
.strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(5px, 1.5vw, 17px); }
button { font: inherit; cursor: pointer; color: inherit; }
.frame { display: grid; width: 100%; padding: 3px; border: 1px solid var(--ink); background: #fff; text-align: left; }
.frame img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: contain; background: #111; }
.frame:hover, .play:hover { border-color: var(--pencil); background: #fff4ee; }
.play { background: white; border: 1px solid var(--ink); margin-top: 9px; padding: 4px 12px; font-size: 12px; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--pencil); outline-offset: 3px; }
dialog { width: min(1000px, calc(100% - 24px)); max-height: 95dvh; border: 1px solid var(--ink); padding: 0; background: white; color: var(--ink); }
dialog::backdrop { background: #000b; }
.player-bar { display: flex; justify-content: flex-end; gap: 12px; align-items: center; padding: 7px 12px; }
.player-bar button { font-size: 22px; border: 0; background: transparent; }
video { display: block; width: 100%; max-height: 78dvh; background: #111; }
.error { padding: 0 12px; }
