        /* [1. 글로벌 프리미엄 컬러 변수] */
        :root {
            --base-bg: #080b11;
            /* 시네마틱 딥 인디고 */
            --alt-bg: #0e1320;
            /* 짙은 슬레이트 인디고 */
            --card-bg: #141b2d;
            /* 매트 네이비 차콜 */
            --accent-color: #ff2a5f;
            /* 벨벳 크림슨 */
            --text-main: #f1f3f9;
            /* 소프트 아이스 화이트 */
            --text-muted: #788297;
            /* 쿨 슬레이트 그레이 */
            --border-line: rgba(255, 255, 255, 0.05);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            background-color: var(--base-bg);
            color: var(--text-main);
            font-family: 'Montserrat', 'Noto Sans KR', sans-serif;
            line-height: 1.7;
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
        }

        .container {
            width: 85%;
            max-width: 1500px;
            margin: 0 auto;
            padding: 120px 0;
        }

        span.accent {
            color: var(--accent-color);
            text-shadow: 0 0 15px rgba(255, 42, 95, 0.2);
        }

        /* [2. 시네마 오프닝 로딩 화면] */
        #loader {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            background: radial-gradient(circle at center, #111726 0%, #04060a 100%);
            z-index: 9999;
            opacity: 1;
            visibility: visible;
            transition: opacity 0.8s cubic-bezier(0.77, 0, 0.175, 1), visibility 0.8s;
        }

        #loader.loaded {
            opacity: 0;
            visibility: hidden;
        }

        .loader-inner {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            text-align: center;
            width: 100%;
            max-width: 450px;
            padding: 0 20px;
        }

        .loader-logo {
            font-size: clamp(1.3rem, 4vw, 2.2rem);
            font-weight: 900;
            text-transform: uppercase;
            margin-bottom: 30px;
            position: relative;
            background: linear-gradient(90deg, #f1f3f9 0%, #ffffff 25%, var(--accent-color) 50%, #ffffff 75%, #f1f3f9 100%);
            background-size: 200% auto;

            /* ⚡ [경고선 제거] 웹 표준 속성을 세트로 추가하여 노란 물결을 완벽 제거 */
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;

            animation: chromeSheen 3s linear infinite, cinematicFocus 1.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
            will-change: letter-spacing, filter, opacity, background-position;
        }

        .loader-frame {
            width: 100%;
            height: 3px;
            background-color: rgba(255, 255, 255, 0.02);
            position: relative;
            overflow: hidden;
            border-radius: 4px;
            box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.5);
        }

        .loader-bar {
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, var(--accent-color), #ffffff, var(--accent-color), transparent);
            position: absolute;
            left: -100%;

            /* ⚡ [수정] 무한루프(infinite)를 제거하고, 1.5초 동안 채워진 뒤 상태를 유지(forwards) */
            animation: lineProgress 2s forwards cubic-bezier(0.4, 0, 0.2, 1);
            box-shadow: 0 0 15px var(--accent-color), 0 0 30px var(--accent-color);
        }

        /* 🎬 오프닝 모션 키프레임 (게이지가 빈 곳에서 꽉 차는 연산으로 교정) */
        @keyframes lineProgress {
            0% {
                left: -100%;
            }

            100% {
                left: 0%;
            }

            /* 왼쪽 마진을 0%로 당겨 바를 가득 채운 상태로 고정 */
        }

        @keyframes chromeSheen {
            0% {
                background-position: 200% center;
            }

            100% {
                background-position: 0% center;
            }
        }

        @keyframes cinematicFocus {
            0% {
                letter-spacing: 4px;
                filter: blur(12px) brightness(0.3);
                opacity: 0;
            }

            10% {
                opacity: 1;
            }

            100% {
                letter-spacing: 14px;
                filter: blur(0px) brightness(1);
                opacity: 1;
            }
        }

        /* [3. 스크롤 인터랙션 규격] */
        .reveal {
            opacity: 0;
            transform: translateY(25px);
            transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1), transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
            will-change: transform, opacity;
        }

        .reveal.active {
            opacity: 1;
            transform: translateY(0);
        }

        .section-title {
            margin-bottom: 45px;
            font-size: 2rem;
            font-weight: 700;
            letter-spacing: 2px;
            text-transform: uppercase;
        }

        /* [4. GNB 내비게이션 바] */
        header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            z-index: 1000;
            background-color: transparent;
            border-bottom: 1px solid transparent;
            backdrop-filter: blur(0px);
            -webkit-backdrop-filter: blur(0px);
            opacity: 0;
            transform: translateY(-20px);
            transition: background-color 0.4s, border-color 0.4s, backdrop-filter 0.4s, opacity 0.5s ease, transform 0.5s ease;
        }

        header.scrolled {
            opacity: 1;
            transform: translateY(0);
            background-color: rgba(8, 11, 17, 0.85);
            border-bottom: 1px solid var(--border-line);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
        }

        header .nav-container {
            width: 90%;
            max-width: 1400px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 25px 0;
        }

        .logo {
            font-size: 1.2rem;
            font-weight: 900;
            letter-spacing: 3px;
            color: var(--text-main);
            text-transform: uppercase;
            text-decoration: none;
            /* 밑줄 제거 */
            cursor: pointer;
            transition: opacity 0.3s;
        }

        .logo:hover {
            opacity: 0.8;
            /* 마우스를 올리면 살짝 투명해지게 (선택사항) */
        }

        nav ul {
            display: flex;
            list-style: none;
            gap: 40px;
        }

        nav ul li a {
            font-size: 0.8rem;
            font-weight: 500;
            color: var(--text-muted);
            letter-spacing: 2px;
            transition: color 0.3s;
            position: relative;
            text-transform: uppercase;
            text-decoration: none !important;
            /* 혹시 모를 기본 밑줄 제거 */
        }

        nav ul li a::after {
            content: '';
            position: absolute;
            width: 0;
            height: 2px;
            bottom: -5px;
            left: 0;
            background-color: var(--accent-color);
            transition: width 0.3s ease;
        }

        nav ul li a:hover::after,
        nav ul li a.active::after {
            width: 100%;
        }

        nav ul li a:hover,
        nav ul li a.active {
            color: var(--accent-color);
        }

        /* [5. 히어로 스크롤 피닝 트랙] */
        #home {
            height: 280vh;
            position: relative;
            background-color: var(--base-bg);
        }

        .sticky-hero {
            position: sticky;
            top: 0;
            width: 100%;
            height: 100vh;
            min-height: 500px;
            overflow: hidden;
            background-color: var(--base-bg);
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
        }

        .hero-header-box {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            width: 100%;
            max-width: 1200px;
            padding: 0 20px;
            will-change: transform;
        }

        #hero-text {
            font-size: clamp(2.2rem, 6.5vw, 4.5rem);
            font-weight: 900;
            letter-spacing: 6px;
            line-height: 1.1;
            color: var(--text-main);
            text-transform: uppercase;
            margin-bottom: 0;
            will-change: transform;
            white-space: nowrap;
        }

        .hero-subline {
            font-size: calc(0.65rem + 0.3vw);
            font-weight: 300;
            color: var(--text-muted);
            letter-spacing: 8px;
            margin-top: 20px;
            text-transform: uppercase;
            opacity: 1;
            transition: opacity 0.4s ease, transform 0.4s ease;
        }

        .hero-subline.hidden {
            opacity: 0 !important;
            transform: translateY(-10px) !important;
            pointer-events: none;
        }

        #hero-elements {
            margin-top: 50px;
            opacity: 0;
            will-change: opacity, transform;
            position: relative;
            z-index: 10;
            visibility: hidden;
            pointer-events: none;
        }

        #hero-elements p {
            font-size: 0.85rem;
            color: var(--text-muted);
            letter-spacing: 6px;
            margin-bottom: 20px;
            font-weight: 500;
            text-transform: uppercase;
        }

        /* =========================================================================
   [시네마틱 스크롤 인디케이터 레이아웃 & 애니메이션]
   ========================================================================= */
        .scroll-indicator {
            position: absolute;
            bottom: 40px;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 10px;
            z-index: 10;
            pointer-events: none;

            /* 💡 [추가] 투명도가 바뀔 때 0.4초 동안 시네마틱하게 스르륵 변하도록 설정 */
            transition: opacity 0.4s cubic-bezier(0.25, 1, 0.5, 1);
        }

        /* 스크롤 유도 미니멀 텍스트 */
        .scroll-text {
            font-size: 10px;
            letter-spacing: 0.3em;
            /* 타이포 자간 대폭 확장 */
            color: rgba(255, 255, 255, 0.4);
            /* 미장센을 해치지 않는 은은한 밝기 */
            font-weight: 300;
            font-family: sans-serif;
            text-transform: uppercase;
        }

        /* 화살표 가이드 박스 */
        .scroll-arrow {
            width: 2px;
            height: 40px;
            background: rgba(255, 255, 255, 0.1);
            /* 베이스 가이드 라인 */
            position: relative;
            overflow: hidden;
        }

        /* 아래로 흐르는 실제 화살표 무빙 라인 */
        .arrow-line {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0));
            animation: cinematicScroll 2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
        }

        /* 🎬 할리우드 오프닝 스타일의 컷 무브먼트 애니메이션 */
        @keyframes cinematicScroll {
            0% {
                transform: translateY(-100%);
            }

            50%,
            100% {
                transform: translateY(100%);
            }
        }

        .btn-action {
            display: inline-block;
            background-color: transparent;
            color: var(--text-main);
            border: 1px solid rgba(255, 255, 255, 0.2);
            padding: 15px 38px;
            font-size: 0.8rem;
            font-weight: 600;
            border-radius: 4px;
            cursor: pointer;
            letter-spacing: 3px;
            text-transform: uppercase;
            transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
            position: relative;
            z-index: 20;
        }

        .btn-action:hover {
            background-color: var(--accent-color);
            color: var(--text-main);
            border-color: var(--accent-color);
            box-shadow: 0 0 20px rgba(255, 42, 95, 0.4);
        }

        /* [6. Biography 섹션] */
        #about {
            position: relative;
            background-color: var(--alt-bg);
            border-top: 1px solid var(--border-line);
            border-bottom: 1px solid var(--border-line);
            overflow: hidden;
        }

        .about-blend-image {
            position: absolute;
            right: 0;
            top: 0;
            width: 35%;
            height: 100%;
            background-image: url('image/IMG_20260515_234824_007.jpg');
            background-size: cover;
            background-position: center right;
            opacity: 0.12;
            mix-blend-mode: screen;
            pointer-events: none;
            mask-image: linear-gradient(to left, rgba(0, 0, 0, 1) 40%, rgba(0, 0, 0, 0) 100%);
            -webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, 1) 40%, rgba(0, 0, 0, 0) 100%);
            z-index: 1;
        }

        .about-poster-side {
            display: none;
            width: 100%;
            aspect-ratio: 16 / 9;
            border-radius: 8px;
            border: 1px solid rgba(255, 255, 255, 0.08);
            background: url('image/IMG_20260515_234824_007.jpg') no-repeat center center/cover;
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.5);
        }

        .about-wrapper {
            display: flex;
            gap: calc(20px + 5vw);
            align-items: flex-start;
            position: relative;
            z-index: 2;
        }

        .about-text {
            flex: 1;
            z-index: 5;
        }

        .about-text h3 {
            font-size: 1.7rem;
            margin-bottom: 25px;
            font-weight: 400;
            line-height: 1.6;
            color: var(--text-main);
            letter-spacing: -0.5px;
        }

        .about-text p {
            color: var(--text-muted);
            margin-bottom: 30px;
            font-size: 1rem;
            text-align: justify;
        }

        .about-timeline-side {
            flex: 0.8;
            background: rgba(255, 255, 255, 0.08);
            border: 1px solid rgba(255, 255, 255, 0.15);
            padding: 35px 30px;
            border-radius: 16px;
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
            transition: background 0.3s, border-color 0.3s;
        }

        .about-timeline-side:hover {
            background: rgba(255, 255, 255, 0.12);
            border-color: rgba(255, 255, 255, 0.25);
        }

        .timeline {
            border-left: 2px solid rgba(255, 255, 255, 0.15);
            padding-left: 30px;
        }

        .timeline-item {
            position: relative;
            margin-bottom: 25px;
        }

        .timeline-item::before {
            content: '';
            position: absolute;
            left: -35px;
            top: 8px;
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background-color: rgba(255, 255, 255, 0.4);
            transition: all 0.3s ease;
        }

        .timeline-item:hover::before {
            background-color: #ffffff;
            box-shadow: 0 0 10px #ffffff;
            transform: scale(1.2);
        }

        .timeline-year {
            font-weight: 700;
            color: #ffffff;
            margin-bottom: 6px;
            font-size: 0.95rem;
            letter-spacing: 1px;
        }

        .timeline-title {
            color: rgba(255, 255, 255, 0.6);
            font-size: 0.95rem;
            font-weight: 400;
            transition: color 0.3s;
        }

        .timeline-item:hover .timeline-title {
            color: #ffffff;
        }

        /* [7. 필모그래피 아카이브 섹션] */
        #works {
            background-color: var(--base-bg);
            position: relative;
        }

        .filter-buttons {
            display: flex;
            gap: 10px;
            margin-bottom: 60px;
            padding-bottom: 25px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.06);
            position: relative;
            flex-wrap: wrap;
        }

        .filter-btn,
        a.btn-action {
            background: var(--card-bg);
            border: 1px solid rgba(255, 255, 255, 0.03);
            color: var(--text-muted);
            padding: 11px 26px;
            font-size: 0.75rem;
            font-weight: 500;
            letter-spacing: 2px;
            cursor: pointer;
            transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
            text-transform: uppercase;
            border-radius: 4px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
        }

        .filter-btn.active,
        .filter-btn:hover {
            border-color: var(--accent-color);
            color: var(--text-main);
            background-color: var(--accent-color);
            box-shadow: 0 0 20px rgba(255, 42, 95, 0.3);
            transform: translateY(-2px);
        }

        /* 1. 필모그래피 & 갤러리 공통 그리드 (Grid 방식으로 복귀) */
        .works-grid,
        .gallery-grid {
            display: grid !important;

            /* 💡 핵심 1: auto-fit 대신 auto-fill 사용. 
       빈자리(투명한 칸)를 유지해서 필터링 시에도 왼쪽 정렬을 강제합니다. */
            grid-template-columns: repeat(auto-fill, 350px) !important;

            /* 💡 핵심 2: 그리드 '덩어리' 자체를 화면 중앙으로 배치 */
            justify-content: center !important;

            gap: 25px !important;
            margin: 40px auto 0 auto !important;
            width: 100% !important;
            max-width: 1480px !important;
        }

        /* 2. 카드 규격 (그리드 칸에 꽉 차게) */
        .work-card,
        .gallery-item {
            width: 100% !important;
            /* 350px 칸 안을 꽉 채움 */
            display: flex;
            flex-direction: column;
            background-color: var(--card-bg);
            border-radius: 8px;
            overflow: hidden;
            border: 1px solid var(--border-line);
            transition: transform 0.4s ease, opacity 0.3s ease;
        }

        /* 3. 썸네일 비율 완벽 고정 */
        .work-card .poster-thumb,
        .gallery-item .poster-thumb {
            width: 100%;
            aspect-ratio: 4 / 5 !important;
            /* 필모 4:5, 갤러리 16:9 등 통일 */
            position: relative;
            overflow: hidden;
            background-color: #000;
            display: block !important;
        }

        /* 4. 이미지 찌그러짐 방지 */
        .work-card .poster-img,
        .gallery-item .poster-img {
            position: absolute;
            top: 0;
            left: 0;
            width: 100% !important;
            height: 100% !important;
            object-fit: cover !important;
        }

        /* 5. 모바일 환경(480px 이하) */
        @media (max-width: 480px) {

            .works-grid,
            .gallery-grid {
                grid-template-columns: 1fr !important;
                /* 모바일은 1줄로 꽉 차게 */
                width: 90% !important;
            }
        }

        .work-info {
            flex-grow: 1 !important;
            display: flex !important;
            flex-direction: column !important;
        }

        .work-card.hide {
            display: none !important;
        }

        .work-card:hover {
            transform: translateY(-4px);
            border-color: rgba(255, 255, 255, 0.15);
            box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5);
        }

        .poster-thumb {
            position: relative;
            width: 100%;
            aspect-ratio: 4 / 5;
            background-color: #000;
            border-bottom: 1px solid var(--border-line);
            cursor: pointer;
            overflow: hidden;
        }

        .poster-thumb .poster-img {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: 2;
            transition: opacity 0.5s cubic-bezier(0.25, 1, 0.5, 1), transform 0.5s ease;
        }

        .poster-thumb .hover-highlight {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: 1;
            transform: scale(1.05);
            transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
        }

        .poster-thumb:hover .poster-img {
            opacity: 0;
            transform: scale(0.95);
        }

        .poster-thumb:hover .hover-highlight {
            transform: scale(1);
        }

        .poster-thumb::after {
            content: '\f04b';
            font-family: 'Font Awesome 6 Free';
            font-weight: 900;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) scale(0.8);
            width: 55px;
            height: 55px;
            background: rgba(255, 42, 95, 0.95);
            color: #fff;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            padding-left: 4px;
            opacity: 0;
            z-index: 3;
            transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
            box-shadow: 0 0 25px rgba(255, 42, 95, 0.5);
        }

        .poster-thumb:hover::after {
            opacity: 1;
            transform: translate(-50%, -50%) scale(1);
        }

        .work-info {
            padding: 20px;
        }

        .work-category {
            font-size: 0.7rem;
            color: var(--accent-color);
            font-weight: 600;
            text-transform: uppercase;
            margin-bottom: 10px;
            display: block;
            letter-spacing: 2px;
        }

        .work-title {
            font-size: 1rem;
            font-weight: 600;
            margin-bottom: 8px;
            color: var(--text-main);
            letter-spacing: -0.3px;
        }

        .work-desc {
            color: var(--text-muted);
            font-size: 0.8rem;
            font-weight: 400;
        }

        /* [8. 극장식 시네마 모달 팝업 레이어] */
        /* =========================================================================
           [8. 극장식 시네마 모달 팝업 레이어] - 앰비언트 라이팅 컷팅 버그 완전 정복
           ========================================================================= */
        .theater-modal {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            background-color: rgba(4, 6, 10, 0.98);
            z-index: 2000;
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            visibility: hidden;
            backdrop-filter: blur(15px);
            -webkit-backdrop-filter: blur(15px);
            transition: opacity 0.5s cubic-bezier(0.25, 1, 0.5, 1), visibility 0.5s;

            /* 🚨 [핵심 처방 1] 영상 크기가 커져도 조명이 잘리지 않도록 모달 내부에 숨쉴 공간(안전 가이드라인) 주입 */
            padding: 10vh 5vw !important;
            overflow: visible !important;
        }

        .theater-modal.open {
            opacity: 1;
            visibility: visible;
        }

        .theater-container {
            /* 🚨 [핵심 처방 2] 가로세로 유연성을 주어 화면 높이가 낮아도 영상이 조명 공간을 침범하지 않게 유동적 다운사이징 제어 */
            width: 100% !important;
            max-width: 1400px !important;
            /* 1500px에서 살짝 줄여서 빛이 퍼질 절대적인 캔버스 면적을 확보합니다 */
            aspect-ratio: 16 / 9 !important;
            background: #000;
            border: 1px solid rgba(255, 255, 255, 0.08);
            box-shadow: 0 40px 80px rgba(0, 0, 0, 0.9), 0 0 60px rgba(255, 42, 95, 0.08);
            position: relative;
            transform: scale(0.93);
            transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);

            /* 🚨 [핵심 처방 3] 이 박스를 뚫고 나가는 그라데이션 그래픽 요소를 절대로 필터링하거나 자르지 못하게 선언 */
            overflow: visible !important;
        }

        /* [최적화 완료] 엠비언트 라이팅 */
        .theater-container::before {
            content: '';
            position: absolute;
            /* 🚨 [핵심 처방 4] 번짐 면적과 퍼포먼스 가속 정렬 레이아웃 싱크 교정 */
            top: -25% !important;
            left: -25% !important;
            width: 150% !important;
            height: 150% !important;
            background: radial-gradient(circle, rgba(255, 42, 95, 0.35) 0%, rgba(255, 42, 95, 0.05) 50%, rgba(0, 0, 0, 0) 70%) !important;
            z-index: -1;
            pointer-events: none;
            animation: pulse 4s infinite ease-in-out;
            will-change: transform;
        }

        /* 애니메이션 가속 연산 최적화 */
        @keyframes pulse {

            0%,
            100% {
                transform: scale(1);
                opacity: 0.4;
            }

            50% {
                transform: scale(1.03);
                opacity: 0.7;
            }
        }

        .theater-modal.open .theater-container {
            transform: scale(1);
        }

        #theater-player-frame {
            width: 100%;
            height: 100%;
            border: none;
            background: #000;
        }

        .theater-close {
            position: absolute;
            top: -45px;
            right: 0;
            background: none;
            border: none;
            color: rgba(255, 255, 255, 0.5);
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 10px;
            font-family: 'Montserrat', sans-serif;
            letter-spacing: 2px;
            font-size: 0.8rem;
            font-weight: 500;
            transition: color 0.3s;
        }

        .theater-close:hover {
            color: var(--accent-color);
        }

        .theater-close i {
            font-size: 1.2rem;
        }

        /* [9. 장비 섹션] */
        #equipment {
            background-color: var(--base-bg);
            border-top: 1px solid var(--border-line);
            border-bottom: 1px solid var(--border-line);
        }

        .gear-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 35px;
            margin-top: 50px;
        }

        .gear-card {
            background-color: var(--card-bg);
            border: 1px solid var(--border-line);
            border-left: 4px solid var(--text-muted);
            padding: 40px;
            border-radius: 8px;
            position: relative;
            transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), border-color 0.4s ease, background-color 0.4s ease;
        }

        .gear-card:hover {
            transform: translateX(8px);
            border-color: rgba(255, 42, 95, 0.3);
            border-left-color: var(--accent-color);
            background-color: #192237;
            box-shadow: 0 20px 45px rgba(0, 0, 0, 0.6);
        }

        .gear-header {
            display: flex;
            align-items: baseline;
            gap: 15px;
            margin-bottom: 25px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.03);
            padding-bottom: 15px;
        }

        .gear-idx {
            font-size: 1.1rem;
            font-weight: 700;
            color: var(--accent-color);
            opacity: 0.7;
        }

        .gear-header h3 {
            font-size: 1.2rem;
            font-weight: 700;
            letter-spacing: 2px;
            color: var(--text-main);
            text-transform: uppercase;
        }

        .gear-list {
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: 20px;
        }

        .gear-item {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        .gear-name {
            font-size: 1.05rem;
            font-weight: 600;
            color: var(--text-main);
            letter-spacing: -0.2px;
        }

        .gear-spec {
            font-size: 0.85rem;
            color: var(--text-muted);
            font-weight: 400;
        }

        /* [10. 프로세스 섹션] */
        #process {
            background-color: var(--alt-bg);
            border-bottom: 1px solid var(--border-line);
        }

        .process-steps {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 30px;
            padding-top: 70px;
        }

        .step-card {
            position: relative;
            overflow: visible;
            height: 250px;
        }

        .step-box {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: var(--card-bg);
            padding: 45px 35px;
            border-radius: 12px;
            border: 1px solid var(--border-line);
            z-index: 5;
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
            transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.15), border-color 0.4s ease, background-color 0.4s ease;
        }

        .step-bg-layer {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-size: cover;
            background-position: center;
            border-radius: 12px;
            z-index: 1;
            opacity: 0;
            transform: translateY(0px) scale(0.96);
            transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.15), opacity 0.4s ease;
            box-shadow: 0 -15px 35px rgba(0, 0, 0, 0.7);
            filter: brightness(0.7) contrast(1.1);
        }

        .step-num {
            font-size: 1.8rem;
            font-weight: 900;
            color: rgba(255, 255, 255, 0.03);
            transition: color 0.4s;
            letter-spacing: 1px;
        }

        .step-title {
            font-size: 1.15rem;
            font-weight: 600;
            margin-top: 15px;
            margin-bottom: 12px;
            transition: color 0.4s;
            color: var(--text-main);
            letter-spacing: -0.3px;
        }

        .step-desc {
            font-size: 0.85rem;
            color: var(--text-muted);
            transition: color 0.4s;
            font-weight: 400;
        }

        .step-card:hover .step-box {
            border-color: rgba(255, 42, 95, 0.3);
            background-color: #1a2238;
            transform: translateY(50px);
        }

        .step-card:hover .step-bg-layer {
            opacity: 1;
            transform: translateY(-100px) scale(0.97);
            filter: brightness(0.9) contrast(1.1);
        }

        .step-card:hover .step-title {
            color: var(--accent-color);
        }

        .step-card:hover .step-num {
            color: rgba(255, 42, 95, 0.2);
        }

        .step-card:hover .step-desc {
            color: var(--text-main);
        }

        /* [11. 비즈니스 컨택트 섹션] */
        #contact {
            background-color: var(--alt-bg);
            border-top: 1px solid var(--border-line);
        }

        .contact-layout {
            display: grid;
            grid-template-columns: 1fr 1.5fr;
            gap: 100px;
        }

        .contact-info h3 {
            font-size: 1.7rem;
            margin-bottom: 20px;
            font-weight: 600;
        }

        .contact-info p {
            color: var(--text-muted);
            font-size: 0.95rem;
        }

        .info-details {
            display: flex;
            flex-direction: column;
            gap: 25px;
            margin-top: 40px;
        }

        .info-item {
            display: flex;
            align-items: center;
            gap: 15px;
            font-size: 0.9rem;
            color: var(--text-muted);
            font-weight: 400;
        }

        .info-item i {
            color: var(--accent-color);
            font-size: 1rem;
        }

        .contact-form {
            background-color: var(--card-bg);
            padding: 50px;
            border-radius: 12px;
            display: flex;
            flex-direction: column;
            gap: 25px;
            border: 1px solid var(--border-line);
        }

        .form-group {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .form-group input,
        .form-group textarea {
            background-color: var(--base-bg);
            border: 1px solid var(--border-line);
            padding: 16px;
            color: var(--text-main);
            font-size: 0.9rem;
            border-radius: 6px;
            font-family: inherit;
            transition: border-color 0.3s;
        }

        .form-group input:focus,
        .form-group textarea:focus {
            outline: none;
            border-color: var(--accent-color);
        }

        /* [12. 푸터 영역] */
        footer {
            background-color: #05070a;
            padding: 60px 0;
            text-align: center;
            color: #4b5563;
            font-size: 0.75rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            border-top: 1px solid var(--border-line);
        }

        /* ⚡ [반응형 레이아웃 통합 허브 미디어 쿼리] */
        @media (max-width: 1200px),
        (orientation: landscape) and (max-height: 620px) {
            .container {
                padding: 60px 0;
            }

            header .nav-container {
                width: 94% !important;
                padding: 18px 0 !important;
            }

            nav ul {
                gap: calc(10px + 1vw) !important;
            }

            .logo {
                font-size: 1.05rem !important;
                letter-spacing: 2px !important;
            }

            nav ul li a {
                font-size: 0.75rem !important;
                letter-spacing: 1px !important;
            }

            .about-wrapper {
                display: flex !important;
                flex-direction: column !important;
                gap: 40px !important;
                position: relative;
            }

            .about-poster-side {
                display: none !important;
            }

            .about-blend-image {
                display: block !important;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                background-image: url('image/IMG_20260515_234824_007.jpg');
                background-size: cover;
                background-position: center center;
                opacity: 0.08;
                mix-blend-mode: screen;
                pointer-events: none;
                z-index: 1;
                mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 100%);
                -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 100%);
            }

            .about-text,
            .about-timeline-side {
                position: relative;
                z-index: 2;
                width: 100% !important;
            }

            .contact-layout {
                grid-template-columns: 1fr;
                flex-direction: column;
                gap: 40px;
            }

            .gear-grid {
                grid-template-columns: 1fr;
                gap: 20px;
            }

            .process-steps {
                grid-template-columns: repeat(2, 1fr);
                padding-top: 10px;
            }

            .step-card {
                height: auto;
                min-height: 200px;
                margin-bottom: 20px;
            }

            .theater-close {
                top: -40px;
            }
        }

        @media (max-width: 768px) and (orientation: portrait) {
            .container {
                width: 92% !important;
            }

            .section-title {
                font-size: 1.5rem !important;
            }

            .about-poster-side {
                display: none !important;
            }

            .about-blend-image {
                display: block !important;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                background-image: url('image/IMG_20260515_234824_007.jpg');
                background-size: cover;
                background-position: center center;
                opacity: 0.06;
                mix-blend-mode: screen;
                pointer-events: none;
                mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 100%);
                -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 100%);
                z-index: 1;
            }

            .about-wrapper {
                flex-direction: column !important;
                gap: 30px !important;
                padding: 0 10px;
            }

            .about-text {
                position: relative;
                z-index: 2;
            }

            .about-timeline-side {
                width: 100%;
                padding: 25px 20px;
            }

            nav ul {
                display: none;
            }

            .gear-grid {
                grid-template-columns: 1fr !important;
                gap: 20px !important;
            }

            .gear-card {
                padding: 25px 20px !important;
            }

            .contact-layout {
                grid-template-columns: 1fr !important;
                gap: 30px !important;
            }

            .contact-form {
                padding: 30px 20px !important;
                width: 100% !important;
            }

            .form-group input,
            .form-group textarea {
                width: 100% !important;
            }

            .process-steps {
                grid-template-columns: 1fr !important;
                gap: 20px !important;
                padding-top: 40px !important;
            }

            /* 2. 카드 박스 모바일 최적화 */
            .step-card {
                height: auto !important;
                /* 높이 고정 해제 */
                min-height: 200px;
            }

            .step-box {
                padding: 25px 20px !important;
                /* 여백 줄임 */
                position: relative !important;
                /* absolute 해제하여 높이 자연스럽게 확보 */
            }

            /* 3. 글자 튀어나감 방지 (가장 중요) */
            .step-title {
                font-size: 1rem !important;
                word-break: break-all;
                /* 단어가 길면 강제 줄바꿈 */
            }

            .step-desc {
                font-size: 0.8rem !important;
                word-break: break-word;
                /* 글자가 박스를 뚫지 않게 함 */
                white-space: normal;
                /* 자동 줄바꿈 활성화 */
            }
        }

        @media (max-width: 380px) {

            /* 🚨 갤러리 그리드도 같이 묶어줍니다 */
            .works-grid,
            .gallery-grid {
                grid-template-columns: 90% !important;
                justify-content: center !important;
            }
        }

        .work-card {
            width: 100% !important;
            /* 카드도 폰 너비에 맞게 */
        }


        /* ⚡ [상단 GNB용] 미니멀 SNS 아이콘 트랙 */
        .nav-container {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .header-sns-zone {
            display: flex;
            gap: 15px;
            align-items: center;
            margin-left: 30px;
            /* 메뉴와의 간격 격리 */
        }

        .header-sns-icon {
            color: var(--text-muted);
            font-size: 1.1rem;
            transition: color 0.3s ease, transform 0.3s ease;
            text-decoration: none;
        }

        .header-sns-icon:hover {
            color: var(--text-main);
            transform: scale(1.15);
        }

        /* ⚡ [하단 푸터용] 프리미엄 각주 파워 링크 버튼 */
        .footer-sns-wrapper {
            display: flex;
            justify-content: center;
            gap: 20px;
            margin-bottom: 25px;
            /* Copyright 문구와의 간격 */
        }

        .btn-footer-link {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            background-color: rgba(255, 255, 255, 0.02);
            border: 1px solid rgba(255, 255, 255, 0.08);
            padding: 12px 24px;
            color: var(--text-muted);
            font-size: 0.75rem;
            font-weight: 600;
            text-decoration: none;
            letter-spacing: 2px;
            border-radius: 4px;
            transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
        }

        /* 호버 시 디렉터님의 시그니처 크림슨 컬러 변수(--accent-color)로 묵직하게 통일 */
        .btn-footer-link:hover {
            background-color: var(--accent-color);
            border-color: var(--accent-color);
            color: var(--text-main);
            box-shadow: 0 0 20px rgba(255, 42, 95, 0.35);
            transform: translateY(-2px);
        }

        /* ⚡ 우측 하단 플로팅 토글 스위치 */
        .floating-lang-box {
            position: fixed;
            bottom: 30px;
            right: 30px;
            z-index: 2000;
            width: 90px;
            height: 45px;
            background: rgba(255, 255, 255, 0.08);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 25px;
            display: flex;
            align-items: center;
            padding: 5px;
            cursor: pointer;
            opacity: 1;
            /* 💡 기본적으로 다른 페이지(필모 등)에서는 항상 투명도 100% 노출 */
            visibility: visible;
            transition: opacity 0.5s cubic-bezier(0.25, 1, 0.5, 1),
                visibility 0.5s cubic-bezier(0.25, 1, 0.5, 1);
        }

        .floating-lang-box.main-hide {
            opacity: 0 !important;
            visibility: hidden !important;
        }

        /* 움직이는 스위치 손잡이 */
        .switch-knob {
            width: 35px;
            height: 35px;
            background: var(--text-main);
            border-radius: 50%;
            position: absolute;
            left: 5px;
            transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--base-bg);
            font-size: 0.7rem;
            font-weight: 700;
        }

        /* 텍스트 레이아웃 */
        .lang-labels {
            display: flex;
            justify-content: space-between;
            width: 100%;
            padding: 0 10px;
            font-size: 0.7rem;
            font-weight: 700;
            color: var(--text-muted);
        }

        .gallery-item {
            overflow: hidden;
            border-radius: 8px;
            aspect-ratio: 3 / 2;
            /* 갤러리는 가로형 사진에 적합한 비율 */
            transition: transform 0.4s ease;
            aspect-ratio: auto !important;
            height: auto !important;
        }

        .gallery-item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s ease;
        }

        .gallery-item:hover img {
            transform: scale(1.05);
            /* 살짝 커지는 인터랙션 */
        }

        /* 스위치 버튼 디자인 */
        .view-switch-box {
            text-align: center;
            margin: 40px 0;
        }

        .switch-btn {
            background: transparent;
            border: 1px solid rgba(255, 255, 255, 0.3);
            /* 확실히 보이게 변경 */
            color: var(--text-muted);
            padding: 10px 30px;
            margin: 0 10px;
            cursor: pointer;
            transition: all 0.3s;
            font-size: 0.8rem;
            /* 글자가 너무 작진 않은지 확인 */
            letter-spacing: 2px;
        }

        .switch-btn.active {
            border-color: var(--accent-color);
            color: var(--text-main);
        }

        /* 섹션 토글 처리 */
        /* 기존 display: none/block 대신 클래스로 제어 */
        .view-content {
            will-change: transform, opacity;
            display: none !important;
            /* 공간 자체를 없애버림 */
            opacity: 0;
            backface-visibility: hidden;
            transition: opacity 0.3s ease;
            pointer-events: none;
            /* 숨겨진 상태에선 클릭 방지 */
            content-visibility: auto;
            contain-intrinsic-size: 0 1000px;

        }

        /* 활성화 상태: 보임 */
        .view-content.active {
            display: block !important;
            opacity: 1;
            pointer-events: auto;
            content-visibility: auto;
            contain-intrinsic-size: 0 400px;
        }

        .work-card,
        .gallery-item {
            transition: transform 0.3s ease, opacity 0.3s ease;
        }

        /* 갤러리 모드일 때만 #archive 상단 여백을 줄이고 싶다면 */
        .gallery-mode #archive {
            padding-top: 50px !important;
        }

        .toggle-container {
            display: inline-block;
            cursor: pointer;
            margin: 40px 0;
        }

        .toggle-track {
            position: relative;
            width: 300px;
            height: 50px;
            background: #1a1a1a;
            border-radius: 25px;
            display: flex;
            align-items: center;
            padding: 5px;
            border: 1px solid #333;
        }

        .toggle-knob {
            position: absolute;
            width: 140px;
            height: 40px;
            background: #ff2a5f;
            /* 포인트 컬러 */
            border-radius: 20px;
            transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .toggle-label {
            flex: 1;
            text-align: center;
            font-size: 0.8rem;
            font-weight: 700;
            z-index: 1;
            transition: color 0.3s;
            color: #888;
        }

        .toggle-label.active {
            color: #fff;
        }

        /* 갤러리 모드일 때 스위치 이동 */
        .gallery-mode .toggle-knob {
            transform: translateX(150px);
        }

        #works-section {
            display: block;
            /* 초기값 */
        }

        #gallery-section {
            display: none;
            /* 초기값 */
        }

        /* 갤러리 아이템 필터링용 숨김 클래스 */
        .gallery-item.hide {
            display: none !important;
        }

        /* [갤러리 전용 사진 모달 레이아웃] */
        .photo-modal-container {
            width: 90%;
            max-width: 1200px;
            height: 90vh;
            /* 화면 높이의 90% 제한 */
            display: flex;
            align-items: center;
            justify-content: center;
            transform: scale(0.93);
            transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
        }

        #photoModal.open .photo-modal-container {
            transform: scale(1);
        }

        #photo-modal-img {
            max-width: 100%;
            max-height: 100%;
            object-fit: contain;
            /* 비율 유지하면서 꽉 차게 */
            border-radius: 4px;
            box-shadow: 0 30px 60px rgba(0, 0, 0, 0.8), 0 0 40px rgba(255, 42, 95, 0.15);
        }

        /* [갤러리 슬라이더 좌우 네비게이션 버튼] */
        .photo-nav {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background: rgba(0, 0, 0, 0.5);
            border: 1px solid rgba(255, 255, 255, 0.1);
            color: rgba(255, 255, 255, 0.7);
            width: 60px;
            height: 60px;
            border-radius: 50%;
            cursor: pointer;
            z-index: 2010;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
        }

        .photo-nav:hover {
            background: var(--accent-color);
            color: #fff;
            border-color: var(--accent-color);
            box-shadow: 0 0 25px rgba(255, 42, 95, 0.5);
            transform: translateY(-50%) scale(1.1);
        }

        .photo-nav.prev-btn {
            left: 40px;
        }

        .photo-nav.next-btn {
            right: 40px;
        }

        /* 모바일 화면에서는 버튼 크기 축소 */
        @media (max-width: 768px) {
            .photo-nav {
                width: 45px;
                height: 45px;
                font-size: 1.2rem;
            }

            .photo-nav.prev-btn {
                left: 10px;
            }

            .photo-nav.next-btn {
                right: 10px;
            }
        }

        /* [갤러리 전용 호버 효과 수정] 
   마우스 오버 시 사진이 투명해지지 않고 살짝 확대되며 시선 집중 */
        .photo-thumb:hover .poster-img {
            opacity: 1 !important;
            transform: scale(1.05) !important;
        }

        .poster-img {
            width: 100%;
            aspect-ratio: 16 / 9;
            /* 혹은 본인의 사진 비율에 맞게 */
            object-fit: cover;
            /* 이미지가 찌그러지지 않게 꽉 채움 */
            background: #1a1a1a;
            /* 이미지가 뜨기 전 배경색 */
        }

        /* =========================================
           [최종 종결] 중복 코드 충돌 억제 & 갤러리 정상화
           ========================================= */

        /* 🚨 1순위 원인 제거: 카드 전체를 짓누르던 비율 강제 해제 */


        .work-card {
            max-width: 350px !important;
            width: 100% !important;
            flex-direction: column !important;
        }

        /* 썸네일 박스 붕괴 방지 (높이를 auto로 열어줌) */
        .gallery-item .poster-thumb {
            aspect-ratio: auto !important;
            height: auto !important;
            display: block !important;
        }

        /* 💡 사진 원본 비율 100% 보존 (납작해짐, 잘림 완벽 방지) */
        .gallery-item .poster-thumb .poster-img {
            position: relative !important;
            /* 공중에 떠있던 이미지를 바닥으로 내림 */
            width: 100% !important;
            height: auto !important;
            /* 원본 사진의 세로 비율을 스스로 찾게 함 */
            display: block !important;
        }