.project-card{width:100%;font:inherit;text-align:left;cursor:pointer;appearance:none}
.project-card:hover,.project-card:focus-visible{border-color:rgba(255,255,255,.6)}
body.video-open{overflow:hidden}
.video-overlay[hidden]{display:none}
.video-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:22px;background:rgba(0,0,0,.86);backdrop-filter:blur(12px)}
.video-panel{width:min(100%,1000px);max-height:95dvh;display:flex;flex-direction:column;overflow:hidden;background:#101010;border:1px solid rgba(255,255,255,.22);border-radius:20px;box-shadow:0 25px 80px rgba(0,0,0,.6)}
.video-panel-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 18px 14px 24px}
.video-modal-title{margin:0;font:600 clamp(1.15rem,2vw,1.7rem)/1.2 var(--sans);letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.video-close{flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:#222;color:var(--paper);font:400 2rem/1 var(--sans);cursor:pointer}
.video-close:hover,.video-close:focus-visible{background:#393939;outline:2px solid var(--paper);outline-offset:2px}
.video-frame{display:block;width:100%;height:min(72dvh,700px);min-height:300px;border:0;background:#000}
.video-fallback{margin:0;padding:12px 24px 17px;color:#b9b9b9;font:400 .875rem/1.45 var(--sans)}
.video-fallback a{color:var(--paper);text-underline-offset:3px}
@media(max-width:600px){.video-overlay{padding:0}.video-panel{width:100%;max-height:100dvh;border-radius:0}.video-panel-header{padding:12px 14px}.video-frame{height:72dvh;min-height:0}.video-fallback{padding:12px 16px 18px}}
