.view { display: flex; flex-direction: column; gap: var(--s-4); container-type: inline-size; } .title { font-size: var(--font-sm); font-weight: var(--weight-bold); } .fileName { font-size: var(--font-2xs); color: var(--color-text-high); overflow-wrap: anywhere; } .games { display: flex; flex-direction: column; gap: var(--s-2); } .gamesSummary { margin-inline-start: auto; font-size: var(--font-xs); font-weight: var(--weight-semi); color: var(--color-text-high); } .layout { display: grid; grid-template-areas: "player" "timeline" "events"; gap: var(--s-2) var(--s-3); @container (min-width: 900px) { grid-template-areas: "player events" "timeline ."; grid-template-columns: minmax(0, 3fr) minmax(22rem, 1fr); } } .player { grid-area: player; display: flex; flex-direction: column; gap: var(--s-2); min-width: 0; } .timeline { grid-area: timeline; min-width: 0; } .stage { position: relative; } .slot, .videoHost { width: 100%; } .videoHost { position: relative; } .video { display: block; width: 100%; max-height: 70dvh; aspect-ratio: 16 / 9; background: #000; border-radius: var(--radius-box); } .openFile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s-3); aspect-ratio: 16 / 9; padding: var(--s-4); border: var(--border-width) dashed var(--color-border); border-radius: var(--radius-box); font-size: var(--font-sm); text-align: center; overflow-wrap: anywhere; & p { margin: 0; } } .fileButton { display: inline-flex; align-items: center; gap: var(--s-1-5); height: var(--field-size-sm); padding: 0 var(--field-padding); border: var(--border-width) solid var(--color-fill-accent); border-radius: var(--radius-field); background: var(--color-fill-accent); color: var(--color-fg-on-accent); font-size: var(--font-xs); font-weight: var(--weight-bold); cursor: pointer; & input { display: none; } } .events { grid-area: events; display: flex; flex-direction: column; gap: var(--s-2); min-width: 0; /* as tall as the player and its controls beside it, the list scrolling within */ @container (min-width: 900px) { contain: size; } } .list { display: flex; flex-direction: column; gap: var(--s-1); max-height: 70dvh; margin: 0; padding: 0; overflow-y: auto; overscroll-behavior: contain; list-style: none; @container (min-width: 900px) { flex: 1 1 0; min-height: 12rem; max-height: none; } } .entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 var(--s-2); width: 100%; padding: var(--s-1-5) var(--s-2); border: var(--border-width) solid transparent; border-radius: var(--radius-field); background-color: var(--color-bg-high); color: var(--color-text); text-align: start; cursor: pointer; transition: background-color 0.15s; &:hover { background-color: var(--color-bg-higher); } &[aria-current="true"] { border: var(--border-style-accent); background-color: var(--color-bg-higher); } } .entryType { font-size: var(--font-xs); font-weight: var(--weight-bold); } .entryTime { font-size: var(--font-xs); font-weight: var(--weight-semi); font-variant-numeric: tabular-nums; text-align: end; } .entryWhere, .entryPosition { font-size: var(--font-2xs); color: var(--color-text-high); } .entryPosition { font-variant-numeric: tabular-nums; text-align: end; } .empty { margin: 0; font-size: var(--font-xs); color: var(--color-text-high); } .castSide { display: flex; flex-direction: column; gap: var(--s-1); } .castSideHeader { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); } .castSideTitle { font-size: var(--font-xs); font-weight: var(--weight-bold); } .castTeam { display: inline-flex; align-items: center; gap: var(--s-1); } .castSideNote { margin: 0; font-size: var(--font-2xs); color: var(--color-text-high); }