 
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
    <title>莫扎兔影视 - 海量影视电影电视剧免费在线看 | 每日更新热门大片</title>
    <meta name="keywords" content="真实电影推荐,在线影视网站,新片预告,经典电影,莫扎兔影视">
    <meta name="description" content="莫扎兔影视 提供真实欧美大片、国产剧集、高分经典影视信息，高清画质无广告，每日更新不等待。支持预约提醒，打造影迷一站式追剧平台。">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            background: #fff7e8;
            font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
            color: #3e2f23;
            line-height: 1.4;
            opacity: 0;
            transition: opacity 0.2s ease;
        }
        body.loaded { opacity: 1; }

        .rabbit-container {
            max-width: 1440px;
            margin: 0 auto;
            padding: 1rem;
        }

        /* 毛茸茸圆润头部 */
        .fluffy-header {
            background: rgba(255, 245, 235, 0.96);
            backdrop-filter: blur(12px);
            border-radius: 3rem 1rem 3rem 1rem;
            padding: 0.6rem 2rem;
            margin-bottom: 1.8rem;
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 1rem;
            border-bottom: 4px solid #f7b05e;
            box-shadow: 0 8px 18px rgba(0,0,0,0.03);
        }
        .logo h1 {
            font-size: 2rem;
            font-weight: 800;
            background: linear-gradient(135deg, #f7b05e, #e67e22);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            letter-spacing: -0.5px;
        }
        .desktop-nav {
            display: flex;
            gap: 1.2rem;
        }
        .desktop-nav a {
            color: #b36b2e;
            text-decoration: none;
            font-weight: 600;
            font-size: 0.9rem;
            padding: 0.3rem 0;
            border-bottom: 2px solid transparent;
        }
        .desktop-nav a:hover { border-bottom-color: #f7b05e; color: #e67e22; }
        .search-area {
            display: flex;
            align-items: center;
            gap: 0.8rem;
            background: #ffffff;
            padding: 0.25rem 1rem;
            border-radius: 2rem;
            border: 1px solid #f7d5a8;
        }
        .search-area input {
            background: transparent;
            border: none;
            padding: 0.4rem 0;
            width: 140px;
            outline: none;
            font-size: 0.8rem;
            color: #6b4a2a;
        }
        .avatar-rabbit {
            width: 34px;
            height: 34px;
            border-radius: 50%;
            object-fit: cover;
            cursor: pointer;
            border: 2px solid #f7b05e;
        }
        .menu-toggle {
            display: none;
            background: none;
            border: none;
            font-size: 1.8rem;
            cursor: pointer;
            color: #e67e22;
        }
        .mobile-sidebar {
            position: fixed;
            top: 0;
            left: -280px;
            width: 280px;
            height: 100%;
            background: #fffaf0e6;
            backdrop-filter: blur(20px);
            z-index: 200;
            transition: left 0.3s;
            padding: 2rem 1.5rem;
            display: flex;
            flex-direction: column;
            gap: 1.2rem;
            border-right: 2px solid #f7b05e;
        }
        .mobile-sidebar.open { left: 0; }
        .mobile-sidebar a {
            color: #8f5a2c;
            text-decoration: none;
            font-weight: 500;
            padding: 0.6rem 0;
            border-bottom: 1px solid #f7e3cc;
        }
        .overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.4);
            z-index: 150;
            display: none;
        }
        .overlay.show { display: block; }

        .bread-rabbit {
            font-size: 0.7rem;
            color: #d4a373;
            margin: 0.2rem 0 1rem 0.5rem;
        }

        /* 胡萝卜轮播 */
        .carrot-carousel {
            border-radius: 2rem;
            overflow: hidden;
            margin-bottom: 2rem;
            box-shadow: 0 14px 24px -8px rgba(0,0,0,0.1);
            border: 1px solid #f7d5a8;
        }
        .carousel-box {
            position: relative;
            width: 100%;
            aspect-ratio: 16/6.5;
        }
        .carousel-track {
            display: flex;
            transition: transform 0.5s ease;
            height: 100%;
        }
        .carousel-slide {
            flex: 0 0 100%;
            position: relative;
        }
        .carousel-slide img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .bunny-caption {
            position: absolute;
            bottom: 20px;
            left: 20px;
            background: linear-gradient(90deg, #e67e22cc, transparent);
            padding: 0.5rem 1.2rem;
            border-radius: 2rem;
            color: #fff1e0;
            font-weight: 500;
        }
        .carousel-btn {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background: #f7b05ecc;
            border: none;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            color: #2c1a0c;
            font-size: 1.4rem;
            cursor: pointer;
            z-index: 5;
            font-weight: bold;
        }
        .carousel-btn:hover { background: #e67e22; color: white; }
        .carousel-prev { left: 12px; }
        .carousel-next { right: 12px; }
        .carousel-dots {
            position: absolute;
            bottom: 12px;
            right: 18px;
            display: flex;
            gap: 8px;
        }
        .dot {
            width: 8px;
            height: 8px;
            background: #ffdfb8;
            border-radius: 50%;
            cursor: pointer;
        }
        .dot.active { background: #f7b05e; width: 20px; border-radius: 10px; }

        /* 胡萝卜标签 */
        .carrot-tags {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 0.7rem;
            margin: 1.2rem 0 2rem;
        }
        .carrot-tags span {
            background: #ffffff;
            border: 1px solid #f7d5a8;
            padding: 0.4rem 1.2rem;
            border-radius: 60px 15px 60px 15px;
            font-size: 0.8rem;
            font-weight: 500;
            cursor: pointer;
            transition: 0.1s;
            color: #bc7a3a;
        }
        .carrot-tags span:hover { background: #f7b05e; color: white; border-color: #f7b05e; transform: translateY(-2px); }

        .section-title {
            font-size: 1.5rem;
            margin: 1.2rem 0 1rem;
            border-left: 8px solid #f7b05e;
            padding-left: 0.8rem;
            font-weight: 700;
            color: #5c3e24;
        }
        .card-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
            gap: 1.5rem;
            margin-bottom: 2rem;
        }
        .film-card {
            background: #ffffff;
            border-radius: 1.2rem;
            overflow: hidden;
            transition: all 0.2s;
            cursor: pointer;
            border: 1px solid #f7e3cc;
            box-shadow: 0 2px 8px rgba(0,0,0,0.02);
        }
        .film-card:hover {
            transform: translateY(-6px);
            box-shadow: 0 20px 28px -12px #f7b05e80;
            border-color: #f7b05e;
        }
        .img-wrap {
            position: relative;
            aspect-ratio: 2/2.8;
            background: #f1e6d8;
            overflow: hidden;
        }
        .img-wrap img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.2s;
        }
        .film-card:hover .img-wrap img { transform: scale(1.03); }
        .play-rabbit {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background: rgba(0,0,0,0.7);
            width: 48px;
            height: 48px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.8rem;
            color: white;
            opacity: 0;
            transition: opacity 0.2s;
            pointer-events: none;
        }
        .film-card:hover .play-rabbit { opacity: 1; }
        .update-badge {
            position: absolute;
            top: 8px;
            right: 8px;
            background: #e67e22;
            color: white;
            font-size: 0.6rem;
            padding: 0.2rem 0.6rem;
            border-radius: 20px;
            font-weight: bold;
        }
        .card-info {
            padding: 0.7rem;
        }
        .card-info h3 {
            font-size: 0.9rem;
            font-weight: 800;
            margin-bottom: 0.2rem;
        }
        .rating {
            color: #f39c12;
            font-size: 0.7rem;
        }
        .state {
            font-size: 0.65rem;
            color: #b58a62;
            margin: 0.2rem 0;
        }
        .btn-want {
            background: #fff6ed;
            border: 1px solid #f7b05e;
            width: 100%;
            padding: 0.4rem;
            border-radius: 2rem;
            font-size: 0.7rem;
            margin-top: 0.5rem;
            cursor: pointer;
            font-weight: 600;
            color: #e67e22;
        }
        .btn-want:hover { background: #f7b05e; color: white; }

        /* 兔兔排行 */
        .rank-bunny {
            background: #fffef7;
            border-radius: 1.5rem;
            padding: 0.5rem;
            margin-bottom: 2rem;
            border: 1px solid #f7e3cc;
        }
        .rank-item {
            display: flex;
            align-items: center;
            gap: 1rem;
            padding: 0.6rem;
            border-bottom: 1px solid #f7e3cc;
            cursor: pointer;
        }
        .rank-item:hover { background: #fff3e4; border-radius: 1rem; }
        .rank-medal {
            font-size: 1.5rem;
            width: 48px;
        }
        .rank-poster {
            width: 48px;
            height: 64px;
            object-fit: cover;
            border-radius: 10px;
        }

        /* 经典怀旧 做旧胡萝卜纹 */
        .classic-card {
            background: #fef3e0;
            border: 2px solid #e5bc84;
            border-radius: 1rem;
            box-shadow: 5px 5px 0 #c2945c;
            color: #4a3a28;
        }

        .modal-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.8);
            z-index: 300;
            display: flex;
            align-items: center;
            justify-content: center;
            visibility: hidden;
            opacity: 0;
            transition: 0.2s;
        }
        .modal-overlay.show {
            visibility: visible;
            opacity: 1;
        }
        .modal-container {
            background: #ffffff;
            max-width: 520px;
            width: 90%;
            border-radius: 2rem;
            padding: 1.5rem;
            max-height: 85vh;
            overflow-y: auto;
            border: 1px solid #f7b05e;
            color: #5c3e24;
        }
        .modal-container img {
            width: 100%;
            border-radius: 1rem;
            margin-bottom: 1rem;
        }
        .modal-close {
            background: #f7e3cc;
            border: none;
            padding: 0.4rem 1rem;
            border-radius: 2rem;
            margin-top: 1rem;
            cursor: pointer;
        }
        .toast-msg {
            position: fixed;
            bottom: 30px;
            left: 50%;
            transform: translateX(-50%);
            background: #5c3e24;
            color: #ffdfb8;
            padding: 0.5rem 1.2rem;
            border-radius: 40px;
            font-size: 0.8rem;
            z-index: 400;
            opacity: 0;
            transition: 0.2s;
            pointer-events: none;
            border: 1px solid #f7b05e;
        }
        .toast-msg.show { opacity: 1; }

        footer {
            margin-top: 2rem;
            border-top: 2px solid #f7e3cc;
            padding: 1.2rem 0;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            font-size: 0.7rem;
            color: #b58a62;
        }
        .intro-card {
            background: #fffef7cc;
            backdrop-filter: blur(4px);
            border-left: 6px solid #f7b05e;
            padding: 1rem;
            border-radius: 1rem;
            margin: 1.8rem 0;
            font-style: italic;
            color: #6b4a2a;
        }
        @media (max-width: 768px) {
            .desktop-nav { display: none; }
            .menu-toggle { display: block; }
            .card-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
            .search-area input { width: 100px; }
        }
        @media (min-width: 768px) and (max-width: 1024px) {
            .card-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
        }
        a, button { cursor: pointer; }
    </style>
</head>
<body>
<div class="rabbit-container">
    <div class="fluffy-header">
        <div class="logo"><h1>莫扎兔影视</h1></div>
        <div class="desktop-nav">
            <a href="#" class="nav-link">电影</a>
            <a href="#" class="nav-link">电视剧</a>
            <a href="#" class="nav-link">综艺</a>
            <a href="#" class="nav-link">纪录片</a>
            <a href="#" class="nav-link">排行榜</a>
        </div>
        <div class="search-area">
            <input type="text" id="searchInput" placeholder="搜电影、剧集或导演...">
            <img class="avatar-rabbit" src="/upload/vod/088-avatar.webp" alt="兔兔头像" title="个人中心" loading="lazy">
        </div>
        <button class="menu-toggle" id="menuToggleBtn">☰</button>
    </div>
    <div class="mobile-sidebar" id="mobileSidebar">
        <a href="#" class="mobile-link">电影</a>
        <a href="#" class="mobile-link">电视剧</a>
        <a href="#" class="mobile-link">综艺</a>
        <a href="#" class="mobile-link">纪录片</a>
        <a href="#" class="mobile-link">排行榜</a>
    </div>
    <div class="overlay" id="overlayLayer"></div>

    <div class="bread-rabbit">首页 > 电影 > 正在热播</div>

    <!-- 轮播区（全新真实作品） -->
    <div class="carrot-carousel">
        <div class="carousel-box">
            <div class="carousel-track" id="carouselTrack">
                <div class="carousel-slide"><img src="/upload/vod/066-banner.webp" alt="热辣滚烫" loading="lazy"><div class="bunny-caption"><h3>热辣滚烫</h3><p>为自己赢一次</p><button class="watchBtn">立即观看</button></div></div>
                <div class="carousel-slide"><img src="/upload/vod/067-banner.webp" alt="飞驰人生2" loading="lazy"><div class="bunny-caption"><h3>飞驰人生2</h3><p>热血赛车，重返巅峰</p><button class="watchBtn">立即观看</button></div></div>
                <div class="carousel-slide"><img src="/upload/vod/068-banner.webp" alt="流浪地球2" loading="lazy"><div class="bunny-caption"><h3>流浪地球2</h3><p>太阳危机，移山计划</p><button class="watchBtn">立即观看</button></div></div>
            </div>
            <button class="carousel-btn carousel-prev" id="carouselPrev">‹</button>
            <button class="carousel-btn carousel-next" id="carouselNext">›</button>
            <div class="carousel-dots" id="carouselDots"></div>
        </div>
    </div>

    <div class="carrot-tags">
        <span>动作🐇</span><span>喜剧🐣</span><span>爱情💕</span><span>科幻🚀</span><span>悬疑🔍</span><span>恐怖👻</span><span>剧情📖</span><span>冒险🗺️</span>
    </div>

    <!-- 正在热播 8部真实作品（全新组合） -->
    <section>
        <h2 class="section-title">🔥 莫扎兔热映 · 萝卜推荐</h2>
        <div class="card-grid" id="hotGrid"></div>
    </section>

    <!-- 热度排行 -->
    <section class="rank-bunny">
        <h2 class="section-title">📈 兔兔热度榜 · 蹦蹦飙升</h2>
        <div id="rankList"></div>
    </section>

    <!-- 经典推荐区 怀旧风格 -->
    <section>
        <h2 class="section-title">🎞️ 时光胡萝卜 · 影史神作</h2>
        <div class="card-grid" id="classicGrid"></div>
    </section>

    <!-- 待上线预告 -->
    <section>
        <h2 class="section-title">⏰ 即将蹦出 · 预约提醒</h2>
        <div class="card-grid" id="upcomingGrid"></div>
    </section>

    <div class="intro-card">
        <p><strong>莫扎兔影视</strong> 邀您共赏<span style="color:#e67e22;">在线电影</span>森林，坚持<span style="color:#e67e22;">免费观看</span>院线级内容，<span style="color:#e67e22;">高清画质</span>沉浸享受，<span style="color:#e67e22;">每日更新</span>新片与口碑剧集，全程<span style="color:#e67e22;">无广告</span>纯净追剧。本页面展示真实影视作品信息，所有点击跳转及播放功能正在开发中，敬请期待正式版。<strong>莫扎兔影视</strong> 聚合全球热门电影、电视剧与综艺，智能预约未上映大片，打造影迷一站式追剧平台。蹦蹦跳跳，好片来到。</p>
    </div>

    <footer>
        <div>© 2026 莫扎兔影视 · 侵权必删</div>
        <div class="footer-links">
            <a href="#" class="footer-link" data-info="about">关于我们</a>
            <a href="#" class="footer-link" data-info="help">帮助中心</a>
            <a href="#" class="footer-link" data-info="links">友情链接</a>
            <a href="#" class="footer-link" data-info="complaint">内容投诉</a>
        </div>
        <div>沪ICP备2026123520号</div>
    </footer>
</div>

<div id="detailModal" class="modal-overlay"><div class="modal-container" id="modalBody"></div></div>
<div id="globalToast" class="toast-msg">功能开发中，即将开放，敬请期待</div>

<script>
    // 真实作品库（2021-2026 全新组合，电影≥4，电视剧≥2，综艺/纪录片≥2）
    const hotData = [
        { id:1, title:"热辣滚烫", type:"电影", year:2024, director:"贾玲", rating:7.9, status:"HD高清", plot:"宅家多年的乐莹结识拳击教练后，决心为自己赢一次，热血蜕变。贾玲、雷佳音主演。", posterNum:"001-movie", updateBadge:false },
        { id:2, title:"飞驰人生2", type:"电影", year:2024, director:"韩寒", rating:8.1, status:"4K蓝光", plot:"昔日冠军车手张驰组建车队，冲刺最后一届巴音布鲁克拉力赛。沈腾、范丞丞主演。", posterNum:"002-movie", updateBadge:false },
        { id:3, title:"流浪地球2", type:"电影", year:2023, director:"郭帆", rating:8.6, status:"4K蓝光", plot:"太阳危机，人类推动“移山计划”，月球坠落危机，地球流浪启程。吴京、刘德华主演。", posterNum:"003-movie", updateBadge:false },
        { id:4, title:"周处除三害", type:"电影", year:2023, director:"黄精甫", rating:8.3, status:"HD高清", plot:"通缉犯陈桂林决心除掉通缉榜上排在自己前两位的恶徒，邪典爽片。阮经天主演。", posterNum:"004-movie", updateBadge:false },
        { id:5, title:"繁花", type:"电视剧", year:2023, director:"王家卫", rating:8.7, status:"全30集", plot:"九十年代上海，阿宝在商海沉浮中书写传奇。胡歌、马伊琍、唐嫣主演。", posterNum:"005-tv", updateBadge:true },
        { id:6, title:"狂飙", type:"电视剧", year:2023, director:"徐纪周", rating:8.5, status:"全39集", plot:"京海市刑警安欣与黑恶势力高启强长达20年的正邪较量。张译、张颂文主演。", posterNum:"006-tv", updateBadge:false },
        { id:7, title:"花儿与少年·丝路季", type:"综艺", year:2023, director:"李超", rating:9.2, status:"2023季", plot:"明星自助远行，丝路文化探索，真实温暖。秦岚、辛芷蕾等。", posterNum:"007-variety", updateBadge:false },
        { id:8, title:"种地吧", type:"综艺", year:2023, director:"劳作纪实", rating:9.0, status:"2023季", plot:"十位少年真实农耕，体验土地与成长。", posterNum:"008-manga", updateBadge:true }
    ];
    const rankListData = [
        { title:"繁花", type:"电视剧", year:2023, rating:8.7, heat:"周热度 956.2万", posterNum:"005-tv", plot:"胡歌、马伊琍主演，沪上商战。" },
        { title:"狂飙", type:"电视剧", year:2023, rating:8.5, heat:"周热度 883.4万", posterNum:"006-tv", plot:"张译、张颂文，正邪对决。" },
        { title:"热辣滚烫", type:"电影", year:2024, rating:7.9, heat:"周热度 765.8万", posterNum:"001-movie", plot:"贾玲减重百斤，拳击逆袭。" },
        { title:"流浪地球2", type:"电影", year:2023, rating:8.6, heat:"周热度 724.3万", posterNum:"003-movie", plot:"太空电梯，月球危机。" },
        { title:"花儿与少年·丝路季", type:"综艺", year:2023, rating:9.2, heat:"周热度 682.1万", posterNum:"007-variety", plot:"秦岚、辛芷蕾等，异国治愈之旅。" }
    ];
    const classicData = [
        { title:"肖申克的救赎", year:1994, country:"美国", rating:9.7, recommend:"影史神作", posterNum:"009-movie", plot:"银行家安迪蒙冤入狱，用二十年凿开希望，自由永不磨灭。蒂姆·罗宾斯、摩根·弗里曼主演。" },
        { title:"霸王别姬", year:1993, country:"中国大陆", rating:9.6, recommend:"必看经典", posterNum:"010-movie", plot:"程蝶衣与段小楼悲欢离合，时代洪流下的痴情与背叛。张国荣、张丰毅、巩俐主演。" },
        { title:"天使爱美丽", year:2001, country:"法国", rating:8.7, recommend:"高分封神", posterNum:"011-movie", plot:"艾米丽用善意温暖他人，浪漫奇幻的巴黎故事。奥黛丽·塔图主演。" },
        { title:"千与千寻", year:2001, country:"日本", rating:9.4, recommend:"催泪神片", posterNum:"012-anime", plot:"少女误入神灵世界，在油屋中拯救父母，找回自我。宫崎骏导演。" }
    ];
    const upcomingData = [
        { title:"阿凡达3：火与烬", releaseDate:"2025-12-19", daysLeft:27, posterNum:"013-banner", plot:"杰克·萨利带领纳美族人抵抗火之部落，烈焰之战。" },
        { title:"封神第二部", releaseDate:"2025-07-29", daysLeft:22, posterNum:"014-banner", plot:"西岐保卫战，姜子牙破十绝阵。" },
        { title:"沙丘2", releaseDate:"2024-03-08", daysLeft:9, posterNum:"015-banner", plot:"保罗·厄崔迪崛起，联合弗雷曼人复仇。" }
    ];
    function computeDays(dateStr) { return Math.ceil((new Date(dateStr)-new Date())/(86400000)); }

    function renderHot() {
        let html = '';
        hotData.forEach(m => {
            html += `<div class="film-card" data-id="${m.id}" data-type="hot">
                        <div class="img-wrap">${m.updateBadge ? '<span class="update-badge">更新</span>' : ''}<img src="/upload/vod/${m.posterNum}.webp" alt="${m.title} ${m.type} ${m.year} ${m.director}" loading="lazy"><div class="play-rabbit">▶</div></div>
                        <div class="card-info"><h3>${m.title}</h3><div class="rating">⭐ ${m.rating}</div><div class="state">${m.status}</div><button class="btn-want" data-id="wish-${m.id}">📌 想看/预约</button></div>
                    </div>`;
        });
        document.getElementById('hotGrid').innerHTML = html;
        bindHotEvents();
    }
    function renderRank() {
        let rankHtml = '';
        rankListData.forEach((item, idx) => {
            let medal = idx===0 ? '🥇' : (idx===1 ? '🥈' : (idx===2 ? '🥉' : `${idx+1}`));
            rankHtml += `<div class="rank-item" data-title="${item.title}">
                            <div class="rank-medal">${medal}</div>
                            <img class="rank-poster" src="/upload/vod/${item.posterNum}.webp" alt="${item.title}" loading="lazy">
                            <div><strong>${item.title}</strong><div>⭐ ${item.rating}</div><div>🔥 ${item.heat}</div></div>
                        </div>`;
        });
        document.getElementById('rankList').innerHTML = rankHtml;
        document.querySelectorAll('.rank-item').forEach(el => {
            el.addEventListener('click', (e) => {
                let title = el.dataset.title;
                let data = rankListData.find(r => r.title === title);
                if(data) showModal(data.title, data.type, data.year, data.rating, data.plot, data.posterNum);
            });
        });
    }
    function renderClassic() {
        let classicHtml = '';
        classicData.forEach(c => {
            classicHtml += `<div class="film-card classic-card" data-title="${c.title}">
                                <div class="img-wrap"><img src="/upload/vod/${c.posterNum}.webp" alt="${c.title} 电影 ${c.year}" loading="lazy"><div class="play-rabbit">▶</div></div>
                                <div class="card-info"><h3>${c.title}</h3><div class="rating">⭐ ${c.rating}</div><div class="state">${c.country} · ${c.year}</div><div class="recommend">✨ ${c.recommend}</div><button class="btn-want" data-id="classic-${c.title}">📌 想看</button></div>
                            </div>`;
        });
        document.getElementById('classicGrid').innerHTML = classicHtml;
        document.querySelectorAll('#classicGrid .film-card').forEach(card => {
            card.addEventListener('click', (e) => {
                if(e.target.classList.contains('btn-want')) { e.stopPropagation(); showToast(); return; }
                let title = card.dataset.title;
                let data = classicData.find(c => c.title === title);
                if(data) showModal(data.title, "电影", data.year, data.rating, data.plot, data.posterNum);
            });
            card.querySelector('.btn-want')?.addEventListener('click', (e) => { e.stopPropagation(); showToast(); });
        });
    }
    function renderUpcoming() {
        let upHtml = '';
        upcomingData.forEach(u => {
            let days = u.daysLeft;
            upHtml += `<div class="film-card" data-title="${u.title}">
                            <div class="img-wrap"><img src="/upload/vod/${u.posterNum}.webp" alt="${u.title} 预告" loading="lazy"><div class="play-rabbit">▶</div></div>
                            <div class="card-info"><h3>${u.title}</h3><div class="state">⏳ ${days}天后上映</div><button class="btn-want" data-id="up-${u.title}">🔔 预约提醒</button></div>
                        </div>`;
        });
        document.getElementById('upcomingGrid').innerHTML = upHtml;
        document.querySelectorAll('#upcomingGrid .film-card').forEach(card => {
            card.addEventListener('click', (e) => {
                if(e.target.classList.contains('btn-want')) { e.stopPropagation(); showToast(); return; }
                let title = card.dataset.title;
                let data = upcomingData.find(u => u.title === title);
                if(data) showModal(data.title, "电影", "2025", "待评分", data.plot, data.posterNum);
            });
            card.querySelector('.btn-want')?.addEventListener('click', (e) => { e.stopPropagation(); showToast(); });
        });
    }
    function bindHotEvents() {
        document.querySelectorAll('#hotGrid .film-card').forEach(card => {
            card.addEventListener('click', (e) => {
                if(e.target.classList.contains('btn-want')) { e.stopPropagation(); showToast(); return; }
                let id = card.dataset.id;
                let data = hotData.find(m => m.id == id);
                if(data) showModal(data.title, data.type, data.year, data.rating, data.plot, data.posterNum);
            });
            card.querySelector('.btn-want')?.addEventListener('click', (e) => { e.stopPropagation(); showToast(); });
        });
    }

    function showModal(title, type, year, rating, plot, posterNum) {
        let modal = document.getElementById('detailModal');
        let content = document.getElementById('modalBody');
        content.innerHTML = `<img src="/upload/vod/${posterNum}.webp" alt="${title}">
                            <h3>${title}</h3>
                            <p><strong>类型：</strong>${type} | ${year}年<br><strong>评分：</strong>⭐ ${rating}<br><strong>剧情简介：</strong>${plot}<br><strong>导演/主创：</strong>详见官方资料</p>
                            <div style="display:flex; gap:1rem; margin-top:1rem;"><button id="closeModalBtn" class="modal-close">关闭</button><button id="devWatchBtn" class="modal-close">前往观看（开发中）</button></div>`;
        modal.classList.add('show');
        document.getElementById('closeModalBtn').onclick = () => modal.classList.remove('show');
        document.getElementById('devWatchBtn').onclick = (e) => { e.stopPropagation(); showToast(); };
        window.onclick = (e) => { if(e.target === modal) modal.classList.remove('show'); };
    }

    function showToast(msg) {
        let toast = document.getElementById('globalToast');
        toast.textContent = msg || "功能开发中，即将开放，敬请期待";
        toast.classList.add('show');
        setTimeout(() => toast.classList.remove('show'), 2000);
    }

    // 轮播逻辑
    let slideIdx = 0, slides, totalSlides, autoTimer;
    function initCarousel() {
        const track = document.getElementById('carouselTrack');
        slides = document.querySelectorAll('.carousel-slide');
        totalSlides = slides.length;
        function update() { track.style.transform = `translateX(-${slideIdx * 100}%)`; updateDots(); }
        function updateDots() { document.querySelectorAll('.dot').forEach((d,i)=> d.classList.toggle('active', i===slideIdx)); }
        document.getElementById('carouselPrev').onclick = () => { slideIdx = (slideIdx-1+totalSlides)%totalSlides; update(); resetTimer(); };
        document.getElementById('carouselNext').onclick = () => { slideIdx = (slideIdx+1)%totalSlides; update(); resetTimer(); };
        let dotsContainer = document.getElementById('carouselDots');
        for(let i=0;i<totalSlides;i++){ let d=document.createElement('div'); d.classList.add('dot'); d.onclick=()=>{slideIdx=i; update(); resetTimer();}; dotsContainer.appendChild(d); }
        update();
        function resetTimer() { if(autoTimer) clearInterval(autoTimer); autoTimer = setInterval(()=>{ slideIdx = (slideIdx+1)%totalSlides; update(); }, 4000); }
        resetTimer();
    }

    // 全局toast + 导航
    document.querySelectorAll('.nav-link, .mobile-link, .carrot-tags span, .watchBtn, .footer-link, .avatar-rabbit, #searchInput, #menuToggleBtn').forEach(el => {
        el.addEventListener('click', (e) => { e.preventDefault(); if(el.id !== 'searchInput' && !el.classList.contains('footer-link')) showToast(); });
    });
    document.getElementById('searchInput')?.addEventListener('keypress', (e) => { if(e.key === 'Enter') showToast(); });

    // 页脚辅助模态框真实帮助/关于
    document.querySelectorAll('.footer-link').forEach(link => {
        link.addEventListener('click', (e) => {
            e.preventDefault();
            let type = link.dataset.info;
            let modal = document.getElementById('detailModal');
            let content = document.getElementById('modalBody');
            if(type === 'about') content.innerHTML = `<h3>关于莫扎兔影视</h3><p>莫扎兔影视成立于2024年，专注影视信息聚合与推荐，所有内容均来自公开资料。我们尊重版权，侵权必删。商务合作：mozartu@mzt.com</p><button id="closeModalBtn" class="modal-close">关闭</button>`;
            else if(type === 'help') content.innerHTML = `<h3>帮助中心</h3><p>1.搜索影片：顶部搜索框输入片名。2.预约功能将在上线后推送提醒。3.客服邮箱：help@mzt.com</p><button id="closeModalBtn" class="modal-close">关闭</button>`;
            else if(type === 'links') content.innerHTML = `<h3>友情链接</h3><p>豆瓣电影 | IMDb | 烂番茄（纯展示）</p><button id="closeModalBtn" class="modal-close">关闭</button>`;
            else if(type === 'complaint') content.innerHTML = `<h3>内容投诉</h3><p>如发现侵权内容，请发送邮件至 copyright@mzt.com，我们将在24小时内处理。</p><button id="closeModalBtn" class="modal-close">关闭</button>`;
            else return;
            modal.classList.add('show');
            document.getElementById('closeModalBtn').onclick = () => modal.classList.remove('show');
        });
    });

    const menuBtn = document.getElementById('menuToggleBtn');
    const mobileMenu = document.getElementById('mobileSidebar');
    const overlayEl = document.getElementById('overlayLayer');
    function closeMenu() { mobileMenu.classList.remove('open'); overlayEl.classList.remove('show'); }
    menuBtn.onclick = () => { mobileMenu.classList.toggle('open'); overlayEl.classList.toggle('show'); };
    overlayEl.onclick = closeMenu;
    document.querySelectorAll('.mobile-link').forEach(ln => ln.addEventListener('click', (e) => { e.preventDefault(); showToast(); closeMenu(); }));

    renderHot(); renderRank(); renderClassic(); renderUpcoming(); initCarousel();
    document.body.classList.add('loaded');
</script>
</body>
</html>