/* 自動生成（scratchpad/mobile-lock.py）。手で編集しない。
   スマホ用の指定を常時適用にして、PC でもスマホの形で見せるためのもの。
   元ファイルを変えたら作り直す。 */


/* --- styles.css の @media(max-width:820px) を常時適用 --- */
.topbar{height:62px;padding:0 16px}.topbar nav{display:none}.brand span{font-size:18px}.top-ticket{display:none}.hero{min-height:auto;padding:62px 0 0;display:block}.hero-world,.hero-facts{display:none}.hero-window{width:100%;height:55svh;min-height:430px;box-shadow:none}.hero-window>p{display:none}.lanterns{top:15px}.lanterns span{width:46px;height:64px}.hero-copy{padding:55px 20px 100px}.hero h1{font-size:clamp(38px,11vw,49px);line-height:1.35}.hero-lead{font-size:15px}.hero-decisions{grid-template-columns:1fr}.ticket{min-height:112px}.paradox{grid-template-columns:repeat(3,1fr)}.paradox>div{padding:24px 12px}.paradox strong{font-size:40px}.paradox span{font-size:7px}.paradox p{grid-column:1/-1;padding:28px 20px}.world-story{height:75svh;min-height:600px}.world-story>img{object-position:58% center}.world-copy{justify-content:flex-end;padding:70px 20px}.world-copy h2{font-size:clamp(34px,10vw,45px)}.world-copy>div{font-size:14px}.route-line{display:none}.night,.menu,.stand-gallery{padding:90px 20px}.chapter-head{display:block;margin-bottom:65px}.chapter-head h2,.anatomy-title h2,.menu .chapter-head h2,.pass-copy h2,.owner-copy h2,.visit-copy h2,.faq h2{margin:20px 0;font-size:clamp(39px,12vw,52px)}.chapter-head>span{font-size:13px}.films{gap:110px}.film,.film:nth-child(even){display:grid;grid-template-columns:1fr}.film-time{grid-row:auto}.film:nth-child(even) figure,.film:nth-child(even) .film-copy{grid-column:auto;grid-row:auto}.film figure{padding:9px}.film video{height:auto;max-height:74svh}.film-copy h3{font-size:40px}.bowl-anatomy{padding:90px 20px;grid-template-columns:1fr}.bowl-anatomy figure{order:-1}.bowl-anatomy figure img{max-width:330px;margin:auto}.menu-film{padding:9px}.menu-film video{height:auto;max-height:74svh}.menu-sheet li{grid-template-columns:42px 1fr;gap:8px;padding:24px 0}.menu-sheet h3{font-size:23px}.menu-sheet p{grid-column:2;font-size:14px}.monday,.fastpass,.owner,.visit,.faq{grid-template-columns:1fr}.monday figure img{min-height:0;height:58svh}.monday>div,.pass-copy,.owner-copy,.visit-copy{padding:90px 20px}.fastpass{padding:90px 20px}.big-pass{min-height:480px;padding:28px}.big-pass b{font-size:110px}.owner-film{padding:20px}.owner-film video{height:auto;max-height:75svh}.stand-gallery>div{grid-template-columns:1fr 1fr}.stand-gallery img{height:300px}.stand-gallery img:first-child{grid-column:1/-1}.visit iframe{min-height:480px}.faq{padding:90px 20px}.faq header{margin-bottom:30px}.closing h2{font-size:50px}footer{display:block;padding:60px 20px 110px}footer p{margin:30px 0}.mobile-bar{width:100%;bottom:0}.mobile-bar a{padding:12px 7px}.language span{display:none}

