<!doctype html>
<html lang="zh-Hant-TW">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>配合機房空調維護，對外服務暫停公告｜數位文化中心</title>
  <meta name="description" content="數位文化中心配合機房空調維護，對外服務暫停公告頁面。">
  <style>
    /*
      數位文化中心維護公告頁
      純 HTML5 + CSS + JavaScript，無外部框架、無外部字型、無圖片依賴
      聯絡方式已改為 ASCDC 官方聯絡方式
    */

    :root {
      --color-bg: #f4f8ff;
      --color-surface: #ffffff;
      --color-primary: #0b3d91;
      --color-primary-2: #0f62c8;
      --color-primary-3: #1d74e8;
      --color-primary-dark: #082b64;
      --color-text: #172033;
      --color-muted: #5f6f8a;
      --color-muted-2: #7c8da8;
      --color-border: #dbe6f5;
      --color-warning: #f28c28;
      --color-warning-bg: #fff6e8;
      --color-danger: #ef5b3d;
      --color-success: #2f9e76;
      --shadow-sm: 0 8px 22px rgba(10, 48, 112, 0.08);
      --shadow-md: 0 18px 50px rgba(10, 48, 112, 0.14);
      --shadow-lg: 0 30px 80px rgba(10, 48, 112, 0.18);
      --radius-lg: 28px;
      --radius-xl: 34px;
      --container: 1180px;
      --header-height: 76px;
      --focus: 0 0 0 4px rgba(29, 116, 232, 0.22);
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }

    body {
      margin: 0;
      color: var(--color-text);
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif;
      line-height: 1.75;
      background:
        radial-gradient(circle at 10% 0%, rgba(63, 140, 255, 0.18), transparent 28rem),
        radial-gradient(circle at 88% 18%, rgba(31, 192, 210, 0.12), transparent 26rem),
        linear-gradient(180deg, #f7fbff 0%, var(--color-bg) 45%, #ffffff 100%);
      overflow-x: hidden;
    }

    a { color: inherit; text-decoration: none; }
    button, input, textarea { font: inherit; }
    button { cursor: pointer; }

    button:focus-visible,
    a:focus-visible {
      outline: none;
      box-shadow: var(--focus);
      border-radius: 10px;
    }

    .skip-link {
      position: fixed;
      top: 12px;
      left: 12px;
      z-index: 999;
      padding: 10px 14px;
      color: #fff;
      background: var(--color-primary);
      border-radius: 999px;
      transform: translateY(-140%);
      transition: transform 0.2s ease;
    }
    .skip-link:focus { transform: translateY(0); }

    .scroll-progress {
      position: fixed;
      top: 0;
      left: 0;
      z-index: 1000;
      width: 0%;
      height: 4px;
      background: linear-gradient(90deg, #38a3ff, #78e5ff, #f5a845);
      box-shadow: 0 0 16px rgba(29, 116, 232, 0.45);
    }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 900;
      height: var(--header-height);
      background: rgba(8, 43, 100, 0.92);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
      border-bottom: 1px solid rgba(255, 255, 255, 0.14);
      box-shadow: 0 16px 40px rgba(5, 23, 55, 0.18);
    }

    .header-inner {
      width: min(calc(100% - 36px), var(--container));
      height: 100%;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }

    .brand {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      color: #fff;
      font-weight: 900;
      letter-spacing: 0.03em;
      white-space: nowrap;
    }

    .brand-mark {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      border-radius: 14px;
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.26), rgba(255, 255, 255, 0.08)), rgba(255, 255, 255, 0.1);
      border: 1px solid rgba(255, 255, 255, 0.24);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28);
    }
    .brand-mark svg { width: 25px; height: 25px; }

    .brand-text { display: flex; flex-direction: column; line-height: 1.2; }
    .brand-title { font-size: 1.05rem; }
    .brand-subtitle {
      margin-top: 2px;
      color: rgba(255, 255, 255, 0.62);
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .main-nav {
      display: flex;
      align-items: center;
      gap: 6px;
      color: rgba(255, 255, 255, 0.84);
      font-size: 0.94rem;
      font-weight: 700;
    }
    .main-nav a {
      padding: 10px 14px;
      border-radius: 999px;
      transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
    }
    .main-nav a:hover {
      color: #fff;
      background: rgba(255, 255, 255, 0.13);
      transform: translateY(-1px);
    }

    .header-actions { display: flex; align-items: center; gap: 10px; }
    .icon-button {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      color: #fff;
      border: 1px solid rgba(255, 255, 255, 0.18);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.08);
      transition: transform 0.18s ease, background 0.18s ease;
    }
    .icon-button:hover { transform: translateY(-1px); background: rgba(255, 255, 255, 0.16); }
    .menu-toggle { display: none; }

    .container {
      width: min(calc(100% - 36px), var(--container));
      margin: 0 auto;
    }

    .breadcrumb {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 26px 0 18px;
      color: var(--color-muted);
      font-size: 0.92rem;
      font-weight: 700;
    }
    .breadcrumb span { color: var(--color-muted-2); }

    .hero {
      position: relative;
      margin-top: 28px;
      overflow: hidden;
      padding: clamp(28px, 4vw, 56px);
      border: 1px solid rgba(219, 230, 245, 0.95);
      border-radius: var(--radius-xl);
      background:
        radial-gradient(circle at 82% 18%, rgba(68, 150, 255, 0.22), transparent 19rem),
        radial-gradient(circle at 70% 70%, rgba(25, 188, 210, 0.14), transparent 18rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(237, 246, 255, 0.94));
      box-shadow: var(--shadow-md);
    }
    .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      opacity: 0.6;
      pointer-events: none;
      background-image:
        linear-gradient(rgba(11, 61, 145, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(11, 61, 145, 0.06) 1px, transparent 1px);
      background-size: 42px 42px;
      mask-image: linear-gradient(90deg, transparent 0%, #000 34%, #000 100%);
    }

    .hero-content {
      position: relative;
      z-index: 2;
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
      gap: clamp(24px, 4vw, 52px);
      align-items: center;
    }

    .eyebrow-row {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      align-items: center;
      margin-bottom: 20px;
    }

    .badge {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      min-height: 34px;
      padding: 7px 12px;
      border-radius: 999px;
      font-size: 0.88rem;
      font-weight: 900;
      letter-spacing: 0.02em;
    }
    .badge svg { width: 17px; height: 17px; flex: 0 0 auto; }
    .badge-danger { color: #b83d20; background: #fff0e8; border: 1px solid rgba(239, 91, 61, 0.34); }
    .badge-blue { color: var(--color-primary); background: #eaf3ff; border: 1px solid rgba(29, 116, 232, 0.28); }
    .badge-green { color: #187452; background: #eafaf4; border: 1px solid rgba(47, 158, 118, 0.25); }

    .hero-title {
      margin: 0;
      color: #071d49;
      font-size: clamp(2rem, 4.4vw, 4.25rem);
      line-height: 1.12;
      letter-spacing: -0.06em;
      font-weight: 950;
    }
    .hero-lead {
      max-width: 720px;
      margin: 22px 0 0;
      color: #35455e;
      font-size: clamp(1rem, 1.35vw, 1.18rem);
      font-weight: 650;
    }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 9px;
      min-height: 48px;
      padding: 12px 18px;
      border: 0;
      border-radius: 999px;
      font-weight: 900;
      transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
    }
    .btn svg { width: 18px; height: 18px; }
    .btn-primary {
      color: #fff;
      background: linear-gradient(135deg, var(--color-primary-2), var(--color-primary));
      box-shadow: 0 16px 30px rgba(15, 98, 200, 0.25);
    }
    .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 20px 44px rgba(15, 98, 200, 0.32); }
    .btn-secondary {
      color: var(--color-primary);
      background: #fff;
      border: 1px solid rgba(11, 61, 145, 0.18);
      box-shadow: var(--shadow-sm);
    }
    .btn-secondary:hover { transform: translateY(-2px); background: #f8fbff; }

    .hero-visual { position: relative; min-height: 340px; display: grid; place-items: center; }
    .maintenance-illustration { position: relative; width: min(100%, 430px); aspect-ratio: 1.12; }
    .orb {
      position: absolute;
      inset: 0;
      border-radius: 40% 60% 50% 50%;
      background:
        radial-gradient(circle at 30% 28%, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.35) 36%, transparent 37%),
        linear-gradient(135deg, rgba(70, 154, 255, 0.24), rgba(0, 206, 224, 0.08));
      filter: drop-shadow(0 26px 46px rgba(29, 116, 232, 0.16));
      transform: rotate(-7deg);
    }
    .server-stack {
      position: absolute;
      left: 18%;
      top: 19%;
      width: 48%;
      height: 62%;
      border-radius: 24px;
      background:
        linear-gradient(180deg, #2d8cff, #0b3d91 64%, #07285f),
        repeating-linear-gradient(180deg, transparent 0 18px, rgba(255, 255, 255, 0.1) 18px 20px);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.38), 0 32px 55px rgba(11, 61, 145, 0.28);
      transform: perspective(800px) rotateY(-10deg) rotateX(3deg);
    }
    .server-stack::before {
      content: "";
      position: absolute;
      inset: 18px 20px;
      border-radius: 16px;
      background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), transparent),
        repeating-linear-gradient(180deg, rgba(5, 27, 70, 0.74) 0 20px, rgba(8, 43, 100, 0.78) 20px 38px);
      border: 1px solid rgba(255, 255, 255, 0.16);
    }
    .server-stack::after {
      content: "";
      position: absolute;
      right: 30px;
      top: 50px;
      width: 12px;
      height: 12px;
      border-radius: 999px;
      background: #7df5ff;
      box-shadow: 0 48px 0 #7df5ff, 0 96px 0 #7df5ff, -48px 0 0 #64d2ff, -48px 48px 0 #64d2ff, -48px 96px 0 #64d2ff;
    }
    .server-small {
      position: absolute;
      right: 16%;
      top: 35%;
      width: 30%;
      height: 42%;
      border-radius: 20px;
      background: linear-gradient(180deg, #58aeff, #0f62c8 62%, #0b3d91);
      box-shadow: 0 22px 36px rgba(11, 61, 145, 0.22);
      transform: perspective(700px) rotateY(12deg);
    }
    .server-small::before {
      content: "";
      position: absolute;
      inset: 16px;
      border-radius: 12px;
      background: repeating-linear-gradient(180deg, rgba(6, 37, 91, 0.72) 0 16px, rgba(11, 61, 145, 0.72) 16px 30px);
    }
    .shield {
      position: absolute;
      left: 8%;
      bottom: 17%;
      width: 90px;
      height: 104px;
      display: grid;
      place-items: center;
      color: #fff;
      background: linear-gradient(135deg, #66b7ff, #0f62c8);
      clip-path: polygon(50% 0%, 92% 14%, 100% 46%, 82% 78%, 50% 100%, 18% 78%, 0% 46%, 8% 14%);
      filter: drop-shadow(0 18px 28px rgba(15, 98, 200, 0.28));
    }
    .shield svg { width: 42px; height: 42px; }
    .gear {
      position: absolute;
      right: 8%;
      bottom: 14%;
      width: 92px;
      height: 92px;
      display: grid;
      place-items: center;
      border-radius: 999px;
      color: #fff;
      background: conic-gradient(from 20deg, #0b3d91, #57aaff, #0f62c8, #0b3d91);
      box-shadow: 0 18px 32px rgba(11, 61, 145, 0.22);
    }
    .gear::before {
      content: "";
      position: absolute;
      inset: 24px;
      border-radius: 999px;
      background: #eef6ff;
    }
    .gear svg { position: relative; width: 34px; height: 34px; color: #0f62c8; z-index: 2; }

    .floating-dot {
      position: absolute;
      width: 14px;
      height: 14px;
      border-radius: 999px;
      background: rgba(29, 116, 232, 0.16);
      animation: floaty 4.5s ease-in-out infinite;
    }
    .floating-dot.one { right: 13%; top: 12%; }
    .floating-dot.two { left: 22%; top: 11%; width: 10px; height: 10px; animation-delay: -1.5s; }
    .floating-dot.three { right: 2%; top: 54%; width: 9px; height: 9px; animation-delay: -2.8s; }
    @keyframes floaty { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }

    .summary-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 18px;
      margin: 24px 0;
    }

    .summary-card {
      position: relative;
      overflow: hidden;
      padding: 24px;
      min-height: 150px;
      border: 1px solid var(--color-border);
      border-radius: var(--radius-lg);
      background: rgba(255, 255, 255, 0.88);
      box-shadow: var(--shadow-sm);
      transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    }
    .summary-card::after {
      content: "";
      position: absolute;
      right: -46px;
      bottom: -46px;
      width: 112px;
      height: 112px;
      border-radius: 999px;
      background: rgba(29, 116, 232, 0.08);
    }
    .summary-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: rgba(29, 116, 232, 0.28); }
    .summary-icon {
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      margin-bottom: 16px;
      color: var(--color-primary-2);
      border-radius: 15px;
      background: #eaf3ff;
    }
    .summary-icon.warning { color: var(--color-warning); background: var(--color-warning-bg); }
    .summary-icon.green { color: var(--color-success); background: #eafaf4; }
    .summary-card h3 { margin: 0 0 8px; color: #0d3b88; font-size: 1.08rem; letter-spacing: -0.02em; }
    .summary-card p { margin: 0; color: #314159; font-weight: 800; line-height: 1.55; }
    .summary-card small { display: block; margin-top: 4px; color: var(--color-muted); font-weight: 700; }

    .page-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 380px;
      gap: 24px;
      align-items: start;
      margin-bottom: 28px;
    }
    .card {
      border: 1px solid var(--color-border);
      border-radius: var(--radius-lg);
      background: rgba(255, 255, 255, 0.93);
      box-shadow: var(--shadow-sm);
    }
    .content-card { padding: clamp(24px, 3vw, 36px); }
    .section-title {
      display: flex;
      align-items: center;
      gap: 12px;
      margin: 0 0 22px;
      color: #0d3b88;
      font-size: clamp(1.25rem, 2vw, 1.55rem);
      line-height: 1.25;
      letter-spacing: -0.03em;
    }
    .section-title .title-icon {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      border-radius: 14px;
      color: var(--color-primary-2);
      background: #eaf3ff;
    }

    .notice-list {
      display: grid;
      gap: 14px;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .notice-list li {
      position: relative;
      padding-left: 30px;
      color: #263650;
      font-size: 1.02rem;
      font-weight: 650;
    }
    .notice-list li::before {
      content: "";
      position: absolute;
      left: 3px;
      top: 0.77em;
      width: 8px;
      height: 8px;
      border-radius: 999px;
      background: var(--color-primary-3);
      box-shadow: 0 0 0 5px rgba(29, 116, 232, 0.12);
    }

    .notice-box {
      margin-top: 28px;
      padding: 22px;
      border: 1px solid rgba(242, 140, 40, 0.32);
      border-radius: 22px;
      background:
        radial-gradient(circle at 95% 0%, rgba(242, 140, 40, 0.13), transparent 12rem),
        linear-gradient(180deg, #fffaf2, #fff6e8);
    }
    .notice-box h3 {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 0 0 16px;
      color: #b35d09;
      font-size: 1.18rem;
    }
    .number-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
    .number-list li {
      display: grid;
      grid-template-columns: 28px 1fr;
      gap: 10px;
      align-items: start;
      color: #4b3820;
      font-weight: 750;
    }
    .number-list span {
      width: 28px;
      height: 28px;
      display: grid;
      place-items: center;
      border-radius: 999px;
      color: #fff;
      background: var(--color-warning);
      font-size: 0.86rem;
      line-height: 1;
      box-shadow: 0 8px 18px rgba(242, 140, 40, 0.26);
    }

    .side-column { display: grid; gap: 18px; }
    .side-card { padding: 22px; }
    .timeline {
      position: relative;
      display: grid;
      gap: 20px;
      margin-top: 4px;
      padding-left: 30px;
    }
    .timeline::before {
      content: "";
      position: absolute;
      left: 9px;
      top: 7px;
      bottom: 7px;
      width: 2px;
      background: linear-gradient(180deg, rgba(29, 116, 232, 0.3), rgba(242, 140, 40, 0.4), rgba(29, 116, 232, 0.18));
      border-radius: 999px;
    }
    .timeline-item { position: relative; }
    .timeline-dot {
      position: absolute;
      left: -29px;
      top: 7px;
      width: 20px;
      height: 20px;
      border: 4px solid #fff;
      border-radius: 999px;
      background: #a9b7cc;
      box-shadow: 0 0 0 1px rgba(169, 183, 204, 0.8), 0 8px 14px rgba(10, 48, 112, 0.12);
    }
    .timeline-item.is-active .timeline-dot {
      background: var(--color-warning);
      box-shadow: 0 0 0 1px rgba(242, 140, 40, 0.6), 0 0 0 7px rgba(242, 140, 40, 0.12);
    }
    .timeline-date { color: #0d3b88; font-weight: 950; line-height: 1.35; }
    .timeline-item.is-active .timeline-date { color: #c96808; }
    .timeline-text { margin-top: 3px; color: var(--color-muted); font-size: 0.93rem; font-weight: 700; line-height: 1.55; }

    .contact-list { display: grid; gap: 12px; margin-top: 18px; }
    .contact-row {
      display: flex;
      gap: 10px;
      align-items: flex-start;
      color: #263650;
      font-weight: 800;
    }
    .contact-row svg {
      width: 20px;
      height: 20px;
      flex: 0 0 auto;
      margin-top: 4px;
      color: var(--color-primary-2);
    }
    .mini-muted { margin: 8px 0 0; color: var(--color-muted); font-size: 0.92rem; font-weight: 650; }

    .accordion { display: none; margin: 0 0 26px; }
    .accordion-item {
      border: 1px solid var(--color-border);
      border-radius: 18px;
      background: #fff;
      overflow: hidden;
      box-shadow: var(--shadow-sm);
    }
    .accordion-item + .accordion-item { margin-top: 12px; }
    .accordion-trigger {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 18px;
      color: #0d3b88;
      border: 0;
      background: #fff;
      font-weight: 950;
      text-align: left;
    }
    .accordion-trigger svg { flex: 0 0 auto; transition: transform 0.2s ease; }
    .accordion-trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
    .accordion-panel { display: none; padding: 0 18px 18px; color: #263650; }
    .accordion-panel.is-open { display: block; }

    .site-footer { margin: 0 0 46px; }
    .footer-notice {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      padding: 22px;
      color: #0d3b88;
      font-weight: 950;
      text-align: center;
      border: 1px solid rgba(29, 116, 232, 0.14);
      border-radius: var(--radius-lg);
      background: linear-gradient(135deg, rgba(234, 243, 255, 0.95), rgba(247, 251, 255, 0.96));
      box-shadow: var(--shadow-sm);
    }
    .footer-meta {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 8px 18px;
      margin-top: 18px;
      color: var(--color-muted);
      font-size: 0.92rem;
      font-weight: 750;
      text-align: center;
    }

    .toast {
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 950;
      max-width: min(420px, calc(100vw - 36px));
      padding: 14px 18px;
      color: #fff;
      border-radius: 16px;
      background: rgba(8, 43, 100, 0.94);
      box-shadow: var(--shadow-lg);
      transform: translateY(20px);
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.2s ease, transform 0.2s ease;
      font-weight: 850;
    }
    .toast.is-visible { transform: translateY(0); opacity: 1; }

    .back-to-top {
      position: fixed;
      right: 18px;
      bottom: 84px;
      z-index: 940;
      width: 48px;
      height: 48px;
      display: grid;
      place-items: center;
      color: #fff;
      border: 0;
      border-radius: 16px;
      background: var(--color-primary);
      box-shadow: var(--shadow-md);
      opacity: 0;
      transform: translateY(12px);
      pointer-events: none;
      transition: opacity 0.2s ease, transform 0.2s ease;
    }
    .back-to-top.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }

    @media (max-width: 1040px) {
      .main-nav {
        position: fixed;
        left: 18px;
        right: 18px;
        top: calc(var(--header-height) + 12px);
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
        padding: 14px;
        color: var(--color-text);
        border: 1px solid var(--color-border);
        border-radius: 22px;
        background: rgba(255, 255, 255, 0.96);
        box-shadow: var(--shadow-lg);
      }
      .main-nav.is-open { display: flex; }
      .main-nav a { color: #0d3b88; border-radius: 14px; }
      .main-nav a:hover { color: #0d3b88; background: #eaf3ff; }
      .menu-toggle { display: grid; }
      .hero-content { grid-template-columns: 1fr; }
      .hero-visual { min-height: 250px; order: -1; }
      .maintenance-illustration { width: min(100%, 360px); }
      .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .page-grid { grid-template-columns: 1fr; }
      .side-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    @media (max-width: 720px) {
      :root { --header-height: 68px; }
      .header-inner, .container { width: min(calc(100% - 24px), var(--container)); }
      .brand-mark { width: 38px; height: 38px; }
      .brand-subtitle { display: none; }
      .header-actions .icon-button:not(.menu-toggle) { display: none; }
      .hero { padding: 20px; border-radius: 24px; }
      .hero-content { gap: 10px; }
      .hero-visual { min-height: 188px; }
      .maintenance-illustration { width: min(100%, 260px); }
      .server-stack { border-radius: 18px; }
      .shield { width: 66px; height: 76px; }
      .gear { width: 68px; height: 68px; }
      .gear::before { inset: 18px; }
      .hero-lead { margin-top: 14px; }
      .hero-actions { margin-top: 20px; }
      .btn { width: 100%; }
      .summary-grid { grid-template-columns: 1fr; gap: 12px; margin: 16px 0; }
      .summary-card {
        min-height: auto;
        display: grid;
        grid-template-columns: 44px 1fr;
        gap: 12px 14px;
        align-items: center;
        padding: 18px;
        border-radius: 20px;
      }
      .summary-icon { margin-bottom: 0; }
      .content-card { padding: 20px; }
      .notice-list li { font-size: 0.96rem; }
      .side-column { display: none; }
      .accordion { display: block; }
      .footer-notice { align-items: flex-start; padding: 18px; }
      .footer-meta { display: grid; gap: 8px; }
    }

    @media print {
      .site-header, .hero-actions, .back-to-top, .toast, .scroll-progress { display: none !important; }
      body { background: #fff; }
      .container { width: 100%; }
      .hero, .card, .footer-notice { box-shadow: none; }
      .page-grid { grid-template-columns: 1fr; }
    }
  </style>
</head>
<body>
  <div class="scroll-progress" id="scrollProgress" aria-hidden="true"></div>
  <a class="skip-link" href="#mainContent">跳到公告內容</a>

  <header class="site-header">
    <div class="header-inner">
      <a class="brand" href="https://ascdc.sinica.edu.tw/" aria-label="數位文化中心首頁">
        <span class="brand-mark" aria-hidden="true">
          <svg viewBox="0 0 64 64" fill="none">
            <path d="M32 5 55 18v28L32 59 9 46V18L32 5Z" stroke="currentColor" stroke-width="5" stroke-linejoin="round"/>
            <path d="M22 24 32 18l10 6-10 6-10-6Z" fill="currentColor"/>
            <path d="M22 34 32 40l10-6" stroke="currentColor" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
          </svg>
        </span>
        <span class="brand-text">
          <span class="brand-title">數位文化中心</span>
          <span class="brand-subtitle">Digital Cultures</span>
        </span>
      </a>

      <nav class="main-nav" id="mainNav" aria-label="主要導覽">
        <a href="#overview">公告概要</a>
        <a href="#mainContent">公告內容</a>
        <a href="#timeline">時間時程</a>
        <a href="#contact">ASCDC 聯絡方式</a>
      </nav>

      <div class="header-actions">
        <button class="icon-button" type="button" id="printButton" aria-label="列印公告">
          <svg viewBox="0 0 24 24" width="22" height="22" fill="none" aria-hidden="true">
            <path d="M7 8V4h10v4M7 17H5a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2M7 14h10v6H7v-6Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/>
          </svg>
        </button>
        <button class="icon-button menu-toggle" type="button" id="menuToggle" aria-label="開啟選單" aria-expanded="false" aria-controls="mainNav">
          <svg viewBox="0 0 24 24" width="24" height="24" fill="none" aria-hidden="true">
            <path d="M4 7h16M4 12h16M4 17h16" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/>
          </svg>
        </button>
      </div>
    </div>
  </header>

  <main>
    <div class="container">

      <section class="hero" id="overview" aria-labelledby="pageTitle">
        <div class="hero-content">
          <div>
            <div class="eyebrow-row">
              <span class="badge badge-danger">
                <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
                  <path d="M12 3 22 20H2L12 3Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/>
                  <path d="M12 9v5M12 17h.01" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/>
                </svg>
                重要公告
              </span>
              <span class="badge badge-blue">
                <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
                  <path d="M12 6v6l4 2M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                </svg>
                維護通知
              </span>
              <span class="badge badge-green">預計 6/11 恢復正常</span>
            </div>

            <h1 class="hero-title" id="pageTitle">配合機房空調維護，對外服務暫停公告</h1>
            <p class="hero-lead">
              因配合資訊所假日空調維護作業，數位文化中心所維運之對外服務將暫停，
              包含多媒體中心及相關網站、系統服務。
            </p>

            <div class="hero-actions">
              <a class="btn btn-primary" href="#mainContent">
                <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
                  <path d="M6 9h12M6 13h12M6 17h7M5 3h10l4 4v14H5V3Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                </svg>
                查看公告內容
              </a>
              <button class="btn btn-secondary" type="button" id="copyButton">
                <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
                  <path d="M9 9h10v10H9V9Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/>
                  <path d="M5 15H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
                </svg>
                複製公告連結
              </button>
            </div>
          </div>

          <div class="hero-visual" aria-hidden="true">
            <div class="maintenance-illustration">
              <div class="orb"></div>
              <div class="floating-dot one"></div>
              <div class="floating-dot two"></div>
              <div class="floating-dot three"></div>
              <div class="server-stack"></div>
              <div class="server-small"></div>
              <div class="shield">
                <svg viewBox="0 0 24 24" fill="none"><path d="m6 12 4 4 8-8" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg>
              </div>
              <div class="gear">
                <svg viewBox="0 0 24 24" fill="none">
                  <path d="M12 15.2a3.2 3.2 0 1 0 0-6.4 3.2 3.2 0 0 0 0 6.4Z" stroke="currentColor" stroke-width="2"/>
                  <path d="M19.4 15a8 8 0 0 0 .1-1l2-1.5-2-3.4-2.4 1a8 8 0 0 0-1.7-1L15 6.5h-4L10.6 9a8 8 0 0 0-1.7 1l-2.4-1-2 3.4 2 1.5a8 8 0 0 0 .1 2l-2 1.5 2 3.4 2.4-1a8 8 0 0 0 1.7 1l.4 2.5h4l.4-2.5a8 8 0 0 0 1.7-1l2.4 1 2-3.4-2.2-1.4Z" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round"/>
                </svg>
              </div>
            </div>
          </div>
        </div>
      </section>

      <section class="summary-grid" aria-label="公告重點摘要">
        <article class="summary-card">
          <div class="summary-icon"><svg viewBox="0 0 24 24" width="24" height="24" fill="none" aria-hidden="true"><path d="M7 3v3M17 3v3M4 9h16M5 5h14a1 1 0 0 1 1 1v14H4V6a1 1 0 0 1 1-1Z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg></div>
          <div><h3>影響期間</h3><p>2026/06/05 - 2026/06/10</p></div>
        </article>
        <article class="summary-card">
          <div class="summary-icon"><svg viewBox="0 0 24 24" width="24" height="24" fill="none" aria-hidden="true"><path d="M5 6h14v4H5V6ZM5 14h14v4H5v-4Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><path d="M8 8h.01M8 16h.01M12 8h4M12 16h4" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg></div>
          <div><h3>機房維護</h3><p>2026/06/06 09:00</p><small>至 2026/06/07 17:00</small></div>
        </article>
        <article class="summary-card">
          <div class="summary-icon warning"><svg viewBox="0 0 24 24" width="24" height="24" fill="none" aria-hidden="true"><path d="M12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z" stroke="currentColor" stroke-width="2"/><path d="M9 14 7 22l5-3 5 3-2-8" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/></svg></div>
          <div><h3>優先恢復</h3><p>中心重要對外服務</p></div>
        </article>
        <article class="summary-card">
          <div class="summary-icon green"><svg viewBox="0 0 24 24" width="24" height="24" fill="none" aria-hidden="true"><path d="M12 17v-5M12 8h.01M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg></div>
          <div><h3>恢復說明</h3><p>實際恢復時間</p><small>視主機重啟狀況而定</small></div>
        </article>
      </section>

      <div class="page-grid">
        <section class="card content-card" id="mainContent" aria-labelledby="contentTitle">
          <h2 class="section-title" id="contentTitle">
            <span class="title-icon" aria-hidden="true"><svg viewBox="0 0 24 24" width="24" height="24" fill="none"><path d="M6 3h9l3 3v15H6V3Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><path d="M14 3v4h4M9 11h6M9 15h6M9 19h4" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg></span>
            公告內容
          </h2>

          <ul class="notice-list">
            <li>為配合資訊所新館二樓機房空調年度維護工程，維護期間將暫停機房相關設備與服務，以確保設備運作及作業環境安全。</li>
            <li>數位文化中心將自 2026 年 6 月 5 日起，配合維護時程陸續進行所維運伺服器之關機、檢查及復原準備作業。</li>
            <li>由於本中心維運之系統與主機數量較多，服務復原作業需逐項確認各系統狀態，實際恢復時間將視設備重啟及系統檢查結果而定。</li>
            <li>預計自 2026 年 6 月 8 日起陸續恢復各項服務，並以 2026 年 6 月 10 日前完成主要對外服務復原為目標。</li>
            <li>如維護與復原作業順利，預計 2026 年 6 月 11 日起各項各項服務可望恢復正常。服務恢復後，將另行公告通知。</li>
          </ul>

          <div class="notice-box" aria-labelledby="noticeBoxTitle">
            <h3 id="noticeBoxTitle">
              <svg viewBox="0 0 24 24" width="23" height="23" fill="none" aria-hidden="true"><path d="M12 3 22 20H2L12 3Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><path d="M12 9v5M12 17h.01" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/></svg>
              注意事項
            </h3>
            <ol class="number-list">
              <li><span>1</span><strong>請相關使用者預先安排作業，避免於維護期間進行重要操作。</strong></li>
              <li><span>2</span><strong>中心重要對外服務將列為優先恢復項目。</strong></li>
              <li><span>3</span><strong>服務恢復正常後，將再另行通知。</strong></li>
            </ol>
          </div>
        </section>

        <aside class="side-column" aria-label="時間與聯絡資訊">
          <section class="card side-card" id="timeline" aria-labelledby="timelineTitle">
            <h2 class="section-title" id="timelineTitle">
              <span class="title-icon" aria-hidden="true"><svg viewBox="0 0 24 24" width="23" height="23" fill="none"><path d="M12 7v5l3 2M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg></span>
              時間時程
            </h2>
            <div class="timeline">
              <div class="timeline-item"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/5 起</div><div class="timeline-text">配合進行伺服器關機、檢查與復原準備作業</div></div>
              <div class="timeline-item is-active"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/6 09:00 - 6/7 17:00</div><div class="timeline-text">機房空調維護，對外服務暫停</div></div>
              <div class="timeline-item"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/8 起</div><div class="timeline-text">陸續恢復服務</div></div>
              <div class="timeline-item"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/10 前</div><div class="timeline-text">完成主要對外服務復原</div></div>
              <div class="timeline-item"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/11 起</div><div class="timeline-text">各項服務可望恢復正常</div></div>
            </div>
          </section>

          <section class="card side-card" id="contact" aria-labelledby="contactTitle">
            <h2 class="section-title" id="contactTitle">
              <span class="title-icon" aria-hidden="true"><svg viewBox="0 0 24 24" width="23" height="23" fill="none"><path d="M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM4 21a8 8 0 0 1 16 0" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg></span>
              ASCDC 聯絡方式
            </h2>

            <p class="mini-muted">中央研究院數位文化中心<br>如有疑問，請洽數位文化中心官方聯絡窗口。</p>

            <div class="contact-list">
              <div class="contact-row">
                <svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M22 16.92v3a2 2 0 0 1-2.18 2A19.8 19.8 0 0 1 11.19 19a19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.08 4.18 2 2 0 0 1 4.06 2h3a2 2 0 0 1 2 1.72c.12.91.33 1.8.62 2.64a2 2 0 0 1-.45 2.11L8 9.7a16 16 0 0 0 6.3 6.3l1.23-1.23a2 2 0 0 1 2.11-.45c.84.29 1.73.5 2.64.62A2 2 0 0 1 22 16.92Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
                <a href="tel:+886226521885">電話：02-2652-1885</a>
              </div>
              <div class="contact-row">
                <svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M6 9V3h12v6M6 17H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2M7 14h10v7H7v-7Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/></svg>
                <span>傳真：02-2652-1882</span>
              </div>
              <div class="contact-row">
                <svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M4 5h16v14H4V5Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/><path d="m4 7 8 6 8-6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
                <a href="mailto:ascdc@sinica.edu.tw">電郵：ascdc@sinica.edu.tw</a>
              </div>
              <div class="contact-row">
                <svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M12 22s7-4.8 7-12a7 7 0 1 0-14 0c0 7.2 7 12 7 12Z" stroke="currentColor" stroke-width="2"/><path d="M12 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z" stroke="currentColor" stroke-width="2"/></svg>
                <span>地址：115201 臺北市南港區研究院路二段128號<br>歷史語言研究所研究大樓5樓 數位文化中心</span>
              </div>
            </div>
          </section>
        </aside>
      </div>

      <section class="accordion" aria-label="行動版補充資訊">
        <article class="accordion-item">
          <button class="accordion-trigger" type="button" aria-expanded="false">
            <span>時間時程</span>
            <svg viewBox="0 0 24 24" width="22" height="22" fill="none" aria-hidden="true"><path d="m6 9 6 6 6-6" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg>
          </button>
          <div class="accordion-panel">
            <div class="timeline">
              <div class="timeline-item"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/5 起</div><div class="timeline-text">配合進行伺服器關機、檢查與復原準備作業</div></div>
              <div class="timeline-item is-active"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/6 09:00 - 6/7 17:00</div><div class="timeline-text">機房空調維護，對外服務暫停</div></div>
              <div class="timeline-item"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/8 起</div><div class="timeline-text">陸續恢復服務</div></div>
              <div class="timeline-item"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/10 前</div><div class="timeline-text">完成主要對外服務復原</div></div>
              <div class="timeline-item"><span class="timeline-dot" aria-hidden="true"></span><div class="timeline-date">6/11 起</div><div class="timeline-text">各項服務可望恢復正常</div></div>
            </div>
          </div>
        </article>

        <article class="accordion-item">
          <button class="accordion-trigger" type="button" aria-expanded="false">
            <span>ASCDC 聯絡方式</span>
            <svg viewBox="0 0 24 24" width="22" height="22" fill="none" aria-hidden="true"><path d="m6 9 6 6 6-6" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg>
          </button>
          <div class="accordion-panel">
            <p class="mini-muted">中央研究院數位文化中心<br>如有疑問，請洽數位文化中心官方聯絡窗口。</p>
            <div class="contact-list">
              <div class="contact-row"><a href="tel:+886226521885">電話：02-2652-1885</a></div>
              <div class="contact-row"><span>傳真：02-2652-1882</span></div>
              <div class="contact-row"><a href="mailto:ascdc@sinica.edu.tw">電郵：ascdc@sinica.edu.tw</a></div>
              <div class="contact-row"><span>地址：115201 臺北市南港區研究院路二段128號<br>歷史語言研究所研究大樓5樓 數位文化中心</span></div>
            </div>
          </div>
        </article>
      </section>

      <footer class="site-footer">
        <div class="footer-notice">
          <svg viewBox="0 0 24 24" width="24" height="24" fill="none" aria-hidden="true"><path d="M12 17v-5M12 8h.01M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
          <span>造成不便，敬請見諒，感謝您的配合。</span>
        </div>
        <div class="footer-meta">
          <span>中央研究院數位文化中心</span>
          <span>｜</span>
          <span>歷史語言研究所研究大樓5樓</span>
          <span>｜</span>
          <a href="https://ascdc.sinica.edu.tw/" rel="noopener">ascdc.sinica.edu.tw</a>
        </div>
      </footer>
    </div>
  </main>

  <button class="back-to-top" type="button" id="backToTop" aria-label="回到頁首">
    <svg viewBox="0 0 24 24" width="22" height="22" fill="none" aria-hidden="true"><path d="m6 15 6-6 6 6" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>
  </button>

  <div class="toast" id="toast" role="status" aria-live="polite"></div>

  <script>
    /*
      頁面互動：
      1. 行動版選單開合
      2. 複製目前頁面連結
      3. 捲動進度條與回到頁首
      4. 行動版手風琴資訊區
      5. 列印公告
    */

    const menuToggle = document.querySelector("#menuToggle");
    const mainNav = document.querySelector("#mainNav");
    const copyButton = document.querySelector("#copyButton");
    const printButton = document.querySelector("#printButton");
    const toast = document.querySelector("#toast");
    const scrollProgress = document.querySelector("#scrollProgress");
    const backToTop = document.querySelector("#backToTop");

    function showToast(message) {
      toast.textContent = message;
      toast.classList.add("is-visible");
      window.clearTimeout(showToast.timer);
      showToast.timer = window.setTimeout(() => toast.classList.remove("is-visible"), 2600);
    }

    function closeMobileMenu() {
      mainNav.classList.remove("is-open");
      menuToggle.setAttribute("aria-expanded", "false");
      menuToggle.setAttribute("aria-label", "開啟選單");
    }

    menuToggle.addEventListener("click", () => {
      const isOpen = mainNav.classList.toggle("is-open");
      menuToggle.setAttribute("aria-expanded", String(isOpen));
      menuToggle.setAttribute("aria-label", isOpen ? "關閉選單" : "開啟選單");
    });

    mainNav.addEventListener("click", (event) => {
      if (event.target.matches("a")) closeMobileMenu();
    });

    document.addEventListener("keydown", (event) => {
      if (event.key === "Escape") closeMobileMenu();
    });

    copyButton.addEventListener("click", async () => {
      const url = window.location.href;
      try {
        await navigator.clipboard.writeText(url);
        showToast("公告連結已複製。");
      } catch (error) {
        // 舊瀏覽器或非 HTTPS 環境可能無法使用 clipboard API，改用備援方式
        const input = document.createElement("input");
        input.value = url;
        input.setAttribute("readonly", "");
        input.style.position = "fixed";
        input.style.opacity = "0";
        document.body.appendChild(input);
        input.select();
        document.execCommand("copy");
        document.body.removeChild(input);
        showToast("公告連結已複製。");
      }
    });

    printButton.addEventListener("click", () => window.print());

    function updateScrollState() {
      const scrollTop = window.scrollY || document.documentElement.scrollTop;
      const scrollHeight = document.documentElement.scrollHeight - window.innerHeight;
      const progress = scrollHeight > 0 ? (scrollTop / scrollHeight) * 100 : 0;
      scrollProgress.style.width = `${Math.min(100, Math.max(0, progress))}%`;

      if (scrollTop > 520) {
        backToTop.classList.add("is-visible");
      } else {
        backToTop.classList.remove("is-visible");
      }
    }

    window.addEventListener("scroll", updateScrollState, { passive: true });
    window.addEventListener("resize", updateScrollState);
    updateScrollState();

    backToTop.addEventListener("click", () => window.scrollTo({ top: 0, behavior: "smooth" }));

    document.querySelectorAll(".accordion-trigger").forEach((trigger) => {
      trigger.addEventListener("click", () => {
        const panel = trigger.nextElementSibling;
        const isOpen = trigger.getAttribute("aria-expanded") === "true";
        trigger.setAttribute("aria-expanded", String(!isOpen));
        panel.classList.toggle("is-open", !isOpen);
      });
    });
  </script>
</body>
</html>
