#logoImage{
     display: block;

     /* PC：文字サイズより一段上 */
     height: clamp(100px, 10vw, 140px);

     width: auto;        /* 縦横比維持 */
     margin: 12px auto 6px;
     cursor: pointer;
   }

   /* スマホ：横いっぱい */
   @media (max-width: 768px){
   #logoImage{
    width: 100vw;
    height: auto;
    max-width: 100vw;
    }
   }


    :root {
      --bg: #ffffff;
      --panel: #f8fbfb;
      --panel-2: #f2f8f8;
      --text: #0b1516;
      --muted: #47696b;
      --line: rgba(0, 130, 130, 0.18);
      --accent: #00d9d9;
      --accent-2: #8ffbff;
      --shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      background: url("../../../img/umi.jpg") center/cover no-repeat fixed;
      overflow-x: hidden;
      font-family: serif;
      line-height: 1.7;
      -webkit-font-smoothing: antialiased;
    }

    a { color: var(--accent-2); }

    .shell {
      width: min(1440px, calc(100% - 20px));
      margin: 0 auto;
      padding: 18px 0 72px;
    }

    header {
      padding: 24px 6px 18px;
    }

    .title {
      margin: 0;
      font-size: clamp(28px, 5.6vw, 62px);
      letter-spacing: 0.08em;
      color: var(--accent);
      line-height: 1;
      text-align: center;

    }

    .map-panel {
      position: relative;
      top: auto;
      z-index: 1;
      backdrop-filter: blur(10px);
      background: rgba(255, 255, 255, 0.9);
      padding: 10px 0 14px;
      margin-bottom: 18px;
    }

    .map-wrap {
      border: 1px solid var(--line);
      border-radius: 22px;
      overflow: hidden;
      background: linear-gradient(180deg, rgba(0,217,217,0.06), rgba(255,255,255,0.01));
      box-shadow: var(--shadow);
    }

    .map-inner {
      position: relative;
      aspect-ratio: 16 / 8.3;
      background: #ffffff;
    }

    .map-inner img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      opacity: 0.92;
      filter: saturate(0.35) hue-rotate(130deg) brightness(1.05) contrast(0.95);
      pointer-events: none;
    }

    .map-hit {
      position: absolute;
      display: flex;
      align-items: center;
      justify-content: center;
      text-decoration: none;
      color: var(--text);
      padding: 8px 10px;
      border-radius: 14px;
      border: 1px solid rgba(143, 251, 255, 0.18);
      background: rgba(0, 217, 217, 0.06);
      backdrop-filter: blur(4px);
      transition: 0.2s ease;
      box-shadow: 0 8px 24px rgba(0,0,0,0.14);
      text-align: center;
    }

    .map-hit:hover,
    .map-hit:focus {
      background: rgba(0, 217, 217, 0.11);
      border-color: rgba(143, 251, 255, 0.42);
      transform: translateY(-1px);
    }

    .map-hit strong {
      font-size: clamp(10px, 1.4vw, 14px);
      line-height: 1.2;
    }

    .map-hit span {
      display: none;
    }

    .quick-nav {
      display: none;
    }

    .quick-nav a {
      display: none;
    }

    .quick-nav a:hover { background: rgba(0,217,217,0.12); }

    .region {
      margin-top: 22px;
      border: 1px solid var(--line);
      border-radius: 22px;
      overflow: hidden;
      background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.015));
      box-shadow: var(--shadow);
    }

    .region-head {
      padding: 18px 16px 14px;
      border-bottom: 1px solid var(--line);
      background: rgba(0, 217, 217, 0.05);
    }

    .region-head h2 {
      margin: 0;
      font-size: clamp(22px, 4vw, 38px);
      color: var(--accent);
      line-height: 1.15;
    }

    .region-head p {
      margin: 8px 0 0;
      color: var(--muted);
      font-size: clamp(12px, 2.7vw, 15px);
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      padding: 14px;
    }

    .card {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: var(--panel);
      overflow: hidden;
      min-width: 0;
    }

    .card-body {
      padding: 14px;
    }

    .card h3 {
      margin: 0 0 6px;
      font-size: clamp(17px, 3.3vw, 24px);
      line-height: 1.2;
    }

    .desc {
      margin: 0;
      color: var(--text);
      font-size: clamp(13px, 2.8vw, 14px);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      line-height: 1.4;
    }

    .label {
      color: #000;
      font-size: 12px;
      margin-top: 8px;
      line-height: 1.45;
      word-break: break-word;
    }

    .video-shell {
      position: relative;
      width: 100%;
      aspect-ratio: 16 / 9;
      background: #000;
      border-top: 1px solid var(--line);
      display: block;
      overflow: hidden;
    }

    .video-launch {
      position: absolute;
      inset: 0;
      border: 0;
      padding: 0;
      margin: 0;
      width: 100%;
      height: 100%;
      background: transparent;
      cursor: pointer;
      display: block;
    }

    .video-shell img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      opacity: 0.84;
    }

    .video-launch::after {
      content: "▶";
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      color: white;
      font-size: 42px;
      text-shadow: 0 4px 20px rgba(0,0,0,0.9);
      pointer-events: none;
    }

    .video-shell iframe {
      width: 100%;
      height: 100%;
      border: 0;
      display: block;
      position: absolute;
      inset: 0;
      z-index: 2;
    }

    .to-top {
      position: fixed;
      right: 16px;
      bottom: 16px;
      z-index: 9999;
      width: 46px;
      height: 46px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: rgba(255,255,255,0.92);
      color: #000;
      text-decoration: none;
      display: grid;
      place-items: center;
      font-size: 26px;
      line-height: 1;
      box-shadow: var(--shadow);
      backdrop-filter: blur(6px);
    }

    .to-top:hover {
      background: rgba(0,217,217,0.12);
    }


    @media (max-width: 960px) {
      .grid { grid-template-columns: 1fr; }
      .map-panel { position: relative; top: auto; }
    }

    @media (max-width: 640px) {
      .shell { width: min(100% - 12px, 1440px); }
      .map-hit {
        padding: 4px 5px;
        border-radius: 7px;
      }
      .map-hit strong {
        font-size: 6px;
        line-height: 1.15;
      }
      .region-head { padding: 14px 12px 12px; }
      .grid { padding: 10px; gap: 10px; }
      .card-body { padding: 12px; }
      .to-top {
        right: 12px;
        bottom: 12px;
        width: 42px;
        height: 42px;
        font-size: 24px;
      }
    }

    footer {
      padding: 30px 8px 8px;
      color:#00d9d9;
      font-size: 22px;
      text-align: center;
    }

    #uiFooter {
     position: fixed;
     left: 50%;
     bottom: 18px;
     transform: translateX(-50%);
     z-index: 10;
     transition: opacity 220ms ease, transform 220ms ease;
     color:#00d9d9;
     text-align: center;
     font-family: serif;
     line-height: 100%;
     font-size: 20px;
     background: transparent !important;
     border: none !important;
     box-shadow: none !important;
    }

    #uiFooter a {
     color: #00d9d9;
     text-decoration: none;
   }
    
  
    /* DAZED OBSERVATION：フレームの配色 */
    :root {
      --frame-cyan: #92fdff;
      --frame-line: rgba(146,253,255,.46);
      --frame-line-soft: rgba(146,253,255,.22);
      --frame-text-soft: rgba(146,253,255,.78);
      --frame-dark: rgba(0,0,0,.72);
    }

    .map-wrap,
    .region {
      border-color: var(--frame-line);
      background:
        linear-gradient(180deg, rgba(146,253,255,.025), rgba(0,0,0,.12)),
        rgba(0,0,0,.88);
      box-shadow: inset 0 0 20px rgba(0,0,0,.24);
      color: var(--frame-cyan);
    }

    .region-head {
      border-bottom-color: var(--frame-line-soft);
      background: rgba(0,0,0,.46);
    }

    .region-head h2,
    .card h3,
    .desc {
      color: var(--frame-cyan);
    }

    .region-head p,
    .label {
      color: var(--frame-text-soft);
    }

    .card {
      border-color: var(--frame-line-soft);
      background:
        linear-gradient(180deg, rgba(146,253,255,.025), rgba(0,0,0,.12)),
        rgba(0,0,0,.48);
      color: var(--frame-cyan);
      box-shadow: inset 0 0 20px rgba(0,0,0,.24);
    }

    .video-shell {
      border-top-color: var(--frame-line-soft);
    }

    .map-hit,
    .to-top {
      border-color: var(--frame-line);
      background: var(--frame-dark);
      color: var(--frame-cyan);
      box-shadow: inset 0 0 0 1px rgba(146,253,255,.02);
    }

    .map-hit:hover,
    .map-hit:focus,
    .to-top:hover {
      border-color: var(--frame-cyan);
      background: rgba(0,0,0,.88);
      color: var(--frame-cyan);
      box-shadow: 0 0 10px rgba(146,253,255,.16);
    }

    .map-hit:focus-visible,
    .to-top:focus-visible,
    .video-launch:focus-visible {
      outline: 2px solid var(--frame-cyan);
      outline-offset: -3px;
    }

    .map-panel {
  background: transparent;
  backdrop-filter: none;
}
