{"id":2047,"date":"2025-11-15T07:50:41","date_gmt":"2025-11-14T22:50:41","guid":{"rendered":"https:\/\/www.samurai2948.com\/?p=2047"},"modified":"2025-11-19T17:17:03","modified_gmt":"2025-11-19T08:17:03","slug":"%e8%88%b9%e3%82%bf%e3%82%a4%e3%83%9e%e3%83%bc%e3%83%86%e3%82%b9%e3%83%88%e4%b8%ad","status":"publish","type":"post","link":"https:\/\/www.samurai2948.com\/?p=2047","title":{"rendered":"IAE 2955 \u9650\u5b9a\u8ca9\u58f2\u8239\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3\uff5cStar Citizen"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>StarCitizen IAE 2955 \u653b\u7565\u30b5\u30a4\u30c8<\/title>\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Orbitron:wght@400;700;900&#038;display=swap\" rel=\"stylesheet\">\n    <style>\n        \/* \u65e2\u5b58\u306e\u30b9\u30bf\u30a4\u30eb\u306f\u305d\u306e\u307e\u307e *\/\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Orbitron:wght@400;700;900&display=swap');\n        \n        body {\n            font-family: 'Meiryo', 'Hiragino Sans', 'Hiragino Kaku Gothic Pro', 'Yu Gothic', sans-serif;\n            background-color: #0a0a1a;\n            color: #e2e8f0;\n            overflow-x: hidden;\n        }\n        \n        h1, h2, h3, h4, h5, h6, .font-orbitron {\n            font-family: 'Orbitron', 'Meiryo', sans-serif;\n        }\n        \n        .gradient-bg {\n            background: linear-gradient(135deg, #0a0a1a 0%, #1e1b4b 50%, #0c4a6e 100%);\n        }\n        \n        .section-card {\n            background: rgba(15, 23, 42, 0.7);\n            backdrop-filter: blur(10px);\n            border: 1px solid rgba(56, 189, 248, 0.2);\n            box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);\n        }\n        \n        .hover-glow:hover {\n            box-shadow: 0 0 15px rgba(56, 189, 248, 0.5);\n        }\n        \n        .progress-bar {\n            background: rgba(30, 41, 59, 0.8);\n            border-radius: 10px;\n            overflow: hidden;\n            height: 20px;\n        }\n        \n        .progress-fill {\n            height: 100%;\n            border-radius: 10px;\n            transition: width 0.5s ease-in-out;\n        }\n        \n        .progress-0 { width: 0%; background: linear-gradient(90deg, #ef4444, #f97316); }\n        .progress-10 { width: 10%; background: linear-gradient(90deg, #ef4444, #f97316); }\n        .progress-30 { width: 30%; background: linear-gradient(90deg, #f97316, #eab308); }\n        .progress-50 { width: 50%; background: linear-gradient(90deg, #eab308, #84cc16); }\n        .progress-70 { width: 70%; background: linear-gradient(90deg, #84cc16, #22c55e); }\n        .progress-100 { width: 100%; background: linear-gradient(90deg, #22c55e, #10b981); }\n        \n        .countdown-timer {\n            font-family: 'Orbitron', monospace;\n            font-size: 1.8rem;\n            font-weight: bold;\n            color: #00ff88;\n            text-shadow: 0 0 15px rgba(0, 255, 136, 0.8);\n            background: rgba(0, 0, 0, 0.6);\n            padding: 10px 20px;\n            border-radius: 10px;\n            border: 2px solid #00ff88;\n        }\n        \n        .ship-card {\n            transition: all 0.3s ease;\n            border: 1px solid rgba(56, 189, 248, 0.1);\n        }\n        \n        .ship-card:hover {\n            transform: translateY(-5px);\n            border-color: rgba(56, 189, 248, 0.5);\n            box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.5);\n        }\n        \n        .modal {\n            display: none;\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: rgba(0, 0, 0, 0.8);\n            z-index: 1000;\n            justify-content: center;\n            align-items: center;\n        }\n        \n        .modal-content {\n            max-width: 90%;\n            max-height: 90%;\n            border-radius: 10px;\n            box-shadow: 0 0 30px rgba(56, 189, 248, 0.5);\n        }\n        \n        .notification-modal {\n            background: rgba(15, 23, 42, 0.95);\n            border-radius: 15px;\n            padding: 2rem;\n            max-width: 500px;\n            width: 90%;\n            border: 1px solid rgba(56, 189, 248, 0.3);\n        }\n        \n        .wave-badge {\n            display: inline-block;\n            padding: 0.5rem 0.8rem;\n            border-radius: 8px;\n            font-size: 0.8rem;\n            font-weight: bold;\n            margin-right: 0.4rem;\n            margin-bottom: 0.5rem;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            text-align: center;\n            color: white;\n            min-width: 75px;\n            background: linear-gradient(135deg, #3b82f6, #8b5cf6);\n        }\n        \n        .wave-badge:hover {\n            transform: scale(1.05);\n            box-shadow: 0 0 12px rgba(59, 130, 246, 0.6);\n        }\n        \n        .red-bg-white-text {\n            background-color: #dc2626;\n            color: white;\n        }\n        \n        .notification-info {\n            background: linear-gradient(90deg, #3b82f6, #8b5cf6);\n            color: white;\n            padding: 12px;\n            border-radius: 10px;\n            margin-bottom: 20px;\n            text-align: center;\n            font-weight: bold;\n            border: 1px solid #00c8ff;\n        }\n        \n        .event-time-large {\n            font-size: 1.3rem;\n            font-weight: bold;\n            color: #00ff88;\n            text-shadow: 0 0 10px rgba(0, 255, 136, 0.5);\n        }\n        \n        .event-period {\n            font-size: 1.1rem;\n            font-weight: bold;\n            color: #ffffff;\n        }\n        \n        .confirmation-details {\n            background: rgba(30, 41, 59, 0.8);\n            border-radius: 10px;\n            padding: 15px;\n            margin: 15px 0;\n        }\n        \n        @media (max-width: 768px) {\n            .countdown-timer {\n                font-size: 1.4rem;\n                padding: 8px 16px;\n            }\n            \n            .wave-badge {\n                padding: 0.4rem 0.6rem;\n                font-size: 0.75rem;\n                min-width: 70px;\n            }\n            \n            .event-time-large {\n                font-size: 1.1rem;\n            }\n            \n            .event-period {\n                font-size: 1rem;\n            }\n        }\n    <\/style>\n<\/head>\n<body class=\"gradient-bg min-h-screen\">\n    <!-- \u30d8\u30c3\u30c0\u30fc -->\n    <header class=\"py-6 px-4 md:px-8\">\n        <div class=\"container mx-auto flex flex-col md:flex-row justify-between items-center\">\n            <div class=\"flex items-center mb-4 md:mb-0\">\n                <h1 class=\"text-3xl md:text-4xl font-orbitron font-bold text-space-accent\">StarCitizen IAE 2955 \u653b\u7565<\/h1>\n            <\/div>\n            <div class=\"flex space-x-4\">\n                <button id=\"theme-toggle\" class=\"p-2 rounded-full bg-space-dark border border-space-accent text-space-accent\">\n                    <i class=\"fas fa-moon\"><\/i>\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/header>\n\n    <!-- \u30e1\u30a4\u30f3\u30b3\u30f3\u30c6\u30f3\u30c4 -->\n    <main class=\"container mx-auto px-4 py-8\">\n        <!-- IAE\u30a4\u30d9\u30f3\u30c8\u5168\u4f53\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3 -->\n        <section class=\"section-card rounded-xl p-6 mb-8\">\n            <h2 class=\"text-2xl font-bold mb-4 text-white border-b border-space-accent pb-2 section-title\">\n                \ud83d\ude80 IAE 2955 \u30a4\u30d9\u30f3\u30c8\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3\n            <\/h2>\n            \n            <div class=\"flex flex-col md:flex-row justify-between items-center mb-6\">\n                <div class=\"mb-4 md:mb-0\">\n                    <h3 class=\"text-xl font-bold text-space-accent\">\u958b\u50ac\u5834\u6240: Orison, Crusader &#8211; Vision Center<\/h3>\n                    <p class=\"text-sm text-gray-400 mt-1\">Stanton\u661f\u7cfb\u306eCrusader\u306b\u3042\u308b\u7f8e\u3057\u3044\u6d6e\u904a\u90fd\u5e02<\/p>\n                <\/div>\n                <div class=\"countdown-timer text-center\" id=\"iae-countdown\">\n                    \u8aad\u307f\u8fbc\u307f\u4e2d&#8230;\n                <\/div>\n            <\/div>\n            \n            <div class=\"bg-gradient-to-r from-blue-600 to-purple-600 text-white rounded-xl p-4 mb-4\">\n                <div class=\"text-center\">\n                    <h3 class=\"text-lg font-bold mb-2\">IAE 2955 \u30a4\u30d9\u30f3\u30c8\u671f\u9593<\/h3>\n                    <p class=\"event-period\">\u65e5\u672c\u6642\u9593: 11\u670821\u65e5 1:00 \uff5e 12\u67084\u65e5 1:00<\/p>\n                    <p class=\"text-sm opacity-90 mt-1\">UTC: Nov 20 16:00 \uff5e Dec 3 16:00 (UTC+9\u6642\u9593\u304c\u65e5\u672c\u6642\u9593)<\/p>\n                <\/div>\n            <\/div>\n            \n            <!-- \u30a4\u30d9\u30f3\u30c8\u9032\u6357\u30d0\u30fc -->\n            <div class=\"mt-6\">\n                <h4 class=\"text-lg font-bold mb-2 text-space-accent\">\u30a4\u30d9\u30f3\u30c8\u9032\u6357<\/h4>\n                <div class=\"progress-bar\">\n                    <div class=\"progress-fill progress-0\" id=\"event-progress\"><\/div>\n                <\/div>\n                <div class=\"flex justify-between text-xs mt-1\">\n                    <span>\u958b\u59cb<\/span>\n                    <span id=\"event-progress-text\">0%<\/span>\n                    <span>\u7d42\u4e86<\/span>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- \u9650\u5b9a\u8239\u8ca9\u58f2\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3 -->\n        <section class=\"section-card rounded-xl p-6 mb-8\">\n            <h2 class=\"text-2xl font-bold mb-4 text-white border-b border-space-accent pb-2 section-title\">\n                \u23f0 \u9650\u5b9a\u8239\u8ca9\u58f2\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3\n            <\/h2>\n            \n            <div class=\"notification-info\">\n                <i class=\"fas fa-bell mr-2\"><\/i>\n                \u5404Wave\u306e\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u3001\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u901a\u77e5\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\n            <\/div>\n            \n            <div class=\"red-bg-white-text rounded-lg p-4 mb-6\">\n                <h3 class=\"text-lg font-bold mb-2\">\u8cfc\u5165\u6642\u306e\u6ce8\u610f\u70b9<\/h3>\n              <ul class=\"list-disc pl-5 space-y-1\">\n                    <li>\u30bf\u30a4\u30de\u30fc\u306f\u53c2\u8003\u7a0b\u5ea6\u306b\u3002\u6642\u9593\u5909\u66f4\u306b\u306a\u308b\u53ef\u80fd\u6027\u3082\u3042\u308a\u307e\u3059<\/li>\n                    <li>\u6c7a\u6e08\u624b\u6bb5\u304c\u554f\u984c\u306a\u3044\u304b\u4e8b\u524d\u306b\u30c6\u30b9\u30c8\u8cfc\u5165\u3092\u304a\u3059\u3059\u3081\u3057\u307e\u3059<\/li>\n                    <li>\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u306e\u5229\u7528\u4e0a\u9650\u3092\u4e8b\u524d\u306b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044<\/li>\n                    <li>\u9ad8\u984d\u53d6\u5f15\u3067\u30ab\u30fc\u30c9\u4f1a\u793e\u304b\u3089\u78ba\u8a8d\u96fb\u8a71\u304c\u304b\u304b\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059<\/li>\n                    <li>\u6d77\u5916\u4e8b\u52d9\u624b\u6570\u8cbb\u304c\u9ad8\u3044\u30ab\u30fc\u30c9\u3082\u3042\u308b\u306e\u3067\u4e8b\u524d\u78ba\u8a8d\u3092<\/li>\n                <\/ul>\n            <\/div>\n            \n            <div class=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\" id=\"limited-ships-container\">\n                <!-- \u9650\u5b9a\u8239\u30ab\u30fc\u30c9\u306fJavaScript\u3067\u751f\u6210 -->\n            <\/div>\n        <\/section>\n\n        <!-- \u30e1\u30fc\u30ab\u30fc\u5225\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb -->\n        <section class=\"section-card rounded-xl p-6 mb-8\">\n            <h2 class=\"text-2xl font-bold mb-4 text-white border-b border-space-accent pb-2 section-title\">\n                \ud83d\uddd3\ufe0f \u30e1\u30fc\u30ab\u30fc\u5225\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\n            <\/h2>\n            \n            <div class=\"overflow-x-auto\">\n                <table class=\"w-full text-sm text-left\">\n                    <thead class=\"text-xs uppercase bg-space-blue text-white\">\n                        <tr>\n                            <th class=\"px-4 py-3\">\u958b\u50ac\u65e5 (UTC)<\/th>\n                            <th class=\"px-4 py-3\">\u958b\u50ac\u65e5 (\u65e5\u672c\u6642\u9593)<\/th>\n                            <th class=\"px-4 py-3\">\u30e1\u30fc\u30ab\u30fc<\/th>\n                            <th class=\"px-4 py-3\">\u30b9\u30c6\u30fc\u30bf\u30b9<\/th>\n                        <\/tr>\n                    <\/thead>\n                    <tbody id=\"manufacturer-schedule\">\n                        <!-- \u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u306fJavaScript\u3067\u751f\u6210 -->\n                    <\/tbody>\n                <\/table>\n            <\/div>\n        <\/section>\n\n        <!-- \u521d\u5fc3\u8005\u5411\u3051\u60c5\u5831\u30bb\u30af\u30b7\u30e7\u30f3 -->\n        <section class=\"section-card rounded-xl p-6 mb-8\">\n            <h2 class=\"text-2xl font-bold mb-4 text-white border-b border-space-accent pb-2 section-title\">\ud83d\ude80 StarCitizen \u653b\u7565\u5fc5\u9808\u30ea\u30f3\u30af\u96c6<\/h2>\n            \n            <div class=\"bg-gradient-to-r from-blue-600 to-purple-600 text-white rounded-xl p-3 mb-4\">\n                <div class=\"text-center\">\n                    <h3 class=\"text-md font-bold mb-1 text-yellow-300\">\u521d\u56de\u767b\u9332\u7279\u5178\u30b3\u30fc\u30c9\uff08\uff15\u4e07UEC\u304c\u3082\u3089\u3048\u308b\uff09<\/h3>\n                    <div class=\"bg-black bg-opacity-30 rounded-lg p-2 font-mono text-lg font-bold tracking-wider text-red-400 mb-1\">\n                        STAR-GF3D-GLNQ\n                    <\/div>\n                    <p class=\"text-xs opacity-90\">\u767b\u9332\u6642\u306ereferral code\u306b\u5165\u529b<\/p>\n                <\/div>\n            <\/div>\n\n            <div class=\"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-6 gap-3\">\n                <a href=\"https:\/\/www.samurai2948.com\/?p=706\" \n                   target=\"_blank\" \n                   class=\"bg-gradient-to-r from-red-500 to-red-600 hover:from-red-600 hover:to-red-700 text-white px-3 py-2 rounded-lg font-medium transition-all transform hover:scale-105 text-center block hover-glow\">\n                    <div class=\"text-sm font-bold mb-1\">StarCitizen\u65b0\u898f\u5411\u3051\u30fb\u5b8c\u5168\u521d\u5fc3\u8005\/\u59cb\u3081\u65b9\u30ac\u30a4\u30c9<\/div>\n                    <div class=\"text-xs opacity-90\">2025\u5e7411\u6708\u7248<\/div>\n                <\/a>\n                \n                <a href=\"https:\/\/www.robertsspaceindustries.com\/enlist?referral=STAR-GF3D-GLNQ\" \n                   target=\"_blank\" \n                   class=\"bg-gradient-to-r from-orange-500 to-orange-600 hover:from-orange-600 hover:to-orange-700 text-white px-3 py-2 rounded-lg font-medium transition-all transform hover:scale-105 text-center block hover-glow\">\n                    <div class=\"text-sm font-bold mb-1\">\u4f1a\u54e1\u767b\u9332<\/div>\n                    <div class=\"text-xs opacity-90\">5\u4e07UEC\u7279\u5178\u4ed8\u304d<\/div>\n                <\/a>\n\n                <a href=\"https:\/\/discord.gg\/FtwZKhZvPD\" \n                   target=\"_blank\" \n                   class=\"bg-gradient-to-r from-green-500 to-green-600 hover:from-green-600 hover:to-green-700 text-white px-3 py-2 rounded-lg font-medium transition-all transform hover:scale-105 text-center block hover-glow\">\n                    <div class=\"text-sm font-bold mb-1\">Discord\u53c2\u52a0<\/div>\n                    <div class=\"text-xs opacity-90\">\u53c2\u52a0\u8005\u7d04\uff17\uff10\uff10\uff10\u4eba<\/div>\n                <\/a>\n                \n                <a href=\"https:\/\/www.samurai2948.com\/?p=561\" \n                   target=\"_blank\" \n                   class=\"bg-gradient-to-r from-blue-500 to-blue-600 hover:from-blue-600 hover:to-blue-700 text-white px-3 py-2 rounded-lg font-medium transition-all transform hover:scale-105 text-center block hover-glow\">\n                    <div class=\"text-sm font-bold mb-1\">\u65e5\u672c\u8a9e\u5316\u30ac\u30a4\u30c9<\/div>\n                    <div class=\"text-xs opacity-90\">\u30b2\u30fc\u30e0\u3092\u65e5\u672c\u8a9e\u5316<\/div>\n                <\/a>\n                \n                <a href=\"https:\/\/www.samurai2948.com\/?p=1431\" \n                   target=\"_blank\" \n                   class=\"bg-gradient-to-r from-cyan-500 to-cyan-600 hover:from-cyan-600 hover:to-cyan-700 text-white px-3 py-2 rounded-lg font-medium transition-all transform hover:scale-105 text-center block hover-glow\">\n                    <div class=\"text-sm font-bold mb-1\">\u304a\u3059\u3059\u3081\u30b5\u30a4\u30c8\u96c6<\/div>\n                    <div class=\"text-xs opacity-90\">\u53b3\u9078\u60c5\u5831\u30b5\u30a4\u30c8<\/div>\n                <\/a>\n                \n                <a href=\"https:\/\/robertsspaceindustries.com\/en\/orgs\/2948\" \n                   target=\"_blank\" \n                   class=\"bg-gradient-to-r from-purple-500 to-pink-600 hover:from-purple-600 hover:to-pink-700 text-white px-3 py-2 rounded-lg font-medium transition-all transform hover:scale-105 text-center block hover-glow\">\n                    <div class=\"text-sm font-bold mb-1\">\u7d44\u7e54\u53c2\u52a0<\/div>\n                    <div class=\"text-xs opacity-90\">Samurai Squadron<\/div>\n                <\/a>\n            <\/div>\n        <\/section>\n\n        <!-- \u753b\u50cf\u30ae\u30e3\u30e9\u30ea\u30fc -->\n        <section class=\"section-card rounded-xl p-6 mb-8\">\n            <h2 class=\"text-2xl font-bold mb-4 text-white border-b border-space-accent pb-2 section-title\">\n                \ud83d\udcf7 IAE 2955 \u30ae\u30e3\u30e9\u30ea\u30fc\n            <\/h2>\n            \n            <div class=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n                <div class=\"overflow-hidden rounded-lg cursor-pointer transform transition hover:scale-105\">\n                    <img decoding=\"async\" src=\"https:\/\/www.samurai2948.com\/wp-content\/uploads\/2025\/11\/Orison\u3067\u306eIAE\u4f1a\u5834\u307e\u3067\u306e\u5730\u56f3\uff08\u30b7\u30e3\u30c8\u30eb\u3067\u306e\u79fb\u52d5\uff09.jpg\" \n                         alt=\"Orison\u3067\u306eIAE\u4f1a\u5834\u307e\u3067\u306e\u5730\u56f3\" \n                         class=\"w-full h-48 object-cover\"\n                         onclick=\"openModal(this.src)\">\n                <\/div>\n                <div class=\"overflow-hidden rounded-lg cursor-pointer transform transition hover:scale-105\">\n                    <img decoding=\"async\" src=\"https:\/\/www.samurai2948.com\/wp-content\/uploads\/2025\/11\/F8C\u306e\u753b\u50cf.jpg\" \n                         alt=\"F8C\u306e\u753b\u50cf\" \n                         class=\"w-full h-48 object-cover\"\n                         onclick=\"openModal(this.src)\">\n                <\/div>\n                <div class=\"overflow-hidden rounded-lg cursor-pointer transform transition hover:scale-105\">\n                    <img decoding=\"async\" src=\"https:\/\/www.samurai2948.com\/wp-content\/uploads\/2025\/11\/IAE\u306e\u5de8\u5927\u306a\u30de\u30fc\u30af.jpg-scaled.jpg\" \n                         alt=\"IAE\u306e\u5de8\u5927\u306a\u30de\u30fc\u30af\" \n                         class=\"w-full h-48 object-cover\"\n                         onclick=\"openModal(this.src)\">\n                <\/div>\n            <\/div>\n        <\/section>\n    <\/main>\n\n    <!-- \u30d5\u30c3\u30bf\u30fc -->\n    <footer class=\"py-6 px-4 md:px-8 border-t border-space-accent border-opacity-20\">\n        <div class=\"container mx-auto text-center\">\n            <p class=\"text-sm text-gray-400\">StarCitizen IAE 2955 \u653b\u7565\u30b5\u30a4\u30c8 &copy; 2025 &#8211; \u975e\u516c\u5f0f\u30d5\u30a1\u30f3\u30b5\u30a4\u30c8<\/p>\n            <p class=\"text-xs text-gray-500 mt-2\">\u3053\u306e\u30b5\u30a4\u30c8\u306fStarCitizen\u306e\u975e\u516c\u5f0f\u30d5\u30a1\u30f3\u30b5\u30a4\u30c8\u3067\u3059\u3002CIG\u3068\u63d0\u643a\u3057\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n        <\/div>\n    <\/footer>\n\n    <!-- \u30e2\u30fc\u30c0\u30eb\uff08\u753b\u50cf\u62e1\u5927\u8868\u793a\u7528\uff09 -->\n    <div id=\"imageModal\" class=\"modal\" onclick=\"closeModal()\">\n        <img decoding=\"async\" id=\"modalImage\" class=\"modal-content\" src=\"\" alt=\"\u62e1\u5927\u753b\u50cf\">\n    <\/div>\n\n    <!-- \u901a\u77e5\u8a2d\u5b9a\u30e2\u30fc\u30c0\u30eb -->\n    <div id=\"notificationModal\" class=\"modal\">\n        <div class=\"notification-modal\" onclick=\"event.stopPropagation()\">\n            <h3 class=\"text-xl font-bold mb-4 text-space-accent\">\u901a\u77e5\u8a2d\u5b9a<\/h3>\n            <p class=\"mb-4\" id=\"notificationShipInfo\">\u8239\u540d: \u8aad\u307f\u8fbc\u307f\u4e2d&#8230; &#8211; Wave X<\/p>\n            \n            <div class=\"confirmation-details\">\n                <h4 class=\"font-bold mb-2 text-space-accent\">\u901a\u77e5\u8a2d\u5b9a\u8a73\u7d30:<\/h4>\n                <p id=\"notificationDateTime\">\u65e5\u6642: \u8aad\u307f\u8fbc\u307f\u4e2d&#8230;<\/p>\n                <p id=\"notificationWave\">Wave: \u8aad\u307f\u8fbc\u307f\u4e2d&#8230;<\/p>\n                <p id=\"notificationReminder\">\u30ea\u30de\u30a4\u30f3\u30c0\u30fc: \u8ca9\u58f2\u958b\u59cb15\u5206\u524d<\/p>\n            <\/div>\n            \n            <p class=\"mb-4 text-sm\">\u9078\u629e\u3057\u305f\u8239\u306e\u8ca9\u58f2\u958b\u59cb15\u5206\u524d\u306b\u901a\u77e5\u3057\u307e\u3059\u3002<\/p>\n            \n            <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4 mb-6\">\n                <button id=\"google-calendar-btn\" class=\"bg-red-500 hover:bg-red-600 text-white py-2 px-4 rounded-lg transition flex items-center justify-center\">\n                    <i class=\"fab fa-google mr-2\"><\/i> Google\u30ab\u30ec\u30f3\u30c0\u30fc\n                <\/button>\n                <button id=\"apple-calendar-btn\" class=\"bg-gray-800 hover:bg-gray-900 text-white py-2 px-4 rounded-lg transition flex items-center justify-center\">\n                    <i class=\"fab fa-apple mr-2\"><\/i> Apple\u30ab\u30ec\u30f3\u30c0\u30fc (.ics\u30d5\u30a1\u30a4\u30eb)\n                <\/button>\n            <\/div>\n            \n            <div class=\"flex justify-end\">\n                <button onclick=\"closeNotificationModal()\" class=\"bg-gray-600 hover:bg-gray-700 text-white py-2 px-4 rounded-lg transition\">\n                    \u9589\u3058\u308b\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        \/\/ \u30c6\u30fc\u30de\u5207\u308a\u66ff\u3048\n        document.getElementById('theme-toggle').addEventListener('click', function() {\n            document.documentElement.classList.toggle('dark');\n            const icon = this.querySelector('i');\n            if (document.documentElement.classList.contains('dark')) {\n                icon.classList.remove('fa-moon');\n                icon.classList.add('fa-sun');\n            } else {\n                icon.classList.remove('fa-sun');\n                icon.classList.add('fa-moon');\n            }\n        });\n\n        \/\/ \u753b\u50cf\u30e2\u30fc\u30c0\u30eb\n        function openModal(src) {\n            document.getElementById('modalImage').src = src;\n            document.getElementById('imageModal').style.display = 'flex';\n        }\n\n        function closeModal() {\n            document.getElementById('imageModal').style.display = 'none';\n        }\n\n        \/\/ \u901a\u77e5\u30e2\u30fc\u30c0\u30eb\n        let currentShipData = null;\n        let currentWaveIndex = null;\n\n        function openNotificationModal(shipData, waveIndex) {\n            currentShipData = shipData;\n            currentWaveIndex = waveIndex;\n            \n            const wave = shipData.waves[waveIndex];\n            document.getElementById('notificationShipInfo').textContent = \n                `\u8239\u540d: ${shipData.name} - Wave ${waveIndex + 1}`;\n            \n            \/\/ \u8a73\u7d30\u60c5\u5831\u3092\u8868\u793a\n            document.getElementById('notificationDateTime').textContent = \n                `\u65e5\u6642: ${wave.jst} (\u65e5\u672c\u6642\u9593)`;\n            document.getElementById('notificationWave').textContent = \n                `Wave: ${waveIndex + 1} (UTC ${wave.utc})`;\n            \n            document.getElementById('notificationModal').style.display = 'flex';\n        }\n\n        function closeNotificationModal() {\n            document.getElementById('notificationModal').style.display = 'none';\n        }\n\n        \/\/ \u9650\u5b9a\u8239\u30c7\u30fc\u30bf\n        const limitedShips = [\n            {\n                name: \"RSI Constellation Phoenix\",\n                startDay: \"Nov 20 (IAE Day 1)\",\n                image: \"https:\/\/i.imgur.com\/aAbLocN.jpeg\",\n                waves: [\n                    { utc: \"16:00\", jst: \"11\u670821\u65e5 1:00\" },\n                    { utc: \"20:00\", jst: \"11\u670821\u65e5 5:00\" },\n                    { utc: \"00:00\", jst: \"11\u670821\u65e5 9:00\" },\n                    { utc: \"04:00\", jst: \"11\u670821\u65e5 13:00\" },\n                    { utc: \"08:00\", jst: \"11\u670821\u65e5 17:00\" },\n                    { utc: \"12:00\", jst: \"11\u670821\u65e5 21:00\" }\n                ]\n            },\n            {\n                name: \"Origin 890 Jump\",\n                startDay: \"Nov 21 (IAE Day 2)\",\n                image: \"https:\/\/i.imgur.com\/CdVNqAh.jpeg\",\n                waves: [\n                    { utc: \"16:00\", jst: \"11\u670822\u65e5 1:00\" },\n                    { utc: \"20:00\", jst: \"11\u670822\u65e5 5:00\" },\n                    { utc: \"00:00\", jst: \"11\u670822\u65e5 9:00\" },\n                    { utc: \"04:00\", jst: \"11\u670822\u65e5 13:00\" },\n                    { utc: \"08:00\", jst: \"11\u670822\u65e5 17:00\" },\n                    { utc: \"12:00\", jst: \"11\u670822\u65e5 21:00\" }\n                ]\n            },\n            {\n                name: \"Drake Kraken\",\n                startDay: \"Nov 22 (IAE Day 3)\",\n                image: \"https:\/\/i.imgur.com\/pGXzUSU.jpeg\",\n                waves: [\n                    { utc: \"16:00\", jst: \"11\u670823\u65e5 1:00\" },\n                    { utc: \"20:00\", jst: \"11\u670823\u65e5 5:00\" },\n                    { utc: \"00:00\", jst: \"11\u670823\u65e5 9:00\" },\n                    { utc: \"04:00\", jst: \"11\u670823\u65e5 13:00\" },\n                    { utc: \"08:00\", jst: \"11\u670823\u65e5 17:00\" },\n                    { utc: \"12:00\", jst: \"11\u670823\u65e5 21:00\" }\n                ]\n            },\n            {\n                name: \"Drake Kraken Privateer\",\n                startDay: \"Nov 22 (IAE Day 3)\",\n                image: \"https:\/\/i.imgur.com\/9rlsskl.jpeg\",\n                waves: [\n                    { utc: \"16:00\", jst: \"11\u670823\u65e5 1:00\" },\n                    { utc: \"20:00\", jst: \"11\u670823\u65e5 5:00\" },\n                    { utc: \"00:00\", jst: \"11\u670823\u65e5 9:00\" },\n                    { utc: \"04:00\", jst: \"11\u670823\u65e5 13:00\" },\n                    { utc: \"08:00\", jst: \"11\u670823\u65e5 17:00\" },\n                    { utc: \"12:00\", jst: \"11\u670823\u65e5 21:00\" }\n                ]\n            },\n            {\n                name: \"MISC Hull E\",\n                startDay: \"Nov 24 (IAE Day 5)\",\n                image: \"https:\/\/i.imgur.com\/V1FrDTS.jpeg\",\n                waves: [\n                    { utc: \"16:00\", jst: \"11\u670825\u65e5 1:00\" },\n                    { utc: \"20:00\", jst: \"11\u670825\u65e5 5:00\" },\n                    { utc: \"00:00\", jst: \"11\u670825\u65e5 9:00\" },\n                    { utc: \"04:00\", jst: \"11\u670825\u65e5 13:00\" },\n                    { utc: \"08:00\", jst: \"11\u670825\u65e5 17:00\" },\n                    { utc: \"12:00\", jst: \"11\u670825\u65e5 21:00\" }\n                ]\n            },\n            {\n                name: \"Consolidated Outland Pioneer\",\n                startDay: \"Nov 26 (IAE Day 7)\",\n                image: \"https:\/\/i.imgur.com\/ZbIEkK0.jpeg\",\n                waves: [\n                    { utc: \"16:00\", jst: \"11\u670827\u65e5 1:00\" },\n                    { utc: \"20:00\", jst: \"11\u670827\u65e5 5:00\" },\n                    { utc: \"00:00\", jst: \"11\u670827\u65e5 9:00\" },\n                    { utc: \"04:00\", jst: \"11\u670827\u65e5 13:00\" },\n                    { utc: \"08:00\", jst: \"11\u670827\u65e5 17:00\" },\n                    { utc: \"12:00\", jst: \"11\u670827\u65e5 21:00\" }\n                ]\n            },\n            {\n                name: \"Aegis Idris-P\",\n                startDay: \"Nov 28 (IAE Day 9)\",\n                image: \"https:\/\/i.imgur.com\/tegIv6s.jpeg\",\n                waves: [\n                    { utc: \"16:00\", jst: \"11\u670829\u65e5 1:00\" },\n                    { utc: \"20:00\", jst: \"11\u670829\u65e5 5:00\" },\n                    { utc: \"00:00\", jst: \"11\u670829\u65e5 9:00\" },\n                    { utc: \"04:00\", jst: \"11\u670829\u65e5 13:00\" },\n                    { utc: \"08:00\", jst: \"11\u670829\u65e5 17:00\" },\n                    { utc: \"12:00\", jst: \"11\u670829\u65e5 21:00\" }\n                ]\n            },\n            {\n                name: \"Aegis Javelin\",\n                startDay: \"Nov 28 (IAE Day 9)\",\n                image: \"https:\/\/i.imgur.com\/5duXeOz.jpeg\",\n                waves: [\n                    { utc: \"16:00\", jst: \"11\u670829\u65e5 1:00\" },\n                    { utc: \"20:00\", jst: \"11\u670829\u65e5 5:00\" },\n                    { utc: \"00:00\", jst: \"11\u670829\u65e5 9:00\" },\n                    { utc: \"04:00\", jst: \"11\u670829\u65e5 13:00\" },\n                    { utc: \"08:00\", jst: \"11\u670829\u65e5 17:00\" },\n                    { utc: \"12:00\", jst: \"11\u670829\u65e5 21:00\" }\n                ]\n            }\n        ];\n\n        \/\/ \u30e1\u30fc\u30ab\u30fc\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u30c7\u30fc\u30bf\n        const manufacturerSchedule = [\n            { utc: \"Nov 20-21\", jst: \"11\u670821\u65e5 am1:00 \uff5e 22\u65e5 am0:59\", manufacturers: \"RSI\", status: \"upcoming\" },\n            { utc: \"Nov 21-22\", jst: \"11\u670822\u65e5 am1:00 \uff5e 23\u65e5 am0:59\", manufacturers: \"Origin Jumpworks\", status: \"upcoming\" },\n            { utc: \"Nov 22-23\", jst: \"11\u670823\u65e5 am1:00 \uff5e 24\u65e5 am0:59\", manufacturers: \"Drake Interplanetary\", status: \"upcoming\" },\n            { utc: \"Nov 23-24\", jst: \"11\u670824\u65e5 am1:00 \uff5e 25\u65e5 am0:59\", manufacturers: \"Aopoa, Banu, Esperia, Gatac, Greycat Industrial\", status: \"upcoming\" },\n            { utc: \"Nov 24-25\", jst: \"11\u670825\u65e5 am1:00 \uff5e 26\u65e5 am0:59\", manufacturers: \"Kruger Intergalactic, Mirai, MISC\", status: \"upcoming\" },\n            { utc: \"Nov 25-26\", jst: \"11\u670826\u65e5 am1:00 \uff5e 27\u65e5 am0:59\", manufacturers: \"Anvil Aerospace\", status: \"upcoming\" },\n            { utc: \"Nov 26-27\", jst: \"11\u670827\u65e5 am1:00 \uff5e 28\u65e5 am0:59\", manufacturers: \"Argo Astronautics, Consolidated Outland, CNOU, Greycat Industrial\", status: \"upcoming\" },\n            { utc: \"Nov 27-28\", jst: \"11\u670828\u65e5 am1:00 \uff5e 29\u65e5 am0:59\", manufacturers: \"Crusader Industries, Tumbril\", status: \"upcoming\" },\n            { utc: \"Nov 28-29\", jst: \"11\u670829\u65e5 am1:00 \uff5e 30\u65e5 am0:59\", manufacturers: \"Aegis Dynamics\", status: \"upcoming\" },\n            { utc: \"Nov 29\", jst: \"11\u670830\u65e5 am1:00 \uff5e 12\u67081\u65e5 am0:59\", manufacturers: \"Best in Show\", status: \"upcoming\" },\n            { utc: \"Nov 30 - Dec 3\", jst: \"12\u67081\u65e5 am1:00 \uff5e 4\u65e5 am0:59\", manufacturers: \"Finale (\u5168\u30e1\u30fc\u30ab\u30fc\u518d\u96c6\u5408)\", status: \"upcoming\" }\n        ];\n\n        \/\/ \u9650\u5b9a\u8239\u30ab\u30fc\u30c9\u3092\u751f\u6210\n        function renderLimitedShips() {\n            const container = document.getElementById('limited-ships-container');\n            container.innerHTML = '';\n            \n            limitedShips.forEach(ship => {\n                const shipCard = document.createElement('div');\n                shipCard.className = 'ship-card section-card rounded-xl p-4';\n                \n                \/\/ \u6b21\u306e\u8ca9\u58f2Wave\u3092\u8a08\u7b97\n                const nextWave = getNextWave(ship);\n                \n                shipCard.innerHTML = `\n                    <div class=\"flex flex-col h-full\">\n                        <div class=\"flex-shrink-0 mb-4\">\n                            <img decoding=\"async\" src=\"${ship.image}\" alt=\"${ship.name}\" class=\"w-full h-40 object-cover rounded-lg\">\n                        <\/div>\n                        <h3 class=\"text-lg font-bold mb-2 text-space-accent\">${ship.name}<\/h3>\n                        <p class=\"text-sm text-gray-400 mb-2\">\u958b\u59cb: ${ship.startDay}<\/p>\n                        \n                        ${nextWave ? `\n                            <div class=\"mb-4\">\n                                <h4 class=\"text-sm font-bold mb-1\">\u6b21\u306e\u8ca9\u58f2Wave ${nextWave.index + 1} \u958b\u59cb\u307e\u3067:<\/h4>\n                                <div class=\"countdown-timer text-center mb-2\" id=\"countdown-${ship.name.replace(\/\\s+\/g, '-')}\">\n                                    \u8a08\u7b97\u4e2d...\n                                <\/div>\n                                <p class=\"event-time-large text-center\">\u65e5\u672c\u6642\u9593: ${nextWave.wave.jst}<\/p>\n                            <\/div>\n                        ` : `\n                            <p class=\"text-sm text-yellow-400 mb-4\">\u8ca9\u58f2\u306f\u7d42\u4e86\u3057\u307e\u3057\u305f<\/p>\n                        `}\n                        \n                        <div class=\"mt-auto\">\n                            <h4 class=\"text-sm font-bold mb-2\">\u8ca9\u58f2Wave:<\/h4>\n                            <div class=\"flex flex-wrap mb-3\">\n                                ${ship.waves.map((wave, index) => `\n                                    <span class=\"wave-badge wave-${index+1}\" onclick=\"openNotificationModal(${JSON.stringify(ship).replace(\/\"\/g, '&quot;')}, ${index})\">\n                                        Wave ${index+1}<br>\n                                        <span class=\"text-xs\">\u65e5\u672c\u6642\u9593${wave.jst.split(' ')[1]}<\/span>\n                                    <\/span>\n                                `).join('')}\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                `;\n                \n                container.appendChild(shipCard);\n            });\n            \n            \/\/ \u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3\u3092\u66f4\u65b0\n            updateAllCountdowns();\n        }\n\n        \/\/ \u6b21\u306e\u8ca9\u58f2Wave\u3092\u53d6\u5f97\n        function getNextWave(ship) {\n            const now = new Date();\n            \n            for (let i = 0; i < ship.waves.length; i++) {\n                const wave = ship.waves[i];\n                \/\/ JST\u6642\u9593\u304b\u3089Date\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\uff08\u7c21\u6613\u5b9f\u88c5\uff09\n                const waveDate = parseJSTDateTime(wave.jst);\n                \n                if (waveDate > now) {\n                    return { wave, index: i };\n                }\n            }\n            \n            return null;\n        }\n\n        \/\/ JST\u65e5\u6642\u6587\u5b57\u5217\u3092Date\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\uff08\u7c21\u6613\u5b9f\u88c5\uff09\n        function parseJSTDateTime(jstString) {\n            \/\/ \u3053\u306e\u5b9f\u88c5\u306f\u7c21\u6613\u7248\u3067\u3059\u3002\u5b9f\u969b\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3088\u308a\u5805\u7262\u306a\u5b9f\u88c5\u304c\u5fc5\u8981\u3067\u3059\n            const match = jstString.match(\/(\\d+)\u6708(\\d+)\u65e5 (\\d+):(\\d+)\/);\n            if (match) {\n                const month = parseInt(match[1]);\n                const day = parseInt(match[2]);\n                const hour = parseInt(match[3]);\n                const minute = parseInt(match[4]);\n                \n                \/\/ 2025\u5e74\u3092\u4eee\u5b9a\uff08IAE 2955\u306f2025\u5e74\u958b\u50ac\uff09\n                return new Date(2025, month - 1, day, hour, minute);\n            }\n            \n            \/\/ \u30d1\u30fc\u30b9\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u73fe\u5728\u6642\u523b+1\u65e5\u3092\u8fd4\u3059\n            return new Date(Date.now() + 24 * 60 * 60 * 1000);\n        }\n\n        \/\/ \u3059\u3079\u3066\u306e\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3\u3092\u66f4\u65b0\n        function updateAllCountdowns() {\n            limitedShips.forEach(ship => {\n                const nextWave = getNextWave(ship);\n                if (nextWave) {\n                    const countdownElement = document.getElementById(`countdown-${ship.name.replace(\/\\s+\/g, '-')}`);\n                    if (countdownElement) {\n                        updateCountdown(countdownElement, parseJSTDateTime(nextWave.wave.jst), nextWave.index + 1);\n                    }\n                }\n            });\n            \n            \/\/ IAE\u5168\u4f53\u306e\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3\u3092\u66f4\u65b0\n            updateIAECountdown();\n        }\n\n        \/\/ \u500b\u5225\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3\u3092\u66f4\u65b0\n        function updateCountdown(element, targetDate, waveNumber) {\n            const now = new Date();\n            const diff = targetDate - now;\n            \n            if (diff <= 0) {\n                element.textContent = \"\u8ca9\u58f2\u958b\u59cb!\";\n                return;\n            }\n            \n            const days = Math.floor(diff \/ (1000 * 60 * 60 * 24));\n            const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) \/ (1000 * 60 * 60));\n            const minutes = Math.floor((diff % (1000 * 60 * 60)) \/ (1000 * 60));\n            const seconds = Math.floor((diff % (1000 * 60)) \/ 1000);\n            \n            let timeString = \"\";\n            if (days > 0) timeString += `${days}\u65e5`;\n            if (hours > 0) timeString += `${hours}\u6642\u9593`;\n            if (minutes > 0) timeString += `${minutes}\u5206`;\n            if (seconds > 0) timeString += `${seconds}\u79d2`;\n            \n            element.textContent = `\u6b8b\u308a\u6642\u9593 ${timeString}`;\n        }\n\n        \/\/ IAE\u5168\u4f53\u306e\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3\u3092\u66f4\u65b0\n        function updateIAECountdown() {\n            const countdownElement = document.getElementById('iae-countdown');\n            const progressElement = document.getElementById('event-progress');\n            const progressTextElement = document.getElementById('event-progress-text');\n            \n            \/\/ IAE\u958b\u59cb\u65e5\u6642 (\u65e5\u672c\u6642\u9593 11\u670821\u65e5 1:00)\n            const startDate = new Date(2025, 10, 21, 1, 0, 0); \/\/ \u6708\u306f0\u59cb\u307e\u308a\u306a\u306e\u306710\u304c11\u6708\n            \/\/ IAE\u7d42\u4e86\u65e5\u6642 (\u65e5\u672c\u6642\u9593 12\u67084\u65e5 1:00)\n            const endDate = new Date(2025, 11, 4, 1, 0, 0); \/\/ \u6708\u306f0\u59cb\u307e\u308a\u306a\u306e\u306711\u304c12\u6708\n            \n            const now = new Date();\n            \n            \/\/ \u30a4\u30d9\u30f3\u30c8\u524d\n            if (now < startDate) {\n                const diff = startDate - now;\n                const days = Math.floor(diff \/ (1000 * 60 * 60 * 24));\n                const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) \/ (1000 * 60 * 60));\n                const minutes = Math.floor((diff % (1000 * 60 * 60)) \/ (1000 * 60));\n                const seconds = Math.floor((diff % (1000 * 60)) \/ 1000);\n                \n                let timeString = \"\";\n                if (days > 0) timeString += `${days}\u65e5`;\n                if (hours > 0) timeString += `${hours}\u6642\u9593`;\n                if (minutes > 0) timeString += `${minutes}\u5206`;\n                if (seconds > 0) timeString += `${seconds}\u79d2`;\n                \n                countdownElement.textContent = `\u958b\u59cb\u307e\u3067 ${timeString}`;\n                progressElement.className = 'progress-fill progress-0';\n                progressTextElement.textContent = '0%';\n            }\n            \/\/ \u30a4\u30d9\u30f3\u30c8\u4e2d\n            else if (now >= startDate && now <= endDate) {\n                const totalDuration = endDate - startDate;\n                const elapsed = now - startDate;\n                const progressPercent = Math.min(100, Math.max(0, (elapsed \/ totalDuration) * 100));\n                \n                progressElement.className = `progress-fill progress-${Math.floor(progressPercent)}`;\n                progressTextElement.textContent = `${Math.floor(progressPercent)}%`;\n                \n                const remaining = endDate - now;\n                const days = Math.floor(remaining \/ (1000 * 60 * 60 * 24));\n                const hours = Math.floor((remaining % (1000 * 60 * 60 * 24)) \/ (1000 * 60 * 60));\n                const minutes = Math.floor((remaining % (1000 * 60 * 60)) \/ (1000 * 60));\n                const seconds = Math.floor((remaining % (1000 * 60)) \/ 1000);\n                \n                let timeString = \"\";\n                if (days > 0) timeString += `${days}\u65e5`;\n                if (hours > 0) timeString += `${hours}\u6642\u9593`;\n                if (minutes > 0) timeString += `${minutes}\u5206`;\n                if (seconds > 0) timeString += `${seconds}\u79d2`;\n                \n                countdownElement.textContent = `\u7d42\u4e86\u307e\u3067 ${timeString}`;\n            }\n            \/\/ \u30a4\u30d9\u30f3\u30c8\u7d42\u4e86\u5f8c\n            else {\n                countdownElement.textContent = \"\u30a4\u30d9\u30f3\u30c8\u306f\u7d42\u4e86\u3057\u307e\u3057\u305f\";\n                progressElement.className = 'progress-fill progress-100';\n                progressTextElement.textContent = '100%';\n            }\n        }\n\n        \/\/ \u30e1\u30fc\u30ab\u30fc\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3092\u751f\u6210\n        function renderManufacturerSchedule() {\n            const tbody = document.getElementById('manufacturer-schedule');\n            tbody.innerHTML = '';\n            \n            manufacturerSchedule.forEach(item => {\n                const row = document.createElement('tr');\n                row.className = 'border-b border-gray-700';\n                \n                let statusBadge = '';\n                if (item.status === 'current') {\n                    statusBadge = '<span class=\"px-2 py-1 bg-green-600 text-white rounded-full text-xs\">\u958b\u50ac\u4e2d<\/span>';\n                } else if (item.status === 'upcoming') {\n                    statusBadge = '<span class=\"px-2 py-1 bg-blue-600 text-white rounded-full text-xs\">\u958b\u50ac\u524d<\/span>';\n                } else {\n                    statusBadge = '<span class=\"px-2 py-1 bg-gray-600 text-white rounded-full text-xs\">\u7d42\u4e86<\/span>';\n                }\n                \n                row.innerHTML = `\n                    <td class=\"px-4 py-3\">${item.utc}<\/td>\n                    <td class=\"px-4 py-3\">${item.jst}<\/td>\n                    <td class=\"px-4 py-3\">${item.manufacturers}<\/td>\n                    <td class=\"px-4 py-3\">${statusBadge}<\/td>\n                `;\n                \n                tbody.appendChild(row);\n            });\n        }\n\n        \/\/ JST\u65e5\u6642\u6587\u5b57\u5217\u3092ISO\u5f62\u5f0f\u306b\u5909\u63db\n        function jstToISO(jstString) {\n            const match = jstString.match(\/(\\d+)\u6708(\\d+)\u65e5 (\\d+):(\\d+)\/);\n            if (match) {\n                const month = parseInt(match[1]);\n                const day = parseInt(match[2]);\n                const hour = parseInt(match[3]);\n                const minute = parseInt(match[4]);\n                \n                \/\/ 2025\u5e74\u3092\u4eee\u5b9a\uff08IAE 2955\u306f2025\u5e74\u958b\u50ac\uff09\n                const date = new Date(2025, month - 1, day, hour, minute);\n                \/\/ JST (UTC+9) \u306a\u306e\u30679\u6642\u9593\u5f15\u3044\u3066UTC\u306b\u5909\u63db\n                date.setHours(date.getHours() - 9);\n                return date.toISOString().replace(\/[-:]\/g, \"\").split(\".\")[0] + \"Z\";\n            }\n            return \"\";\n        }\n\n        \/\/ Google\u30ab\u30ec\u30f3\u30c0\u30fc\u901a\u77e5\u8a2d\u5b9a\n        document.getElementById('google-calendar-btn').addEventListener('click', function() {\n            if (currentShipData && currentWaveIndex !== null) {\n                const wave = currentShipData.waves[currentWaveIndex];\n                const title = `${currentShipData.name} - Wave ${currentWaveIndex + 1} \u8ca9\u58f2\u958b\u59cb`;\n                \n                \/\/ JST \u306e\u65e5\u4ed8\u3092 Date \u578b\u3078\n                const jstString = wave.jst.replace(\"\u6708\", \"-\").replace(\"\u65e5\", \"\");\n                const start = new Date(`2025-${jstString}:00+09:00`);\n                const end = new Date(start.getTime() + 30 * 60000); \/\/ 30\u5206\u306e\u30a4\u30d9\u30f3\u30c8\n                \n                \/\/ Google\u30ab\u30ec\u30f3\u30c0\u30fcURL\u751f\u6210\n                const startISO = start.toISOString().replace(\/[-:]\/g, \"\").replace(\/\\.\\d{3}\/, \"\");\n                const endISO = end.toISOString().replace(\/[-:]\/g, \"\").replace(\/\\.\\d{3}\/, \"\");\n                \n                const details = `${currentShipData.name}\u306eWave ${currentWaveIndex + 1}\u8ca9\u58f2\u304c\u958b\u59cb\u3055\u308c\u307e\u3059\u3002`;\n                const location = \"Star Citizen - IAE 2955\";\n                \n                const googleCalendarUrl = `https:\/\/calendar.google.com\/calendar\/render?action=TEMPLATE&text=${encodeURIComponent(title)}&dates=${startISO}\/${endISO}&details=${encodeURIComponent(details)}&location=${encodeURIComponent(location)}`;\n                \n                \/\/ \u65b0\u3057\u3044\u30bf\u30d6\u3067Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u958b\u304f\n                window.open(googleCalendarUrl, '_blank');\n                \n                alert(`Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306b ${currentShipData.name} \u306eWave ${currentWaveIndex + 1} \u901a\u77e5\u3092\u8a2d\u5b9a\u3057\u307e\u3057\u305f`);\n                closeNotificationModal();\n            }\n        });\n\n        \/\/ Apple\u30ab\u30ec\u30f3\u30c0\u30fc\u901a\u77e5\u8a2d\u5b9a (ICS\u30d5\u30a1\u30a4\u30eb\u751f\u6210)\n        document.getElementById(\"apple-calendar-btn\").addEventListener(\"click\", function () {\n            if (!currentShipData || currentWaveIndex === null) return;\n\n            const wave = currentShipData.waves[currentWaveIndex];\n            const title = `${currentShipData.name} - Wave ${currentWaveIndex + 1} \u8ca9\u58f2\u958b\u59cb`;\n            \n            \/\/ JST \u306e\u65e5\u4ed8\u3092 Date \u578b\u3078\n            const jstString = wave.jst.replace(\"\u6708\", \"-\").replace(\"\u65e5\", \"\");\n            const start = new Date(`2025-${jstString}:00+09:00`);\n            const end = new Date(start.getTime() + 30 * 60000); \/\/ 30\u5206\u306e\u30a4\u30d9\u30f3\u30c8\n\n            \/\/ ICS\u30d5\u30a1\u30a4\u30eb\u306e\u65e5\u4ed8\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\n            function toICSDate(date) {\n                return date.toISOString().replace(\/[-:]\/g, \"\").split(\".\")[0] + \"Z\";\n            }\n\n            const icsContent =\n`BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-\/\/Samurai2948 IAE Calendar\/\/JP\nBEGIN:VEVENT\nUID:${Date.now()}@samurai2948.com\nDTSTAMP:${toICSDate(new Date())}\nDTSTART:${toICSDate(start)}\nDTEND:${toICSDate(end)}\nSUMMARY:${title}\nDESCRIPTION:StarCitizen IAE2955 \u9650\u5b9a\u8ca9\u58f2 Wave \u901a\u77e5\nLOCATION:Star Citizen - IAE 2955\nBEGIN:VALARM\nTRIGGER:-PT15M\nACTION:DISPLAY\nDESCRIPTION:${title}\nEND:VALARM\nEND:VEVENT\nEND:VCALENDAR`;\n\n            \/\/ \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\n            const blob = new Blob([icsContent], { type: \"text\/calendar;charset=utf-8\" });\n            const url = URL.createObjectURL(blob);\n\n            const a = document.createElement(\"a\");\n            a.href = url;\n            a.download = `${currentShipData.name.replace(\/\\s+\/g, \"_\")}_Wave${currentWaveIndex + 1}.ics`;\n            document.body.appendChild(a);\n            a.click();\n            document.body.removeChild(a);\n\n            URL.revokeObjectURL(url);\n            \n            setTimeout(() => {\n                alert(\"ICS\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3057\u305f\u3002\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u3068Apple\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u4e88\u5b9a\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\");\n                closeNotificationModal();\n            }, 500);\n        });\n\n        \/\/ \u521d\u671f\u5316\n        document.addEventListener('DOMContentLoaded', function() {\n            renderLimitedShips();\n            renderManufacturerSchedule();\n            \n            \/\/ 1\u79d2\u3054\u3068\u306b\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3\u3092\u66f4\u65b0\n            setInterval(updateAllCountdowns, 1000);\n        });\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>StarCitizen IAE 2955 \u653b\u7565\u30b5\u30a4\u30c8 StarCitizen IAE 2955 \u653b\u7565 \ud83d\ude80 IAE 2955 \u30a4\u30d9\u30f3\u30c8\u30ab\u30a6\u30f3\u30c8\u30c0\u30a6\u30f3 \u958b\u50ac\u5834\u6240: Orison, Crusader &#8211; Visio [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2072,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"swell_btn_cv_data":"","footnotes":""},"categories":[9],"tags":[],"class_list":["post-2047","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-starcitizen"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=\/wp\/v2\/posts\/2047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2047"}],"version-history":[{"count":15,"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=\/wp\/v2\/posts\/2047\/revisions"}],"predecessor-version":[{"id":2098,"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=\/wp\/v2\/posts\/2047\/revisions\/2098"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=\/wp\/v2\/media\/2072"}],"wp:attachment":[{"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.samurai2948.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}