/* V3: minimal diagonal reveal controls. */

.reveal-shell>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#080808}
.reveal-shell .project-video{z-index:1;pointer-events:none}
.reveal-shell .play-cover{z-index:5;inset:auto;left:calc(50% - 26px);top:calc(50% - 26px);width:52px;height:52px;background:none;padding:0;gap:0}
.reveal-shell .play-icon{width:52px;height:52px;display:flex;flex-direction:column;justify-content:center;gap:2px;background:#101010e8;border:1px solid #fff;border-radius:50%;box-shadow:0 2px 12px #0006}
.reveal-shell .play-icon svg{width:19px;height:19px}
.reveal-shell .play-label{font-size:10px;line-height:12px;letter-spacing:0;text-transform:none}
.reveal-divider{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
.reveal-divider line{stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px #000)}
.reveal-slider{position:absolute;z-index:4;left:-26px;top:50%;width:calc(100% + 52px);height:52px;margin:-26px 0 0;padding:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:ew-resize;touch-action:pan-y}
.reveal-slider::-webkit-slider-runnable-track{height:0;background:transparent}
.reveal-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:52px;height:52px;margin-top:-26px;border-radius:50%;border:2px solid #f4f4ee;background:#101010 url('reveal-handle.svg') center/48px no-repeat;box-shadow:0 2px 14px #0008}
.reveal-slider::-moz-range-track{height:0;background:transparent}
.reveal-slider::-moz-range-thumb{box-sizing:border-box;width:52px;height:52px;border-radius:50%;border:2px solid #f4f4ee;background:#101010 url('reveal-handle.svg') center/48px no-repeat}
.reveal-slider:focus-visible{outline:2px solid #fff;outline-offset:3px}
.reveal-shell .video-loading{z-index:5;top:auto;bottom:10px;left:10px}
.reveal-transport{display:flex;align-items:center;gap:8px;background:#0b0b0b;padding:4px 6px;border:1px solid #282828;border-top:0}
.reveal-transport button{display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:#d5d5d1;min-height:44px;min-width:44px;padding:10px}
.reveal-transport button[hidden]{display:none}
.reveal-transport button:hover{color:#fff}
.reveal-transport button svg{width:19px;height:19px}
.time-seek{min-width:0;flex:1;width:50px;accent-color:#d4d4cf;cursor:pointer;height:32px}
.time-readout{font-size:10px;color:#999;font-variant-numeric:tabular-nums;min-width:28px}





.film:fullscreen{background:#000;display:flex;flex-direction:column;justify-content:center;padding:20px;overflow:auto}
.film:fullscreen .video-shell{width:100%;max-height:calc(100vh - 190px);aspect-ratio:16/9}
.film:fullscreen .mode-hint{display:none}
@media(max-width:600px){.reveal-transport{gap:2px;padding:2px}}
.reveal-slider[hidden]{display:none}
.film .reveal-caption{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding-top:10px;letter-spacing:0}
.reveal-caption .mode-hint{margin:0;font-size:10px;line-height:1.5;color:#999}
.reveal-caption .video-duration{flex:none;white-space:nowrap;font-size:10px;color:#999}

/* One decoder stays inside the visible frame, behind the GPU reveal. */
.reveal-shell>video.packed-decoder{z-index:0;opacity:.001;pointer-events:none}
.reveal-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;background:#080808}
.reveal-shell .video-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2}
.reveal-shell .video-poster[hidden]{display:none}
.reveal-shell .video-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#080808}
.reveal-shell .preview-project{clip-path:polygon(62% 0,100% 0,100% 100%,38% 100%)}

/* Approved compact buffering feedback; real TimeRanges, no legend. */
.reveal-shell .video-loading{display:flex;align-items:center;gap:9px;top:auto;bottom:18px;left:50%;transform:translateX(-50%);padding:10px 14px;background:#0b0b0bf0;border:1px solid #ffffff30;border-radius:5px;font-size:12px;white-space:nowrap;box-shadow:0 4px 20px #0008}
.reveal-shell .video-loading[hidden]{display:none}
.buffer-ring{width:22px;height:22px;flex:none}
.buffer-ring-fill{transition:stroke-dasharray .2s linear}
.seek-wrap{position:relative;flex:1;min-width:0;height:32px}
.buffer-track{position:absolute;left:6px;right:6px;top:14px;height:5px;background:#303030;border-radius:3px;overflow:hidden;pointer-events:none}
.buffer-ranges span{position:absolute;top:0;height:5px;background:#92928e}

.seek-wrap .time-seek{position:relative;display:block;appearance:none;-webkit-appearance:none;width:100%;height:32px;margin:0;padding:0;background:transparent}
.seek-wrap .time-seek::-webkit-slider-runnable-track{height:5px;background:transparent}
.seek-wrap .time-seek::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:12px;height:12px;margin-top:-3.5px;background:#eee;border:0;border-radius:50%}
.seek-wrap .time-seek::-moz-range-track{height:5px;background:transparent}
.seek-wrap .time-seek::-moz-range-progress{background:transparent}
.seek-wrap .time-seek::-moz-range-thumb{width:12px;height:12px;background:#eee;border:0;border-radius:50%}
.seek-wrap .time-seek:focus-visible{outline:1px solid #eee;outline-offset:2px;border-radius:3px}
@media(max-width:600px){.reveal-shell .video-loading{padding:8px 11px;bottom:12px;font-size:11px}.buffer-ring{width:20px;height:20px}}
@media(prefers-reduced-motion:reduce){.buffer-ring-fill{transition:none}}
