    .entry-hero {
      position:relative; z-index:2; width:100%;
      aspect-ratio:12/5;
      max-height:900px;
      margin-top:0;
      display:grid; grid-template-columns:1fr 1fr 1fr; gap:0;
      background:#fff; overflow:hidden;
    }
    .entry-hero__card {
      position:relative; overflow:hidden; display:block;
      background:#f0f0f0;
    }
    .entry-hero__card img {
      width:100%; height:100%; object-fit:cover;
      transition:transform 1s ease;
    }
    .entry-hero__card:hover img { transform:scale(1.04); }
    .entry-hero__card::after {
      content:""; position:absolute; inset:0;
      background:rgba(0,0,0,0); transition:background 0.3s;
      pointer-events:none;
    }
    .entry-hero__card:hover::after { background:rgba(0,0,0,0.08); }
    .entry-hero__card + .entry-hero__card { border-left:1px solid #fff; }


    /* ===== ヒーロー3枚 HTMLレイヤー×要素飛来（読み込み時1回・以後は既存同等ホバー） ===== */
    .entry-hero--anime .entry-hero__card {
      container-type: size;
      overflow: hidden;
      text-decoration: none;
    }
    /* 焼き込み画像のobject-fit:coverと同じ挙動をする固定比率ステージ */
    .hcard__stage {
      position: absolute; left: 50%; top: 50%;
      transform: translate(-50%, -50%);
      width: max(100cqw, 80.44cqh);
      aspect-ratio: 1649 / 2050;
      container-type: inline-size;
      display: block;
    }
    .hcard--junior { background: #B83142; }
    .hcard--elem   { background: #EFB77F; }
    .hcard--hana   { background: #E4BBB5; }
    .hcard__zoom {
      position: absolute; inset: 0; display: block;
      transition: transform 1s ease;
      will-change: transform;
    }
    .entry-hero--anime .entry-hero__card:hover .hcard__zoom { transform: scale(1.04); }
    .entry-hero--anime .entry-hero__card:hover img { transform: none; }

    .hcard__label {
      position: absolute; top: 3.2%; left: 0; width: 100%;
      text-align: center; color: #fff;
      font-family: 'Jost', sans-serif; font-weight: 600;
      font-size: 3.5cqw; letter-spacing: .74em; text-indent: .74em;
      white-space: nowrap; z-index: 2;
    }
    .hcard__ethos {
      position: absolute; top: 6.0%; left: 0; width: 100%;
      text-align: center; color: #fff;
      font-family: 'Jost', sans-serif; font-weight: 600;
      font-size: 19.4cqw; line-height: 1.05;
      letter-spacing: .26em; text-indent: .26em;
      white-space: nowrap; z-index: 2;
    }
    .entry-hero--anime .hcard__photo,
    .entry-hero--anime .hcard__logo {
      position: absolute; width: auto; height: auto; object-fit: unset;
      transition: none;
    }
    .entry-hero--anime .hcard__photo { z-index: 3; }
    .hcard--junior .hcard__photo { width: 64.3%; top: 8.0%; left: 29.4%; }
    .hcard--elem   .hcard__photo { width: 78.2%; top: 15.6%; left: 26.7%; }
    .hcard--hana   .hcard__photo { width: 90%; bottom: -0.5%; left: 1.3%; }
    .hcard__circle {
      position: absolute; left: 7%; top: 36.8%;
      width: 18.4cqw; height: 18.4cqw;
      background: #fff; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-family: 'Noto Sans JP', sans-serif;
      font-weight: 900; font-size: 4.0cqw; letter-spacing: .02em;
      white-space: nowrap;
      z-index: 4;
    }
    .hcard__circle::before {
      content: ""; position: absolute; inset: 7%;
      border-radius: 50%; border: .16cqw solid currentColor;
    }
    .hcard--junior .hcard__circle { color: #B83142; }
    .hcard--elem   .hcard__circle { color: #EFB77F; }
    .hcard--hana   .hcard__circle { color: #E4BBB5; }
    .hcard__arc {
      position: absolute; left: 2%; top: 69.4%; width: 96%; height: auto;
      z-index: 4; overflow: visible;
    }
    .hcard__arc text {
      font-family: 'Jost', sans-serif; font-weight: 600;
      font-size: 95px; letter-spacing: 36px;
    }
    .hcard__arc-sh { fill: rgba(107, 44, 54, .38); transform: translate(9px, 12px); }
    .hcard__arc-tx { fill: #fff; }
    .hcard__copy {
      position: absolute; left: 0; width: 100%; text-align: center;
      color: #fff; font-family: 'Noto Sans JP', sans-serif; font-weight: 900;
      white-space: nowrap; z-index: 4;
    }
    .hcard__latin { font-family: 'Jost', sans-serif; font-weight: 700; }
    .hcard__copy--j1 { top: 77.4%; font-size: 6.9cqw; letter-spacing: .04em; text-shadow: .32cqw .38cqw 0 #8F2637; }
    .hcard__copy--j2 { top: 85.8%; font-size: 9.6cqw; letter-spacing: .02em; text-shadow: .32cqw .38cqw 0 #8F2637; }
    .hcard__rule {
      position: absolute; left: 5.8%; width: 88.2%; height: 2px;
      background: rgba(255, 255, 255, .95); z-index: 4;
    }
    .hcard__rule--top { top: 54.6%; }
    .hcard__rule--bottom { top: 76.2%; }
    .hcard__copy--e1 { top: 55.8%; font-size: 7.1cqw; letter-spacing: .05em; text-align: left; padding-left: 6.1%; text-shadow: .32cqw .38cqw 0 #D08034; }
    .hcard__copy--e2 { top: 63.2%; font-size: 7.9cqw; letter-spacing: .02em; text-align: left; padding-left: 12.4%; text-shadow: .32cqw .38cqw 0 #D08034; }
    .hcard__latin--no1 { font-size: 11.0cqw; font-weight: 700; vertical-align: -0.6cqw; margin-right: .5cqw; }
    .hcard--hana .hcard__logo {
      position: absolute; top: 4.5%; left: 4%; width: 92%; height: auto;
      filter: invert(1);
      z-index: 2;
    }
    .hcard__petal {
      position: absolute;
      z-index: 4;
      width: var(--petal-w, 3cqw);
      height: calc(var(--petal-w, 3cqw) * .7);
      border-radius: 90% 8% 90% 36%;
      background: var(--petal-color, #DD5D83);
      opacity: var(--petal-opacity, .82);
      transform: rotate(var(--petal-rotate, 18deg));
      pointer-events: none;
    }
    .hcard__petal--p1  { top: 24.5%; left: 10%;  --petal-w: 3.3cqw; --petal-rotate: -28deg; --petal-color: #fff; --petal-delay: .02s; }
    .hcard__petal--p2  { top: 27.5%; left: 32%;  --petal-w: 2.1cqw; --petal-rotate: 22deg;  --petal-delay: .18s; }
    .hcard__petal--p3  { top: 29.5%; right: 7%; --petal-w: 4.2cqw; --petal-rotate: 38deg;  --petal-color: #fff; --petal-delay: .34s; }
    .hcard__petal--p4  { top: 38%; left: 3%;    --petal-w: 3cqw;   --petal-rotate: 18deg;  --petal-delay: .08s; }
    .hcard__petal--p5  { top: 42%; right: 3%;   --petal-w: 2.4cqw; --petal-rotate: -31deg; --petal-delay: .28s; }
    .hcard__petal--p6  { top: 49%; left: 13%;   --petal-w: 2cqw;   --petal-rotate: 48deg;  --petal-color: #fff; --petal-delay: .12s; }
    .hcard__petal--p7  { top: 55%; left: 40%;   --petal-w: 2.6cqw; --petal-rotate: -18deg; --petal-delay: .38s; }
    .hcard__petal--p8  { top: 59%; right: 5%;   --petal-w: 3cqw;   --petal-rotate: 34deg;  --petal-color: #fff; --petal-delay: .22s; }
    .hcard__petal--p9  { top: 67%; left: 4%;    --petal-w: 2.4cqw; --petal-rotate: -24deg; --petal-delay: .44s; }
    .hcard__petal--p10 { top: 69%; right: 4%;   --petal-w: 2.2cqw; --petal-rotate: 46deg;  --petal-delay: .16s; }
    .hcard__enjoy {
      position: absolute; top: 75.8%; left: 0; width: 100%;
      text-align: center; color: #fff; line-height: 1;
      font-family: 'Jost', sans-serif; font-weight: 800;
      font-size: 8.0cqw; letter-spacing: .10em;
      text-shadow: .55cqw .65cqw 0 #DD5D83;
      white-space: nowrap; z-index: 4;
    }
    .hcard__eflower {
      width: 3.2cqw; height: 3.2cqw; overflow: visible;
      fill: #fff; filter: drop-shadow(.5cqw .6cqw 0 #DD5D83);
      vertical-align: 1.2cqw; margin-right: 1.8cqw;
    }
    .hcard__eflower--r { margin-right: 0; margin-left: 1.8cqw; vertical-align: -0.6cqw; }
    .hcard__praise {
      position: absolute; right: 5%; top: 82.8%;
      text-align: right;
      color: #fff; font-family: 'Noto Sans JP', sans-serif; font-weight: 900;
      line-height: 1.18; white-space: nowrap; z-index: 4;
    }
    .hcard__praise-top {
      display: block;
      font-size: 6.1cqw; letter-spacing: .09em;
      text-shadow: .5cqw .6cqw 0 #DD5D83;
    }
    .hcard__praise-main {
      display: block; position: relative; margin-top: 1.1cqw;
      font-size: 8.6cqw; letter-spacing: .05em;
      text-shadow: .5cqw .6cqw 0 #DD5D83;
    }
    .hcard__pflower {
      position: absolute; overflow: visible;
      fill: #fff; filter: drop-shadow(.5cqw .6cqw 0 #DD5D83);
      pointer-events: none;
    }
    .hcard__pflower--l { width: 4.4cqw; height: 4.4cqw; top: -2.4cqw; left: -6.4cqw; transform: rotate(-8deg); }
    .hcard__pflower--r { width: 3.3cqw; height: 3.3cqw; right: -4.8cqw; bottom: -1.4cqw; transform: rotate(7deg); }

    /* ---- 飛来アニメーション（要素ごと・パネル時間差） ---- */
    @media (prefers-reduced-motion: no-preference) {
      .hcard--junior { --pd: 0s; }
      .hcard--elem   { --pd: .18s; }
      .hcard--hana   { --pd: .36s; }
      .hcard__label  { animation: ha-label .9s  cubic-bezier(.2,.76,.2,1) calc(var(--pd) + .05s) both; }
      .hcard__ethos,
      .hcard__logo   { animation: ha-big 1.15s  cubic-bezier(.2,.76,.2,1) calc(var(--pd) + .14s) both; }
      .entry-hero--anime .hcard__photo { animation: ha-photo 1.3s cubic-bezier(.16,.82,.22,1) calc(var(--pd) + .24s) both; }
      .hcard__circle { animation: ha-circle .95s cubic-bezier(.2,.76,.2,1) calc(var(--pd) + .5s) both; }
      .hcard__arc,
      .hcard__rule--top,
      .hcard__copy--j1,
      .hcard__copy--e1 { animation: ha-left 1.05s cubic-bezier(.2,.76,.2,1) calc(var(--pd) + .44s) both; }
      .hcard__rule--bottom,
      .hcard__copy--j2,
      .hcard__copy--e2,
      .hcard__enjoy  { animation: ha-right 1.05s cubic-bezier(.2,.76,.2,1) calc(var(--pd) + .56s) both; }
      .hcard__praise { animation: ha-right 1s cubic-bezier(.2,.76,.2,1) calc(var(--pd) + .56s) both; }
      .hcard__petal  {
        animation:
          ha-petal-settle 1.6s cubic-bezier(.16,.8,.2,1) calc(var(--pd) + .72s + var(--petal-delay, 0s)) both,
          ha-petal-drift 7.2s ease-in-out calc(var(--pd) + 2.32s + var(--petal-delay, 0s)) infinite alternate;
      }
      @keyframes ha-label  { from { opacity: 0; transform: translateY(-22px); } }
      @keyframes ha-big    { from { opacity: 0; transform: translateY(-34px) scale(.985); } }
      @keyframes ha-photo  { from { opacity: 0; transform: translateY(6.5%); } }
      @keyframes ha-circle { 0% { opacity: 0; transform: scale(.55); } 70% { opacity: 1; transform: scale(1.06); } 100% { opacity: 1; transform: scale(1); } }
      @keyframes ha-left   { from { opacity: 0; transform: translateX(-46px); } }
      @keyframes ha-right  { from { opacity: 0; transform: translateX(46px); } }
      @keyframes ha-petal-settle {
        from {
          opacity: 0;
          transform: translate3d(-2.2cqw, -4.4cqw, 0) rotate(calc(var(--petal-rotate, 18deg) - 100deg));
        }
        to {
          opacity: var(--petal-opacity, .82);
          transform: translate3d(0, 0, 0) rotate(var(--petal-rotate, 18deg));
        }
      }
      @keyframes ha-petal-drift {
        from {
          opacity: var(--petal-opacity, .82);
          transform: translate3d(0, 0, 0) rotate(var(--petal-rotate, 18deg));
        }
        to {
          opacity: calc(var(--petal-opacity, .82) * .7);
          transform: translate3d(1cqw, 1.8cqw, 0) rotate(calc(var(--petal-rotate, 18deg) + 34deg));
        }
      }
    }
  
/* LLMO情報ページの入口。3枚の構成・画像・アニメーションはトップページに合わせる。 */
.entry-hero { line-height:1.6; }
.entry-hero, .entry-hero * { box-sizing:border-box; }
.entry-hero__card img { display:block; max-width:100%; }
.entry-hero__card:focus-visible { outline:4px solid #211d1e; outline-offset:-4px; }
@media (max-width:1024px) {
  .entry-hero { grid-template-columns:1fr; height:auto; max-height:none; aspect-ratio:auto; }
  .entry-hero__card { aspect-ratio:4/5; }
  .entry-hero__card + .entry-hero__card { border-left:none; border-top:1px solid #fff; }
}

.llmo-intro { background:#fff; border-bottom:1px solid #f0e4de; }
.llmo-intro__inner { width:min(820px,100%); box-sizing:border-box; margin:0 auto; padding:26px 24px; }
.llmo-intro__text { margin:0 0 18px; color:#514642; font-size:15px; line-height:1.9; }
.llmo-intro__actions { display:flex; flex-wrap:wrap; }
.llmo-intro__btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 24px; border-radius:999px; background:#E85B81; color:#fff; text-decoration:none; font-size:15px; font-weight:700; line-height:1.6; box-shadow:0 10px 20px rgba(232,91,129,.18); }
.llmo-intro__btn:hover { background:#d94c73; }
.llmo-intro__btn:focus-visible { outline:3px solid #211d1e; outline-offset:4px; }

/* The original invitation stays below the course images. Only its link floats. */
body[data-llmo-home-page] .entry-hero { margin-top:68px; }
.llmo-intro__actions { min-height:48px; }
.llmo-intro__btn.is-floating {
  position:fixed; z-index:80;
  right:calc(24px + env(safe-area-inset-right));
  bottom:calc(20px + env(safe-area-inset-bottom));
  max-width:calc(100vw - 48px - env(safe-area-inset-left) - env(safe-area-inset-right));
  border:4px solid #fff; padding:8px 24px;
  box-shadow:0 8px 28px rgba(65,39,48,.2);
  animation:llmo-float-in .22s ease-out;
}
@keyframes llmo-float-in {
  from { opacity:0; transform:translateY(8px); }
  to { opacity:1; transform:translateY(0); }
}
html.llmo-home-ready { scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
html.llmo-home-ready body[data-llmo-home-page] { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
@media (max-width:760px) {
  body[data-llmo-home-page] .entry-hero { margin-top:56px; }
  .llmo-intro__inner { padding:22px 20px; }
  .llmo-intro__text { font-size:14px; }
  .llmo-intro__btn.is-floating {
    left:calc(12px + env(safe-area-inset-left));
    right:calc(12px + env(safe-area-inset-right));
    bottom:calc(12px + env(safe-area-inset-bottom));
    width:auto; max-width:340px; margin-inline:auto;
  }
}
@media (prefers-reduced-motion:reduce) {
  .llmo-intro__btn.is-floating { animation:none; }
}
