main{max-width:1400px;margin:0 auto;padding:35px 35px 70px}.intro{max-width:750px;line-height:1.7}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:35px}.role-card{position:relative;aspect-ratio:1;overflow:hidden;color:#fff;text-decoration:none}.role-card img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .6s,transform .7s}.role-card:hover img{filter:grayscale(0);transform:scale(1.035)}.role-label{position:absolute;bottom:0;left:0;right:0;background:#000;padding:12px 15px;font-size:18px}.role-label small{display:block;color:#999;font-size:11px;margin-top:5px}.role-placeholder{height:100%;display:flex;align-items:center;justify-content:center;background:#222;color:#777;padding:25px;box-sizing:border-box;font-size:25px;text-align:center}.project-hero{display:block;max-width:100%;max-height:70vh;object-fit:contain;margin:25px 0}.role-credit{color:#e88c42}@media(max-width:850px){.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){main{padding:25px 16px}.role-grid{grid-template-columns:1fr}}
.project-video{display:block;width:100%;max-height:75vh;background:#000;margin:20px 0 45px}

.breakdown-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.breakdown-grid figure{margin:0}.breakdown-grid video{width:100%;background:#000;aspect-ratio:16/9}.breakdown-grid figcaption{font-size:12px;color:#aaa;margin:8px 0 20px}@media(max-width:650px){.breakdown-grid{grid-template-columns:1fr}}

.role-group-title{font-size:clamp(24px,3vw,38px);margin-top:45px}section#vfx-supervision{margin-top:65px}

.samsui-gallery img{width:100%;max-height:550px;object-fit:contain;background:#000}

.role-card .tile-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:grayscale(1);transition:opacity 1.2s,filter .6s}.role-card .tile-video.active{opacity:1}.role-card:hover .tile-video{filter:grayscale(0)}.role-label{z-index:2}

.document-image{display:block;border:0;padding:0;background:#000;width:100%;cursor:zoom-in}.production-gallery img{width:100%;max-height:600px;object-fit:contain}.document-close{position:absolute;right:12px;top:8px;background:#000;color:#fff;border:0;font-size:30px}#document-viewer{background:#111;border:0;padding:35px;max-width:95vw;max-height:95vh}#document-viewer img{display:block;max-width:85vw;max-height:85vh;object-fit:contain}#document-viewer::backdrop{background:#000c}
#document-viewer{box-sizing:border-box;width:95vw}#document-viewer img{width:100%;max-width:100%;height:auto;max-height:85vh;object-fit:contain}

.vfx-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.vfx-category-grid .role-card{border:1px solid #ffffff24;box-sizing:border-box}.vfx-category-grid .role-card:hover{border-color:#ffffff55}@media(max-width:600px){.vfx-category-grid{grid-template-columns:1fr}}

.vfx-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.vfx-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.vfx-category-grid{grid-template-columns:1fr}}.imdb-preview{display:block;border:1px solid #ffffff24;padding:22px;margin:28px 0 36px;max-width:540px;text-decoration:none}.imdb-preview strong{display:block;font-size:23px;margin-bottom:10px}.imdb-preview small{display:block;color:#aaa;line-height:1.6}.imdb-preview .imdb-brand{display:inline-block;background:#f5c518;color:#000;padding:4px 9px;margin-bottom:14px;font-weight:bold}

.vfx-introduction{max-width:1000px;margin:0 0 44px;line-height:1.7}.vfx-introduction p{margin:0 0 18px}.film-project-poster{display:block;width:min(100%,430px);max-height:650px;object-fit:contain;margin:24px 0 40px}.poster-preview img{animation:poster-pan 15s ease-in-out infinite alternate}@keyframes poster-pan{from{transform:scale(1)}to{transform:scale(1.08)}}@media(prefers-reduced-motion:reduce){.poster-preview img{animation:none}}

.role-card .tile-video{z-index:1}.role-card .role-label{z-index:3}
