<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
    <meta name="theme-color" content="#1A1E2A">
    
    <!-- 全新定制动漫之家SEO元数据 · 漫次元聚合 -->
    <title>加菲猫影视app正版下载|动漫之家 · 漫次元聚合 | 高热度影视聚合平台 热门电影电视剧全集免费在线观看</title>
    <meta name="keywords" content="恋恋影视小玲,动漫之家,高热度影视,热门电影,电视剧全集,免费在线,二次元聚合,漫改大片,番剧热播" />
    <meta name="description" content="沂蒙影视基地 - 动漫之家——次元交汇，热力爆发。聚合全网高热度电影、电视剧、番剧、综艺、漫画，免费全集在线，一站式漫次元观影体验。" />
    
    <link href="https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600;14..32,700;14..32,800&family=Comic+Neue:wght@400;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            background: #0E0F17;
            background-image: radial-gradient(circle at 20% 30%, rgba(255, 100, 150, 0.08) 1.5%, transparent 1.5%);
            background-size: 30px 30px;
            font-family: 'Inter', 'Comic Neue', sans-serif;
            color: #F0F0F5;
            overflow-x: hidden;
        }

        /* 漫画网点背景 */
        .dot-bg {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-image: radial-gradient(circle at 30% 40%, rgba(255, 200, 100, 0.05) 1px, transparent 1px);
            background-size: 20px 20px;
            pointer-events: none;
            z-index: 0;
        }

        .container {
            max-width: 1440px;
            margin: 0 auto;
            padding: 0 28px;
            position: relative;
            z-index: 2;
        }

        /* 漫画对话框风格导航 */
        .manga-nav {
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            padding: 24px 0 20px;
            border-bottom: 4px dashed #FFAA55;
            margin-bottom: 48px;
            background: rgba(14, 15, 23, 0.85);
            backdrop-filter: blur(12px);
            border-radius: 0 0 60px 60px;
        }
        .logo-manga {
            display: flex;
            align-items: baseline;
            gap: 12px;
        }
        .logo-manga span:first-child {
            font-size: 2rem;
            font-weight: 800;
            font-family: 'Comic Neue', cursive;
            background: linear-gradient(135deg, #FFAA55, #FF6688);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }
        .manga-badge {
            background: rgba(255, 170, 85, 0.2);
            border-radius: 60px;
            padding: 4px 12px;
            font-size: 0.7rem;
            font-weight: 700;
            border: 1px solid #FFAA55;
            color: #FFAA55;
        }
        .nav-links {
            display: flex;
            gap: 32px;
        }
        .nav-links a {
            color: #C0C0D8;
            text-decoration: none;
            font-weight: 600;
            transition: 0.2s;
        }
        .nav-links a:hover { color: #FFAA55; }
        .user-avatar img {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            border: 2px solid #FFAA55;
            object-fit: cover;
            background: #1E2135;
        }

        /* 英雄区 漫画分镜风 */
        .hero-manga {
            background: linear-gradient(115deg, #181C2A, #0F111C);
            border-radius: 80px 20px 80px 20px;
            padding: 38px 48px;
            margin-bottom: 70px;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-items: center;
            border: 1px solid rgba(255, 170, 85, 0.4);
            box-shadow: 0 20px 35px -12px rgba(0,0,0,0.5);
            position: relative;
            overflow: hidden;
        }
        .hero-manga::before {
            content: "⚡";
            font-size: 180px;
            position: absolute;
            bottom: -40px;
            right: -40px;
            opacity: 0.08;
            pointer-events: none;
        }
        .hero-text h1 {
            font-size: 2.3rem;
            font-weight: 800;
            font-family: 'Comic Neue', cursive;
            background: linear-gradient(125deg, #FFF, #FFAA55);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }
        .hero-text p {
            margin: 16px 0;
            color: #B8B8D0;
        }
        .manga-btn {
            background: #FFAA55;
            border: none;
            padding: 14px 36px;
            border-radius: 60px;
            font-weight: 800;
            color: #0E0F17;
            cursor: pointer;
            transition: 0.2s;
            font-family: 'Comic Neue', cursive;
        }

        /* 差异化布局1：电影 · 漫画分镜格（不规则网格） */
        .movie-comic {
            margin-bottom: 80px;
        }
        .section-title {
            font-size: 1.8rem;
            font-weight: 800;
            font-family: 'Comic Neue', cursive;
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 32px;
            border-left: 8px solid #FFAA55;
            padding-left: 20px;
        }
        .comic-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
            gap: 30px;
            grid-auto-flow: dense;
        }
        .movie-comic-card {
            background: #151A28;
            border-radius: 40px 12px 40px 12px;
            overflow: hidden;
            transition: 0.3s;
            border: 1px solid rgba(255, 170, 85, 0.3);
        }
        .movie-comic-card.wide {
            grid-column: span 2;
            display: flex;
            flex-direction: row;
        }
        .movie-comic-card.wide .comic-img {
            width: 40%;
            height: auto;
        }
        .comic-img {
            width: 100%;
            height: 320px;
            object-fit: cover;
        }
        .comic-info {
            padding: 20px;
        }

        /* 电视剧 · 漫画条漫（垂直滑动条） */
        .tv-strip {
            background: #11141F;
            border-radius: 64px;
            padding: 32px;
            margin-bottom: 80px;
            border: 1px solid rgba(255, 170, 85, 0.2);
        }
        .strip-list {
            display: flex;
            flex-direction: column;
            gap: 24px;
        }
        .tv-strip-item {
            display: flex;
            gap: 22px;
            align-items: center;
            background: #1A1F2E;
            border-radius: 60px;
            padding: 14px 24px;
            transition: 0.2s;
            border-left: 6px solid #FFAA55;
        }
        .strip-rank {
            font-size: 2rem;
            font-weight: 800;
            color: #FFAA55;
            width: 65px;
            text-align: center;
            font-family: monospace;
        }
        .strip-img {
            width: 100px;
            height: 130px;
            object-fit: cover;
            border-radius: 32px;
        }

        /* 综艺+动漫 双气泡对话框 */
        .variety-anime-bubble {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 48px;
            margin-bottom: 80px;
        }
        .bubble-card {
            background: #11141F;
            border-radius: 56px;
            padding: 28px;
            border: 1px solid rgba(255, 170, 85, 0.2);
            position: relative;
        }
        .bubble-card::after {
            content: "▼";
            position: absolute;
            bottom: -15px;
            left: 30px;
            color: #FFAA55;
            font-size: 24px;
            opacity: 0.5;
        }
        .vertical-list {
            display: flex;
            flex-direction: column;
            gap: 20px;
            margin-top: 20px;
        }
        .list-bubble {
            display: flex;
            gap: 16px;
            align-items: center;
            background: #1A1F2E;
            border-radius: 50px;
            padding: 10px 18px;
        }
        .list-bubble img {
            width: 60px;
            height: 80px;
            object-fit: cover;
            border-radius: 28px;
        }

        /* 漫画 · 漫画家底 */
        .manga-home {
            background: linear-gradient(115deg, #11141F, #0C0F18);
            border-radius: 64px;
            padding: 32px;
            margin-bottom: 60px;
        }
        .manga-scroll {
            display: flex;
            overflow-x: auto;
            gap: 28px;
            padding-bottom: 16px;
        }
        .manga-home-card {
            min-width: 190px;
            background: #1A1F2E;
            border-radius: 40px 12px 40px 12px;
            padding: 12px;
            text-align: center;
        }
        .manga-home-card img {
            width: 100%;
            height: 250px;
            object-fit: cover;
            border-radius: 32px 8px 32px 8px;
        }

        footer {
            border-top: 2px solid #FFAA55;
            padding: 40px 0;
            text-align: center;
            color: #8A8AAA;
            font-size: 0.8rem;
        }

        @media (max-width: 950px) {
            .comic-grid { grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap: 24px; }
            .movie-comic-card.wide { flex-direction: column; }
            .variety-anime-bubble { grid-template-columns: 1fr; gap: 32px; }
            .hero-text h1 { font-size: 1.8rem; }
            .tv-strip-item { flex-wrap: wrap; }
        }
        @media (max-width: 650px) {
            .tv-strip-item { flex-direction: column; text-align: center; }
            .strip-rank { width: auto; }
        }
        ::-webkit-scrollbar { height: 6px; background: #1E2135; border-radius: 10px; }
        ::-webkit-scrollbar-thumb { background: #FFAA55; border-radius: 10px; }
    </style>
</head>
<body>
<div class="dot-bg"></div>
<div class="container">
    <header class="manga-nav">
        <div class="logo-manga">
            <span>📚 动漫之家</span>
            <div class="manga-badge">高热度聚合·免费全集</div>
        </div>
        <div class="nav-links">
            <a href="#">次元首页</a>
            <a href="#">漫格电影</a>
            <a href="#">条漫剧集</a>
            <a href="#">气泡综艺</a>
            <a href="#">漫家底漫画</a>
        </div>
        <div class="user-avatar">
            <!-- avatar 088 全局唯一 -->
            <img src="/upload/vod/088-avatar.webp" alt="动漫之家用户" onerror="this.onerror=null;this.src='https://placehold.co/100x100/1E2135/FFAA55?text=📚'">
        </div>
    </header>

    <!-- banner 099 -->
    <div class="hero-manga">
        <div class="hero-text">
            <h1>高热度影视聚合平台<br>热门电影电视剧全集免费在线观看</h1>
            <p>漫次元交汇 · 热力爆发</p>
            <button class="manga-btn"><i class="fas fa-mask"></i> 进入二次元</button>
        </div>
        <div style="font-size: 70px; opacity: 0.4;"><i class="fas fa-book-open"></i></div>
    </div>

    <!-- 电影漫格 -->
    <div class="movie-comic" id="movieArea"></div>

    <!-- 电视剧条漫 -->
    <div class="tv-strip" id="tvArea"></div>

    <!-- 综艺+动漫 气泡双卡 -->
    <div class="variety-anime-bubble" id="varAnimeArea"></div>

    <!-- 漫画漫家底 -->
    <div class="manga-home" id="mangaArea"></div>

    <footer>
        <p>© 动漫之家 · 漫次元聚合 高热度影视 | 图片命名规范 /upload/vod/{三位数字}-{type}.webp 全局唯一</p>
        <p><i class="fas fa-mask"></i> 热门电影 · 电视剧全集 · 番剧 · 漫画 · 免费在线</p>
    </footer>
</div>

<script>
    // ======================================================
    // 动漫之家 · 全局唯一图片命名数字规划 (001-100)
    // banner:099  avatar:088
    // 电影movie: 001-020 (20部)
    // 电视剧tv: 021-040 (20部)
    // 综艺variety: 041-050 (10部)
    // 动漫anime: 051-060 (10部)
    // 漫画manga: 061-075 (15部)
    // 共20+20+10+10+15=75 + 2 = 77，完全在100以内且唯一
    // ======================================================

    // 电影数据集 (id 1~20) 二次元/热血主题
    const movies = [
        { id:1, title:"漫画英雄", year:2025, rating:9.4, hot:"108w"}, { id:2, title:"次元大作战", year:2025, rating:9.2, hot:"103w"},
        { id:3, title:"动漫之家大电影", year:2025, rating:9.0, hot:"99w"}, { id:4, title:"画风突变", year:2025, rating:8.9, hot:"96w"},
        { id:5, title:"漫次元觉醒", year:2025, rating:9.3, hot:"105w"}, { id:6, title:"二次元入侵", year:2025, rating:8.8, hot:"92w"},
        { id:7, title:"漫画家之夜", year:2025, rating:9.5, hot:"110w"}, { id:8, title:"分镜迷局", year:2025, rating:8.7, hot:"89w"},
        { id:9, title:"动漫魂", year:2025, rating:9.0, hot:"98w"}, { id:10, title:"次元裂缝", year:2025, rating:8.6, hot:"87w"},
        { id:11, title:"漫改人生", year:2025, rating:8.9, hot:"95w"}, { id:12, title:"动漫巨星", year:2025, rating:9.1, hot:"101w"},
        { id:13, title:"二次元战神", year:2025, rating:8.8, hot:"91w"}, { id:14, title:"漫宅英雄", year:2025, rating:8.5, hot:"85w"},
        { id:15, title:"动漫之刃", year:2025, rating:9.0, hot:"97w"}, { id:16, title:"次元行者", year:2025, rating:8.7, hot:"89w"},
        { id:17, title:"漫画传说", year:2025, rating:8.9, hot:"94w"}, { id:18, title:"动漫纪元", year:2025, rating:8.6, hot:"88w"},
        { id:19, title:"漫次元风暴", year:2025, rating:9.1, hot:"100w"}, { id:20, title:"永恒动漫", year:2025, rating:9.6, hot:"112w"}
    ];

    // 电视剧数据集 (21~40) 漫改/二次元题材
    const tvs = [
        { id:21, title:"动漫小馆", episodes:36, year:2025, hot:"99w"}, { id:22, title:"二次元公寓", episodes:42, year:2025, hot:"96w"},
        { id:23, title:"漫画家学院", episodes:30, year:2025, hot:"92w"}, { id:24, title:"动漫侦探", episodes:38, year:2025, hot:"94w"},
        { id:25, title:"次元警局", episodes:24, year:2025, hot:"88w"}, { id:26, title:"漫改咖啡屋", episodes:46, year:2025, hot:"101w"},
        { id:27, title:"画风诊所", episodes:32, year:2025, hot:"91w"}, { id:28, title:"动漫法庭", episodes:28, year:2025, hot:"90w"},
        { id:29, title:"二次元家族", episodes:40, year:2025, hot:"97w"}, { id:30, title:"漫次元恋人", episodes:36, year:2025, hot:"92w"},
        { id:31, title:"动漫传奇", episodes:48, year:2025, hot:"102w"}, { id:32, title:"次元暗流", episodes:30, year:2025, hot:"90w"},
        { id:33, title:"动漫救援队", episodes:26, year:2025, hot:"87w"}, { id:34, title:"漫改救援", episodes:34, year:2025, hot:"89w"},
        { id:35, title:"动漫之心", episodes:40, year:2025, hot:"95w"}, { id:36, title:"动漫之巅", episodes:38, year:2025, hot:"93w"},
        { id:37, title:"次元风云", episodes:28, year:2025, hot:"88w"}, { id:38, title:"画风森林", episodes:32, year:2025, hot:"91w"},
        { id:39, title:"动漫传说", episodes:36, year:2025, hot:"94w"}, { id:40, title:"动漫誓言", episodes:24, year:2025, hot:"86w"}
    ];

    // 综艺 (41~50) 二次元综艺
    const varieties = [
        { id:41, title:"动漫歌会", hot:"94w"}, { id:42, title:"漫画家大厨", hot:"98w"}, { id:43, title:"次元脱口秀", hot:"91w"},
        { id:44, title:"画风厨房", hot:"96w"}, { id:45, title:"动漫好声音", hot:"92w"}, { id:46, title:"漫次元挑战", hot:"95w"},
        { id:47, title:"动漫旅行团", hot:"90w"}, { id:48, title:"二次元运动会", hot:"97w"}, { id:49, title:"漫改相声", hot:"86w"},
        { id:50, title:"次元探险", hot:"93w"}
    ];

    // 动漫 (51~60) 番剧
    const animes = [
        { id:51, title:"动漫战士", hot:"99w"}, { id:52, title:"二次元精灵", hot:"95w"}, { id:53, title:"漫改骑士", hot:"97w"},
        { id:54, title:"画风学院", hot:"92w"}, { id:55, title:"次元战队", hot:"101w"}, { id:56, title:"动漫公主", hot:"89w"},
        { id:57, title:"漫次元少年", hot:"96w"}, { id:58, title:"动漫物语", hot:"94w"}, { id:59, title:"二次元猎人", hot:"98w"},
        { id:60, title:"漫改幻想", hot:"93w"}
    ];

    // 漫画 (61~75)
    const mangas = [
        { id:61, title:"动漫之家漫画", hot:"92w"}, { id:62, title:"二次元绘卷", hot:"95w"}, { id:63, title:"漫改漫记", hot:"87w"},
        { id:64, title:"画风日记", hot:"90w"}, { id:65, title:"次元传说", hot:"94w"}, { id:66, title:"动漫咖啡屋", hot:"85w"},
        { id:67, title:"漫次元奇谭", hot:"93w"}, { id:68, title:"二次元之书", hot:"89w"}, { id:69, title:"漫改之泪", hot:"88w"},
        { id:70, title:"画风少年", hot:"91w"}, { id:71, title:"动漫航路", hot:"96w"}, { id:72, title:"次元契约", hot:"90w"},
        { id:73, title:"动漫图书馆", hot:"87w"}, { id:74, title:"漫改诗篇", hot:"92w"}, { id:75, title:"动漫物语·漫画", hot:"94w"}
    ];

    function getImgPath(id, suffix) {
        const padded = String(id).padStart(3, '0');
        return `/upload/vod/${padded}-${suffix}.webp`;
    }

    // 渲染电影漫格（差异宽卡片）
    function renderMovies() {
        const container = document.getElementById('movieArea');
        if (!container) return;
        let html = `<div class="section-title"><i class="fas fa-film"></i> 🎬 电影·漫格 破次元推荐</div><div class="comic-grid">`;
        const movieSlice = movies.slice(0, 12);
        movieSlice.forEach((m, idx) => {
            const wideClass = (idx === 1 || idx === 5 || idx === 9) ? 'wide' : '';
            const imgPath = getImgPath(m.id, 'movie');
            html += `
                <div class="movie-comic-card ${wideClass}">
                    <img class="comic-img" src="${imgPath}" alt="${m.title}" onerror="this.onerror=null;this.src='https://placehold.co/400x320/151A28/FFAA55?text=${m.title.slice(0,2)}'">
                    <div class="comic-info">
                        <div style="background:#FFAA5530; display:inline-block; padding:2px 10px; border-radius:30px;">🔥 ${m.hot}</div>
                        <h3 style="margin: 10px 0 4px;">${m.title}</h3>
                        <div>⭐ ${m.rating} · ${m.year}</div>
                        <div style="margin-top: 6px;"><i class="fas fa-mask"></i> 免费全集</div>
                    </div>
                </div>
            `;
        });
        html += `</div>`;
        container.innerHTML = html;
    }

    // 渲染电视剧条漫
    function renderTv() {
        const container = document.getElementById('tvArea');
        if (!container) return;
        let html = `<div class="section-title"><i class="fas fa-tv"></i> 📺 剧集·条漫 热播榜单</div><div class="strip-list">`;
        const tvSlice = tvs.slice(0, 10);
        tvSlice.forEach((tv, idx) => {
            const imgPath = getImgPath(tv.id, 'tv');
            html += `
                <div class="tv-strip-item">
                    <div class="strip-rank">#${idx+1}</div>
                    <img class="strip-img" src="${imgPath}" alt="${tv.title}" onerror="this.onerror=null;this.src='https://placehold.co/100x130/1A1F2E/FFAA55?text=📺'">
                    <div style="flex:1;">
                        <h3>${tv.title}</h3>
                        <div>🔥 ${tv.hot} · ${tv.episodes}集全 · ${tv.year}</div>
                        <div style="margin-top: 6px;"><i class="fas fa-mask"></i> 免费全集</div>
                    </div>
                </div>
            `;
        });
        html += `</div>`;
        container.innerHTML = html;
    }

    // 渲染综艺+动漫 气泡双卡
    function renderVarAnime() {
        const container = document.getElementById('varAnimeArea');
        if (!container) return;
        const varSlice = varieties.slice(0, 6);
        const animeSlice = animes.slice(0, 6);
        
        let varHtml = `<div class="bubble-card"><div class="section-title" style="font-size:1.3rem;"><i class="fas fa-microphone-alt"></i> 🎤 综艺·漫次元派对</div><div class="vertical-list">`;
        varSlice.forEach(v => {
            const imgPath = getImgPath(v.id, 'variety');
            varHtml += `
                <div class="list-bubble">
                    <img src="${imgPath}" onerror="this.src='https://placehold.co/60x80/1A1F2E/FFAA55?text=🎤'">
                    <div><strong>${v.title}</strong><div>🔥 ${v.hot}</div><div>免费看</div></div>
                </div>
            `;
        });
        varHtml += `</div></div>`;
        
        let animeHtml = `<div class="bubble-card"><div class="section-title" style="font-size:1.3rem;"><i class="fas fa-dragon"></i> ✨ 番剧·漫改次元</div><div class="vertical-list">`;
        animeSlice.forEach(a => {
            const imgPath = getImgPath(a.id, 'anime');
            animeHtml += `
                <div class="list-bubble">
                    <img src="${imgPath}" onerror="this.src='https://placehold.co/60x80/1A1F2E/FFAA55?text=✨'">
                    <div><strong>${a.title}</strong><div>🔥 ${a.hot}</div><div>全系列</div></div>
                </div>
            `;
        });
        animeHtml += `</div></div>`;
        container.innerHTML = varHtml + animeHtml;
    }

    // 渲染漫画漫家底
    function renderManga() {
        const container = document.getElementById('mangaArea');
        if (!container) return;
        let html = `<div class="section-title"><i class="fas fa-book-open"></i> 📖 漫画·漫家底</div><div class="manga-scroll">`;
        const mangaShow = mangas.slice(0, 14);
        mangaShow.forEach(m => {
            const imgPath = getImgPath(m.id, 'manga');
            html += `
                <div class="manga-home-card">
                    <img src="${imgPath}" alt="${m.title}" onerror="this.onerror=null;this.src='https://placehold.co/190x250/1A1F2E/FFAA55?text=📘'">
                    <div style="font-weight:700; margin: 12px 0 4px;">${m.title}</div>
                    <div>🔥 ${m.hot}</div>
                </div>
            `;
        });
        html += `</div>`;
        container.innerHTML = html;
    }

    renderMovies();
    renderTv();
    renderVarAnime();
    renderManga();

    // 唯一性校验
    const allIds = [...movies.map(m=>m.id), ...tvs.map(t=>t.id), ...varieties.map(v=>v.id), ...animes.map(a=>a.id), ...mangas.map(m=>m.id), 88, 99];
    const uniqueSet = new Set(allIds);
    if (allIds.length === uniqueSet.size) {
        console.log("✅ 动漫之家 | 图片数字全局唯一 (001-075 + 088,099) 且后缀 movie/tv/variety/anime/manga/banner/avatar 严格合规，无重复。");
    }
</script>
</body>
</html>