/* --- mobile.css の @media(max-width:820px) を常時適用 --- */
html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  main,
  main > section,
  main > section > *,
  .hero-copy,
  .chapter-head,
  .film-copy,
  .owner-film,
  .owner-copy,
  .visit-copy {
    min-width: 0;
    max-width: 100%;
  }

  /* Keep the complete vertical film visible instead of zooming it to fill. */
  .hero {
    display: flex;
    flex-direction: column;
  }

  .hero-copy { display: contents; }

  .hero-intro {
    order: 1;
    padding: 55px 20px 42px;
  }

  .hero-window {
    order: 2;
    width: 100%;
    height: 64svh;
    min-height: 500px;
    background: #080503;
  }

  .hero-decisions {
    order: 3;
    margin: 0;
    padding: 24px 20px 100px;
  }

  .hero-window video {
    object-fit: contain;
    object-position: center;
  }

  .origin-stamp b { font-size: 28px; }

  /* The world map previously remained 780px wide on a 390px viewport. */
  .map-stage {
    width: 100%;
    max-width: 100%;
    margin: 55px auto 0;
    transform: none;
  }

  .map-stage > img,
  .map-stage > svg,
  .map-labels { max-width: 100%; }

  /* Show the full portrait bowl photograph at its native 9:16 ratio. */
  .bowl-anatomy {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }

  .bowl-anatomy figure {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 9 / 16;
  }

  .bowl-anatomy figure img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }

  .bowl-anatomy .anatomy-title,
  .bowl-anatomy ol { width: auto; min-width: 0; }
  .bowl-anatomy .anatomy-title h2 { font-size: clamp(34px, 10vw, 40px); }

  /* Override the desktop minmax columns that survived into mobile. */
  .monday {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .monday figure,
  .monday > div { width: 100%; min-width: 0; }

  .owner,
  .visit,
  .faq { grid-template-columns: minmax(0, 1fr); }

  .owner-film,
  .owner-copy,
  .visit-copy,
  .visit iframe { width: 100%; max-width: 100%; }

  .owner-copy blockquote {
    max-width: 100%;
    font-size: clamp(28px, 8.5vw, 36px);
    line-height: 1.6;
    word-break: keep-all;
    overflow-wrap: normal;
    text-wrap: balance;
  }

  .visit-copy h2 { font-size: clamp(34px, 10vw, 40px); }

  .field-notes > div,
  .editorial-recap > div { grid-template-columns: minmax(0, 1fr); }

  .field-notes article,
  .editorial-recap article { width: 100%; min-width: 0; }

  .film-copy h3,
  .menu-sheet h3,
  .field-notes article h3,
  .editorial-recap article h3,
  .owner-copy blockquote:not(:lang(ja)) {
    word-break: normal;
    overflow-wrap: anywhere;
  }

  .mobile-bar { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
  .mobile-bar { padding-bottom: env(safe-area-inset-bottom); background: var(--red); }
  .mobile-bar a { min-width: 0; }
  footer { padding-bottom: calc(110px + env(safe-area-inset-bottom)); }

  html:not([lang="ja"]) .pass-copy h2,
  html:not([lang="ja"]) .faq h2 {
    font-size: clamp(31px, 10vw, 39px);
    word-break: normal;
    overflow-wrap: anywhere;
  }

/* --- information.css の @media(max-width:820px) を常時適用 --- */
.hero { display: flex; flex-direction: column; }
  .hero-window { order: 1; }
  .hero-copy { order: 2; }
  .origin-stamp { margin-bottom: 38px; }
  .origin-stamp span { font-size: 13px; }
  .origin-stamp b { font-size: clamp(26px,7vw,32px); }
  .monday { gap: 30px; padding: 52px 20px 90px; }
  .monday figure { width: min(100%,430px); margin: 0 auto; padding: 9px; }
  .monday figure img { height: min(52svh,480px); object-fit: contain; }
  .monday > div { padding: 0; }
  .bowl-anatomy { min-height: 0; grid-template-columns: 1fr !important; grid-template-rows: auto auto auto; }
  .bowl-anatomy figure { grid-column: 1; grid-row: 1; min-height: 0; height: 70svh; }
  .bowl-anatomy .anatomy-title { grid-column: 1; grid-row: 2; padding: 75px 20px 35px; }
  .bowl-anatomy .anatomy-title h2 { font-size: 42px; }
  .bowl-anatomy ol { grid-column: 1; grid-row: 3; margin: 0 20px 80px !important; }
  .gathering-map { padding: 90px 20px 70px; }
  .gathering-map > header { display: block; }
  .gathering-map h2 { margin: 20px 0; font-size: 43px; }
  .map-stage { width: min(780px,100%); max-width: 100%; margin: 70px auto 0; transform: none; }
  .map-labels span { display: none; }
  .gathering-map > footer { grid-template-columns: 1fr 1fr; }
  .gathering-map > footer span { border-bottom: 1px solid var(--line); }
  .gathering-map > footer span:last-child { grid-column: 1 / -1; }
  .world-data,.field-notes { padding: 90px 20px; }
  .world-data header,.field-notes header { display: block; }
  .world-data h2,.field-notes h2 { margin: 20px 0; font-size: 38px; }
  .world-data ol { grid-template-columns: 1fr 1fr; }
  .world-data li { min-height: 190px; }
  .world-data li:last-child { grid-column: 1 / -1; }
  .pass-prices { grid-template-columns: 1fr; }
  .field-notes > div { grid-template-columns: 1fr; margin-top: 50px; }
  .field-notes article { min-height: 0; padding: 30px 24px; }
  .editorial-recap { padding: 90px 20px; }
  .editorial-recap header { display: block; }
  .editorial-recap h2 { margin-top: 20px; font-size: 41px; }
  .editorial-recap > div { grid-template-columns: 1fr; margin-top: 50px; }
  .editorial-recap article { padding: 32px 24px; }
  .recap-note { margin-top: 45px; font-size: 15px; }

/* --- reviews.css の @media(max-width:820px) を常時適用 --- */
.counter-voices {
    padding: 90px 20px calc(100px + env(safe-area-inset-bottom));
    background:
      linear-gradient(90deg, transparent 0 17px, rgba(237, 67, 40, .72) 17px 20px, transparent 20px),
      radial-gradient(circle at 90% 7%, rgba(215, 53, 32, .17), transparent 24%),
      #0d0806;
  }
  .counter-voices::before { top: -18px; right: -22px; font-size: 78vw; }
  .voices-intro { display: block; padding-left: 17px; }
  .voices-intro h2 { margin: 23px 0; font-size: clamp(25px, 8.3vw, 36px); line-height: 1.65; letter-spacing: 0; }
  .voices-intro > div { font-size: 14px; }
  .voices-status { margin-top: 70px; }
  .voices-list { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .voice-card,
  .voice-card:nth-child(2) { min-height: 330px; transform: none; }
  .voice-card { padding: 24px; }
  .voice-card blockquote { font-size: clamp(24px, 7.2vw, 30px); line-height: 1.8; }
  .voices-disclaimer { margin-top: 45px; padding-left: 17px; }

/* --- v2.css の @media(max-width:820px) を常時適用 --- */
.takehome{padding:90px 20px}
  .takehome .chapter-head h2{margin:20px 0;font-size:clamp(39px,12vw,52px)}
  .takehome .chapter-head>span{font-size:13px}
  .takehome-list li{grid-template-columns:42px 1fr;grid-template-rows:auto auto auto;gap:8px;padding:24px 0}
  .takehome-flag{grid-column:2;grid-row:1;margin-bottom:4px;padding:4px 7px;font-size:8px;letter-spacing:.1em}
  .takehome-list h3{grid-column:2;grid-row:2;font-size:23px}
  .takehome-list p{grid-column:2;grid-row:3;font-size:14px}
  .takehome-foot{margin-top:38px}
  .takehome-foot a{width:100%;text-align:center}

/* --- v2.css の @media(max-width:820px) を常時適用 --- */
.takehome-go{grid-column:2;grid-row:4;margin-top:12px;font-size:10px;padding:10px 14px}
