    :root {
      --bg: #f4f3ef;
      --paper: #faf9f6;
      --ink: #121212;
      --muted: #696862;
      --line: rgba(18, 18, 18, .18);
      --accent: #a24b2a;
      --max: 1360px;
      --side: clamp(24px, 4.8vw, 78px);
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      background: var(--bg);
      color: var(--ink);
      font-family: "Helvetica Neue", "Helvetica", "Arial",  "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
      font-weight: 300;
      line-height: 1.8;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    img { display: block; width: 100%; }
    a { color: inherit; text-decoration: none; }
    button { font: inherit; }

    .wrap {
      width: min(calc(100% - (var(--side) * 2)), var(--max));
      margin-inline: auto;
    }

    .section { padding: clamp(92px, 11vw, 168px) 0; }
    .section--tight { padding: clamp(72px, 8vw, 120px) 0; }

    .site-header {
      position: fixed;
      z-index: 50;
      inset: 0 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 24px var(--side);
      color: #fff;
      transition: .35s ease;
    }

    .site-header.is-scrolled {
      padding-block: 16px;
      color: var(--ink);
      background: rgba(250, 249, 246, .92);
      backdrop-filter: blur(18px);
      border-bottom: 1px solid var(--line);
    }

    .logo {
      display: flex;
      align-items: center;
      gap: 18px;
    }

    .logo img {
      display: block;
      width: clamp(112px, 8.5vw, 148px);
      height: auto;
      object-fit: contain;
      transition: filter .35s ease;
    }

    .site-header.is-scrolled .logo img {
      filter: invert(1);
    }

    .logo span {
      font-size: 9px;
      letter-spacing: .26em;
      opacity: .68;
    }

    .header-entry {
      display: inline-flex;
      gap: 28px;
      align-items: center;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    .header-entry::after {
      content: "↗";
      font-size: 15px;
    }

    .hero {
      position: relative;
      min-height: 100svh;
      display: flex;
      align-items: flex-end;
      overflow: hidden;
      color: #fff;
      background: #111;
    }

    .hero__content {
      position: relative;
      z-index: 2;
      width: 100%;
      padding: 190px var(--side) 42px;
    }

    .hero__kicker,
    .label {
      margin: 0 0 18px;
      font-size: 9px;
      font-weight: 300;
      letter-spacing: .26em;
      text-transform: uppercase;
    }

    .hero h1 {
      margin: 0;
      max-width: 1100px;
      font-size: 88px;
      font-weight: 400;
      line-height: .96;
      letter-spacing: .005em;
    }

    .hero h1 span {
      display: block;
      white-space: nowrap;
    }
    .hero h1 span + span {
      margin-top: .05em;
    }

    .hero__bottom {
      display: grid;
      grid-template-columns: minmax(300px, 1fr) minmax(500px, .95fr);
      align-items: end;
      gap: clamp(40px, 6vw, 96px);
      margin-top: clamp(34px, 4vw, 58px);
      padding-top: 22px;
      border-top: 1px solid rgba(255,255,255,.46);
    }

    .hero__lead {
      margin: 0;
      max-width: 650px;
      font-size: clamp(14px, 1.2vw, 17px);
      letter-spacing: .035em;
      line-height: 1.95;
    }

    .event-meta {
      display: grid;
      grid-template-columns: 1.55fr 1fr .7fr;
      gap: 0;
      margin: 0;
      padding: 22px 26px 24px;
      border: 1px solid rgba(255,255,255,.42);
      background: rgba(8, 8, 8, .24);
      backdrop-filter: blur(10px);
    }

    .event-meta div {
      min-width: 0;
      padding: 0 22px;
      border-left: 1px solid rgba(255,255,255,.24);
    }

    .event-meta div:first-child {
      padding-left: 0;
      border-left: 0;
    }

    .event-meta div:last-child { padding-right: 0; }

    .event-meta dt {
      margin-bottom: 7px;
      font-size: 10px;
      font-weight: 400;
      letter-spacing: .22em;
      opacity: .72;
    }

    .event-meta dd {
      margin: 0;
      font-size: clamp(16px, 1.35vw, 22px);
      font-weight: 400;
      line-height: 1.35;
      letter-spacing: .01em;
      white-space: nowrap;
    }

    .event-meta div:first-child dd {
      font-size: clamp(20px, 1.75vw, 29px);
      font-weight: 500;
      letter-spacing: -.015em;
    }

    .intro { background: var(--paper); }

    .intro__grid {
      display: grid;
      grid-template-columns: minmax(420px, .9fr) minmax(480px, 1.1fr);
      gap: clamp(70px, 9vw, 150px);
      align-items: start;
    }

    .display-title {
      margin: 0;
      font-size: clamp(36px, 3.4vw, 52px);
      font-weight: 300;
      line-height: 1.07;
      letter-spacing: -.055em;
    }

    .display-title span { display: block; }

    .intro__copy {
      padding-top: clamp(36px, 6vw, 92px);
    }

    .intro__copy p {
      margin: 0;
      max-width: 600px;
      color: var(--muted);
      font-size: clamp(14px, 1.1vw, 16px);
      line-height: 2.15;
    }

    .keywords {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 42px;
    }

    .keywords span {
      padding: 8px 13px;
      border: 1px solid var(--line);
      font-size: 9px;
      font-weight: 400;
      letter-spacing: .15em;
      text-transform: uppercase;
    }

    .intro__image {
      margin-top: clamp(64px, 9vw, 128px);
      height: min(64vw, 760px);
      overflow: hidden;
    }

    .intro__image img {
      height: 110%;
      object-fit: cover;
      transform: translateY(-5%);
    }

    .trends { background: var(--bg); }

    .trends__head {
      display: grid;
      grid-template-columns: minmax(520px, 1.25fr) minmax(280px, .75fr);
      gap: 80px;
      align-items: end;
      margin-bottom: clamp(72px, 9vw, 130px);
    }

    .trends__title {
      margin: 0;
      font-size: clamp(48px, 6.2vw, 94px);
      font-weight: 300;
      line-height: 1.1;
      letter-spacing: -.055em;
    }

    .trends__title span { display: block; }

    .trends__desc {
      margin: 0 0 10px;
      color: var(--muted);
      font-size: 14px;
      line-height: 2;
    }

    .trend-list { border-top: 1px solid var(--line); }

    .trend-item {
      display: grid;
      grid-template-columns: 90px minmax(250px, .7fr) minmax(420px, 1.3fr);
      gap: clamp(30px, 5vw, 90px);
      align-items: center;
      min-height: 330px;
      padding: 48px 0;
      border-bottom: 1px solid var(--line);
    }

    .trend-item__no {
      align-self: start;
      padding-top: 5px;
      font-size: 11px;
      letter-spacing: .18em;
      color: var(--accent);
    }

    .trend-item__name h3 {
      margin: 0;
      font-size: clamp(34px, 4.2vw, 68px);
      font-weight: 300;
      line-height: 1;
      letter-spacing: -.045em;
    }

    .trend-item__name p {
      margin: 16px 0 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.9;
    }

    .trend-item__image {
      height: 260px;
      overflow: hidden;
    }

    .trend-item__image img {
      height: 100%;
      object-fit: cover;
      transition: transform 1s cubic-bezier(.2,.7,.2,1);
    }

    .trend-item:hover img { transform: scale(1.045); }

    .program {
      background: #111;
      color: #fff;
    }

    .program__grid {
      display: grid;
      grid-template-columns: minmax(400px, .82fr) minmax(520px, 1.18fr);
      gap: clamp(80px, 10vw, 170px);
    }

    .program__intro {
      position: sticky;
      top: 130px;
      align-self: start;
    }

    .program .display-title { font-size: clamp(52px, 6.6vw, 102px); }

    .program__intro p {
      margin: 34px 0 0;
      max-width: 500px;
      color: rgba(255,255,255,.62);
      font-size: 14px;
      line-height: 2;
    }

    .program-list { border-top: 1px solid rgba(255,255,255,.28); }

    .program-item {
      display: grid;
      grid-template-columns: 64px 1fr;
      gap: 22px;
      padding: 34px 0 38px;
      border-bottom: 1px solid rgba(255,255,255,.22);
    }

    .program-item__no {
      color: #c17a5e;
      font-size: 10px;
      letter-spacing: .16em;
    }

    .program-item h3 {
      margin: 0;
      font-size: clamp(20px, 2vw, 29px);
      font-weight: 300;
      letter-spacing: -.02em;
    }

    .program-item p {
      margin: 12px 0 0;
      color: rgba(255,255,255,.55);
      font-size: 13px;
      line-height: 1.9;
    }

    .brands { background: var(--paper); }

    .brands__top {
      display: flex;
      justify-content: space-between;
      align-items: end;
      gap: 40px;
      margin-bottom: 48px;
    }

    .brands__top h2 {
      margin: 0;
      font-size: clamp(36px, 5vw, 72px);
      font-weight: 300;
      letter-spacing: -.04em;
    }

    .brands__top p {
      margin: 0 0 10px;
      color: var(--muted);
      font-size: 11px;
    }

    .brand-grid {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      border-top: 1px solid var(--line);
      border-left: 1px solid var(--line);
    }

    .brand-cell {
      min-height: 132px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      border-right: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
      background: transparent;
      transition: background .3s ease;
    }

    .brand-cell:hover { background: #efede7; }

    .brand-cell svg {
      display: block;
      width: min(100%, 154px);
      height: 42px;
      overflow: visible;
      fill: currentColor;
      color: #181818;
      opacity: .76;
      transition: opacity .3s ease, transform .4s cubic-bezier(.2,.7,.2,1);
    }

    .brand-cell:hover svg {
      opacity: 1;
      transform: translateY(-2px);
    }

    .brand-cell .logo-word {
      font-family: "Helvetica Neue", "Helvetica", Arial, sans-serif;
      font-weight: 400;
      letter-spacing: .02em;
    }

    .brand-cell .logo-serif {
      font-family: Georgia, "Times New Roman", serif;
      font-weight: 400;
    }

    .recommended {
      display: grid;
      grid-template-columns: 1.05fr .95fr;
      min-height: 760px;
      background: #d8d3c9;
    }

    .recommended__image {
      min-height: 650px;
      overflow: hidden;
    }

    .recommended__image img {
      height: 100%;
      object-fit: cover;
      transition: transform 1.2s cubic-bezier(.2,.7,.2,1);
    }

    .recommended:hover .recommended__image img { transform: scale(1.035); }

    .recommended__content {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: clamp(56px, 7vw, 120px);
    }

    .recommended__content h2 {
      margin: 0;
      font-size: clamp(48px, 6vw, 92px);
      font-weight: 300;
      line-height: 1.12;
      letter-spacing: -.055em;
    }

    .recommended__content h2 span { display: block; }

    .recommended__content ul {
      list-style: none;
      margin: 48px 0 0;
      padding: 0;
      border-top: 1px solid var(--line);
    }

    .recommended__content li {
      display: flex;
      justify-content: space-between;
      gap: 30px;
      padding: 18px 0;
      border-bottom: 1px solid var(--line);
      font-size: 13px;
    }

    .recommended__content li::after { content: "↗"; color: var(--accent); }

    .information { background: var(--bg); }

    .information__grid {
      display: grid;
      grid-template-columns: minmax(310px, .55fr) minmax(540px, 1.45fr);
      border-top: 1px solid var(--line);
    }

    .information__head {
      padding: 54px 54px 54px 0;
      border-right: 1px solid var(--line);
    }

    .information__head h2 {
      margin: 0;
      font-size: clamp(42px, 5vw, 72px);
      font-weight: 300;
      letter-spacing: -.04em;
    }

    .information dl { margin: 0; }

    .information dl div {
      display: grid;
      grid-template-columns: 150px 1fr;
      gap: 30px;
      padding: 25px 0 25px 54px;
      border-bottom: 1px solid var(--line);
    }

    .information dt {
      color: var(--muted);
      font-size: 10px;
      letter-spacing: .12em;
      text-transform: uppercase;
    }

    .information dd {
      margin: 0;
      font-size: 14px;
    }

    .final-cta {
      position: relative;
      min-height: 92svh;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      color: #fff;
      text-align: center;
    }

    .final-cta__media {
      position: absolute;
      inset: 0;
      background:
        linear-gradient(rgba(0,0,0,.43), rgba(0,0,0,.55)),
        url("../img/IMG_8955_final.jpg") center/cover no-repeat;
      transform: scale(1.04);
    }

    .final-cta__inner {
      position: relative;
      z-index: 2;
      width: min(calc(100% - 48px), 1000px);
    }

    .final-cta h2 {
      margin: 0;
      font-size: clamp(60px, 9.5vw, 144px);
      font-weight: 300;
      line-height: .92;
      letter-spacing: -.06em;
    }

    .final-cta h2 span { display: block; }

    .final-cta p {
      margin: 42px auto 0;
      width: min(905, 640px);
      font-size: 14px;
      line-height: 2;
    }

    .apply-link {
      display: inline-flex;
      align-items: center;
      gap: 70px;
      margin-top: 48px;
      padding: 17px 0;
      border-bottom: 1px solid currentColor;
      font-size: 12px;
      font-weight: 400;
      letter-spacing: .16em;
      text-transform: uppercase;
    }

    .apply-link::after { content: "↗"; font-size: 16px; }

    footer {
      display: flex;
      justify-content: space-between;
      gap: 30px;
      padding: 36px var(--side);
      background: #0d0d0d;
      color: rgba(255,255,255,.62);
      font-size: 10px;
      letter-spacing: .1em;
    }

    footer nav { display: flex; gap: 24px; }

    .footer-logo {
      display: block;
      width: 108px;
      height: auto;
      opacity: .72;
    }

    .reveal {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
    }
    .reveal.is-visible { opacity: 1; transform: none; }

    @media (max-width: 980px) {
      .hero h1 { font-size: 76px; line-height: .9; }
      .hero__bottom,
      .intro__grid,
      .trends__head,
      .program__grid,
      .information__grid { grid-template-columns: 1fr; }
      .hero__bottom { align-items: start; }
      .event-meta { width: min(100%, 720px); }
      .intro__copy { padding-top: 0; }
      .trend-item { grid-template-columns: 60px 1fr; }
      .trend-item__image { grid-column: 2; }
      .program__intro { position: static; }
      .brand-grid { grid-template-columns: repeat(3, 1fr); }
      .recommended { grid-template-columns: 1fr; }
      .recommended__image { min-height: 520px; }
      .information__head { padding: 0 0 38px; border-right: 0; border-bottom: 1px solid var(--line); }
      .information dl div { padding-left: 0; }
    }

    @media (max-width: 640px) {
      :root { --side: 20px; }
      .site-header { padding-block: 18px; }
      .logo span, .header-entry { display: none; }
      .hero { min-height: 880px; }
      .hero__content { padding-bottom: 34px; }
      .hero h1 { font-size: 56px; line-height: .9; }
      .hero__bottom { gap: 28px; margin-top: 38px; }
      .event-meta {
        grid-template-columns: 1fr 1fr;
        padding: 20px;
      }
      .event-meta div {
        padding: 0 0 0 16px;
      }
      .event-meta div:first-child {
        grid-column: 1 / -1;
        padding: 0 0 18px;
        margin-bottom: 18px;
        border-bottom: 1px solid rgba(255,255,255,.24);
      }
      .event-meta div:nth-child(2) {
        padding-left: 0;
        border-left: 0;
      }
      .event-meta dd { font-size: 16px; }
      .event-meta div:first-child dd { font-size: clamp(24px, 7vw, 31px); }
      .display-title,
      .trends__title,
      .recommended__content h2 { font-size: clamp(44px, 13vw, 66px); }
      .intro__image { height: 78vw; }
      .trend-item { grid-template-columns: 42px 1fr; gap: 22px; padding: 34px 0; }
      .trend-item__name h3 { font-size: 41px; }
      .trend-item__image { height: 56vw; }
      .brand-grid { grid-template-columns: repeat(2, 1fr); }
      .brand-cell { min-height: 102px; padding: 18px 10px; }
      .brands__top { display: block; }
      .brands__top p { margin-top: 15px; }
      .recommended__image { min-height: 430px; }
      .recommended__content { padding: 64px 24px; }
      .information dl div { grid-template-columns: 1fr; gap: 8px; }
      .final-cta { min-height: 760px; }
      .final-cta h2 { font-size: clamp(58px, 18vw, 86px); }
      footer { flex-direction: column; }
      footer nav { flex-wrap: wrap; }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { animation: none !important; transition: none !important; }
      .reveal { opacity: 1; transform: none; }
    }
  
    .event-time {
      display: inline-block;
      margin-top: 0.35rem;
      font-size: 1.3em;
      font-weight: 500;
      letter-spacing: 0.04em;
      line-height: 1.1;
    }
  
    /* HENGE-inspired roman typography */
    .hero h1,
    .hero__kicker,
    .label,
    .header-entry,
    .hero-meta dt,
    .hero-meta dd,
    .trend__no,
    .trend__en,
    .program__en,
    .brands__eyebrow,
    .section-index,
    .footer-nav {
      font-family: "DINNextLTPro Condensed", "Arial Narrow", "Helvetica Neue Condensed", "Roboto Condensed", Arial, sans-serif;
      font-style: normal;
    }

    .hero h1 {
      font-weight: 400;
      letter-spacing: .005em;
    }

    .hero__kicker,
    .label,
    .header-entry,
    .hero-meta dt,
    .trend__no,
    .section-index {
      font-weight: 400;
      letter-spacing: .16em;
    }

    .hero-meta dd {
      font-weight: 400;
      letter-spacing: .015em;
    }

    .trend__en,
    .program__en {
      font-weight: 400;
      letter-spacing: .01em;
    }

    /* Seminar details: make them a stronger information block */
    .hero-meta {
      margin-top: clamp(38px, 4.6vw, 68px);
      padding-top: 28px;
    }

    .hero-meta dt {
      margin-bottom: 10px;
      font-size: 11px;
      letter-spacing: .18em;
    }

    .hero-meta dd {
      font-size: clamp(19px, 1.8vw, 29px);
      line-height: 1.15;
      letter-spacing: .01em;
    }

    .hero-meta__item:first-child dd {
      font-size: clamp(24px, 2.35vw, 38px);
    }

    @media (max-width: 767px) {

      .hero-meta {
        margin-top: 30px;
        padding-top: 22px;
      }

      .hero-meta dd {
        font-size: 20px;
      }

      .hero-meta__item:first-child dd {
        font-size: 26px;
      }
    }

  
    .hero__seminar-title {
      margin: 20px 0 0;
      max-width: 760px;
      font-size: clamp(18px, 1.55vw, 25px);
      font-weight: 400;
      line-height: 1.55;
      letter-spacing: .035em;
      color: #fff;
    }

    @media (max-width: 1024px) {
      .hero h1 {
        font-size: 72px;
      }
    }

    @media (max-width: 767px) {
      .hero h1 {
        font-size: 52px;
      }

      .hero__seminar-title {
        margin-top: 16px;
        max-width: 24em;
        font-size: 17px;
        line-height: 1.55;
      }
    }

  
    /* HERO bottom: subtitle left / seminar details right */
    .hero__bottom {
      display: grid !important;
      grid-template-columns: minmax(280px, .9fr) minmax(560px, 1.45fr) !important;
      align-items: end !important;
      gap: clamp(48px, 7vw, 120px) !important;
    }
    .hero__lead {
      display: block !important;
      margin: 0 !important;
      max-width: 520px !important;
      font-size: clamp(15px, 1.15vw, 18px) !important;
      line-height: 1.8 !important;
      color: rgba(255,255,255,.92) !important;
    }
    .event-meta {
      margin: 0 !important;
      width: 100% !important;
    }
    @media (max-width: 900px) {
      .hero__bottom {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
      }
    }


    /* HERO bottom alignment refinement */
    .hero__bottom {
      align-items: start !important;
    }

    .hero__lead {
      align-self: stretch !important;
      display: flex !important;
      align-items: center !important;
      margin: 0 !important;
      min-height: 100% !important;
      padding-top: 0 !important;
    }

    .event-meta {
      align-self: start !important;
    }

    @media (max-width: 900px) {
      .hero__lead {
        display: block !important;
        min-height: auto !important;
      }
    }


    .cta-seminar {
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      gap: 48px;
      min-width: 260px;
      padding: 18px 22px;
      border: 1px solid currentColor;
      text-decoration: none;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: .06em;
      line-height: 1;
      transition: background-color .3s ease, color .3s ease;
    }

    .cta-seminar::after {
      content: "→";
      font-family: Arial, sans-serif;
      font-size: 16px;
      font-weight: 400;
    }

    .cta-seminar:hover {
      background: #111;
      color: #fff;
      border-color: #111;
    }


    .final-entry {
      padding: clamp(96px, 12vw, 180px) var(--side);
      background: #111;
      color: #fff;
      text-align: center;
    }

    .final-entry__inner {
      max-width: 980px;
      margin: 0 auto;
    }

    .final-entry__eyebrow {
      margin: 0 0 26px;
      font-family: "DINNextLTPro Condensed", "Arial Narrow", Arial, sans-serif;
      font-size: 11px;
      font-weight: 400;
      letter-spacing: .22em;
    }

    .final-entry h2 {
      margin: 0;
      font-size: clamp(42px, 6vw, 82px);
      font-weight: 300;
      line-height: 1.15;
      letter-spacing: -.03em;
    }

    .final-entry__text {
      margin: 34px auto 0;
      font-size: clamp(15px, 1.2vw, 18px);
      line-height: 1.9;
      color: rgba(255,255,255,.78);
    }

    .cta-seminar--final {
      margin-top: 48px;
      min-width: min(420px, 100%);
      padding: 24px 30px;
      border-color: rgba(255,255,255,.75);
      color: #fff;
      font-size: 16px;
    }

    .cta-seminar--final:hover {
      background: #fff;
      color: #111;
      border-color: #fff;
    }

    @media (max-width: 767px) {
      .final-entry {
        padding: 88px 24px;
      }

      .final-entry h2 {
        font-size: 42px;
      }

      .final-entry__text {
        margin-top: 26px;
        font-size: 14px;
      }

      .cta-seminar--final {
        width: 100%;
        min-width: 0;
        margin-top: 36px;
      }

      .pc-only {
        display: none;
      }
    }


    .hero__title-row {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: clamp(32px, 5vw, 72px);
    }

    .hero__title-row h1 {
      flex: 1 1 auto;
    }

    .hero-cta {
      flex: 0 0 auto;
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      gap: 34px;
      min-width: 220px;
      margin-bottom: 6px;
      padding: 16px 18px;
      border: 1px solid rgba(255,255,255,.7);
      color: #fff;
      text-decoration: none;
      font-size: 13px;
      font-weight: 500;
      letter-spacing: .05em;
      line-height: 1;
      white-space: nowrap;
      transition: background-color .3s ease, color .3s ease, border-color .3s ease;
    }

    .hero-cta::after {
      content: "→";
      font-family: Arial, sans-serif;
      font-size: 15px;
    }

    .hero-cta:hover {
      background: #fff;
      color: #111;
      border-color: #fff;
    }

    @media (max-width: 900px) {
      .hero__title-row {
        display: block;
      }

      .hero-cta {
        margin-top: 24px;
        margin-bottom: 0;
      }
    }

    @media (max-width: 767px) {
      .hero-cta {
        min-width: 0;
        width: auto;
        padding: 14px 16px;
        font-size: 12px;
      }
    }


    /* HERO CTA refinement */
    .hero__title-row {
      justify-content: flex-start !important;
      gap: clamp(18px, 2.2vw, 34px) !important;
    }

    .hero-cta {
      min-width: 330px !important;
      padding: 24px 28px !important;
      margin-left: -6px !important;
      margin-bottom: 4px !important;
      background: rgba(255,255,255,.16) !important;
      border-color: rgba(255,255,255,.82) !important;
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      font-size: 15px !important;
      gap: 44px !important;
    }

    .hero-cta:hover {
      background: rgba(255,255,255,.94) !important;
      color: #111 !important;
      border-color: #fff !important;
    }

    @media (max-width: 900px) {
      .hero__title-row {
        display: block !important;
      }

      .hero-cta {
        min-width: 300px !important;
        margin-left: 0 !important;
        margin-top: 22px !important;
      }
    }

    @media (max-width: 767px) {
      .hero-cta {
        width: 100% !important;
        min-width: 0 !important;
        padding: 18px 20px !important;
        font-size: 13px !important;
      }
    }


    /* KAMIYA Perspective heading — PC baseline: 1440px */
    .perspective-title {
      font-size: clamp(36px, 3.4vw, 52px) !important;
      line-height: 1.25 !important;
      letter-spacing: -.03em !important;
    }

    @media (max-width: 767px) {
      .perspective-title {
        font-size: 34px !important;
        line-height: 1.25 !important;
      }
    }


    /* Desktop typography scale: tuned for 1440–1920px */
    .perspective-title {
      font-size: clamp(38px, 3.4vw, 64px) !important;
      line-height: 1.22 !important;
      letter-spacing: -.03em !important;
    }

    .display-title {
      font-size: clamp(40px, 3.8vw, 68px) !important;
      line-height: 1.12 !important;
    }

    .trends__title {
      font-size: clamp(54px, 5.4vw, 104px) !important;
      line-height: 1.08 !important;
    }

    .program .display-title {
      font-size: clamp(52px, 5.2vw, 100px) !important;
      line-height: 1.06 !important;
    }

    .brands__top h2 {
      font-size: clamp(42px, 4.2vw, 80px) !important;
      line-height: 1.1 !important;
    }

    .recommended__content h2 {
      font-size: clamp(52px, 5vw, 96px) !important;
      line-height: 1.1 !important;
    }

    .information__head h2 {
      font-size: clamp(44px, 4vw, 76px) !important;
      line-height: 1.1 !important;
    }

    .final-entry h2 {
      font-size: clamp(48px, 4.8vw, 92px) !important;
    }

    @media (max-width: 767px) {
      .perspective-title {
        font-size: 34px !important;
      }

      .display-title,
      .trends__title,
      .program .display-title,
      .brands__top h2,
      .recommended__content h2,
      .information__head h2 {
        font-size: clamp(36px, 10.5vw, 52px) !important;
      }

      .final-entry h2 {
        font-size: 42px !important;
      }
    }


    /* Main Japanese section titles — unified scale */
    .perspective-title,
    .trends__title,
    .program .display-title,
    .recommended__content h2 {
      font-size: clamp(38px, 3.4vw, 64px) !important;
      line-height: 1.22 !important;
      letter-spacing: -.03em !important;
    }

    @media (max-width: 767px) {
      .perspective-title,
      .trends__title,
      .program .display-title,
      .recommended__content h2 {
        font-size: 34px !important;
        line-height: 1.25 !important;
      }
    }


    /* Final CTA headline — prevent wrapping on full desktop */
    .final-cta h2 {
      font-size: clamp(44px, 4.8vw, 82px) !important;
      line-height: 1.05 !important;
      letter-spacing: -.04em !important;
      white-space: nowrap;
    }

    @media (max-width: 1100px) {
      .final-cta h2 {
        white-space: normal;
        font-size: clamp(38px, 7vw, 68px) !important;
      }
    }


    /* Final CTA button — match HERO tone, slightly stronger */
    .cta-seminar--final {
      min-width: min(460px, 100%) !important;
      padding: 26px 32px !important;
      background: rgba(255,255,255,.14) !important;
      border: 1px solid rgba(255,255,255,.86) !important;
      color: #fff !important;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      font-size: 16px !important;
      font-weight: 500 !important;
      letter-spacing: .06em !important;
      box-shadow: 0 12px 40px rgba(0,0,0,.16);
    }

    .cta-seminar--final::after {
      font-size: 18px !important;
    }

    .cta-seminar--final:hover {
      background: #fff !important;
      color: #111 !important;
      border-color: #fff !important;
      transform: translateY(-2px);
      box-shadow: 0 16px 46px rgba(0,0,0,.22);
    }

    @media (max-width: 767px) {
      .cta-seminar--final {
        width: 100% !important;
        min-width: 0 !important;
        padding: 20px 22px !important;
        font-size: 14px !important;
      }
    }


    .final-cta .cta-seminar--final {
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      gap: 48px;
      min-width: min(460px, 100%);
      margin-top: 38px;
      padding: 25px 30px;
      background: rgba(255,255,255,.16);
      border: 1px solid rgba(255,255,255,.88);
      color: #fff;
      text-decoration: none;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      font-size: 16px;
      font-weight: 500;
      letter-spacing: .06em;
      line-height: 1;
      box-shadow: 0 12px 40px rgba(0,0,0,.18);
      transition: background-color .3s ease, color .3s ease, transform .3s ease, box-shadow .3s ease;
    }

    .final-cta .cta-seminar--final::after {
      content: "→";
      font-family: Arial, sans-serif;
      font-size: 18px;
    }

    .final-cta .cta-seminar--final:hover {
      background: #fff;
      color: #111;
      transform: translateY(-2px);
      box-shadow: 0 16px 46px rgba(0,0,0,.24);
    }

    @media (max-width: 767px) {
      .final-cta .cta-seminar--final {
        width: 100%;
        min-width: 0;
        padding: 20px 22px;
        font-size: 14px;
      }
    }


    /* Information / event details — improve desktop readability */
    .information dt,
    .information__list dt,
    .event-detail dt {
      font-size: 13px !important;
      letter-spacing: .16em !important;
      line-height: 1.4 !important;
    }

    .information dd,
    .information__list dd,
    .event-detail dd {
      font-size: clamp(20px, 1.55vw, 28px) !important;
      line-height: 1.45 !important;
      letter-spacing: .01em !important;
    }

    .information__row,
    .information dl > div,
    .information__list > div,
    .event-detail > div {
      padding-top: 24px !important;
      padding-bottom: 24px !important;
    }

    @media (max-width: 767px) {
      .information dt,
      .information__list dt,
      .event-detail dt {
        font-size: 11px !important;
      }

      .information dd,
      .information__list dd,
      .event-detail dd {
        font-size: 19px !important;
      }
    }


    /* Event detail labels — slightly larger for desktop */
    .information dt,
    .information__list dt,
    .event-detail dt {
      font-size: 15px !important;
      font-weight: 500 !important;
      letter-spacing: .15em !important;
      line-height: 1.4 !important;
    }

    @media (max-width: 767px) {
      .information dt,
      .information__list dt,
      .event-detail dt {
        font-size: 12px !important;
      }
    }


    /* HERO typography: tall, narrow, HENGE-like condensed treatment */
    .hero-title,
    .hero h1.hero-title {
      max-width: 980px !important;
      margin: 0 !important;
      font-family: "DINNextLTPro Condensed", "Arial Narrow", "Helvetica Neue Condensed",
                   "Roboto Condensed", Arial, sans-serif !important;
      font-size: clamp(72px, 6.8vw, 112px) !important;
      font-weight: 400 !important;
      line-height: .86 !important;
      letter-spacing: .01em !important;
      text-transform: none !important;
      font-stretch: condensed;
    }

    .hero-title span {
      display: block !important;
      white-space: nowrap;
    }

    .hero-title span + span {
      margin-top: .08em !important;
    }

    @media (max-width: 1024px) {
      .hero-title,
      .hero h1.hero-title {
        font-size: clamp(60px, 8vw, 84px) !important;
      }
    }

    @media (max-width: 767px) {
      .hero-title,
      .hero h1.hero-title {
        font-size: clamp(44px, 13vw, 64px) !important;
        line-height: .92 !important;
      }

      .hero-title span {
        white-space: normal;
      }
    }


    .hero-title,
    .hero h1.hero-title {
      line-height: .92 !important;
    }


    /* =========================================================
       FONT SYSTEM
       Japanese = Apple / system sans
       Roman display = DINNextLTPro Condensed
       ========================================================= */

    :root {
      --font-ja:
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "YuGothic",
        "Meiryo",
        sans-serif;

      --font-roman-condensed:
        "DINNextLTPro Condensed",
        "Arial Narrow",
        "Helvetica Neue Condensed",
        "Roboto Condensed",
        Arial,
        sans-serif;
    }

    html,
    body,
    button,
    input,
    textarea,
    select {
      font-family: var(--font-ja) !important;
    }

    body,
    p,
    li,
    dd,
    .hero__seminar-title,
    .hero__lead,
    .perspective-title,
    .display-title,
    .trends__title,
    .recommended__content h2,
    .information__head h2,
    .final-cta h2 {
      font-family: var(--font-ja) !important;
    }

    /* Roman-only UI / display typography */
    .hero-title,
    .hero h1.hero-title,
    .hero__kicker,
    .label,
    .header-entry,
    .event-meta dt,
    .event-meta dd,
    .trend-item__no,
    .trend-item__name h3,
    .program-item__no,
    .program-item h3,
    .section-index,
    .brands__eyebrow,
    .footer-nav,
    .information dt,
    .information__list dt,
    .event-detail dt {
      font-family: var(--font-roman-condensed) !important;
    }



    /* =========================================================
       JAPANESE FONT WEIGHT REFINEMENT
       ========================================================= */

    body,
    p,
    li,
    dd {
      font-weight: 400;
    }

    .perspective-title,
    .display-title,
    .trends__title,
    .program .display-title,
    .brands__top h2,
    .recommended__content h2,
    .information__head h2,
    .final-cta h2 {
      font-family: var(--font-ja) !important;
      font-weight: 300 !important;
      -webkit-font-smoothing: antialiased;
      text-rendering: geometricPrecision;
    }

    .hero__seminar-title,
    .hero__lead,
    .trends__desc,
    .program__intro p,
    .trend-item__name p,
    .program-item p,
    .final-cta p {
      font-family: var(--font-ja) !important;
      font-weight: 400 !important;
    }

    /* Avoid fake bold on Japanese labels */
    strong,
    b {
      font-weight: 500;
    }


    /* Perspective headline — lighter */
    .perspective-title {
      font-weight: 200 !important;
    }


    /* Perspective headline — intentionally very light */
    .perspective-title {
      font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "YuGothic",
        sans-serif !important;
      font-weight: 100 !important;
      -webkit-font-smoothing: antialiased !important;
      letter-spacing: -.045em !important;
    }


    /* Trends title = Perspective title */
    .trends__title {
      font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "YuGothic",
        sans-serif !important;
      font-size: clamp(38px, 3.4vw, 64px) !important;
      font-weight: 100 !important;
      line-height: 1.22 !important;
      letter-spacing: -.045em !important;
      -webkit-font-smoothing: antialiased !important;
      text-rendering: geometricPrecision !important;
    }

    @media (max-width: 767px) {
      .trends__title {
        font-size: 34px !important;
        line-height: 1.25 !important;
      }
    }


    /* Main section titles — matching style */
    .perspective-title,
    .trends__title {
      font-weight: normal !important;
    }


    /* Exact selectors: fix computed font-weight */
    .intro__grid h2.display-title,
    .trends__title {
      font-weight: normal !important;
    }


    /* Exact Japanese headline weight — lighter */
    .intro__grid h2.display-title,
    .trends__title {
      font-family:
        "Hiragino Sans",
        -apple-system,
        BlinkMacSystemFont,
        "Yu Gothic",
        "YuGothic",
        sans-serif !important;
      font-weight: 200 !important;
      -webkit-font-smoothing: antialiased !important;
    }


    /* HERO background image — user supplied */

    .hero__media {
      position: absolute;
      inset: 0;

      background-image: url("../img/hero-milan.jpg");
      background-size: cover;
      background-position: center -230px;
      background-repeat: no-repeat;
    }

    .hero__media::after {
      content: "";
      position: absolute;
      inset: 0;

      background:
        linear-gradient(
          180deg,
          rgba(0, 0, 0, 0) 35%,
          rgba(0, 0, 0, 0.12) 60%,
          rgba(0, 0, 0, 0.42) 100%
        ),
        linear-gradient(
          90deg,
          rgba(0, 0, 0, 0.42) 0%,
          rgba(0, 0, 0, 0.22) 52%,
          rgba(0, 0, 0, 0.30) 100%
        );

      pointer-events: none;
    }



    /* =========================================================
       ACTUAL LIGHT FONT FACE
       Use real Light faces instead of unsupported font-weight:200
       ========================================================= */

    .intro__grid h2.display-title,
    .trends__title,
    .program .display-title,
    .brands__top h2,
    .recommended__content h2,
    .information__head h2,
    .final-cta h2 {
      font-family:
        "Yu Gothic Light",
        "Yu Gothic",
        "Hiragino Sans W2",
        "Hiragino Sans",
        -apple-system,
        BlinkMacSystemFont,
        sans-serif !important;
      font-weight: 300 !important;
      -webkit-font-smoothing: antialiased !important;
      text-rendering: geometricPrecision !important;
    }


    /* Sticky header CTA */
    .site-header,
    header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
    }

    .header-cta {
      position: absolute;
      top: 50%;
      right: var(--side);
      transform: translateY(-50%);
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      min-width: 170px;
      padding: 11px 14px;
      border: 1px solid rgba(255,255,255,.65);
      background: rgba(255,255,255,.12);
      color: #fff;
      text-decoration: none;
      font-size: 12px;
      font-weight: 500;
      letter-spacing: .04em;
      line-height: 1;
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      transition: background-color .25s ease, color .25s ease, border-color .25s ease;
    }

    .header-cta::after {
      content: "→";
      font-family: Arial, sans-serif;
      font-size: 13px;
    }

    .site-header.is-scrolled .header-cta,
    header.is-scrolled .header-cta {
      background: rgba(255,255,255,.96);
      color: #111;
      border-color: rgba(0,0,0,.18);
    }

    .header-cta:hover {
      background: #fff;
      color: #111;
      border-color: #fff;
    }

    @media (max-width: 900px) {
      .header-cta {
        right: 18px;
        min-width: 146px;
        padding: 10px 12px;
        font-size: 11px;
      }
    }

    @media (max-width: 640px) {
      .header-cta {
        min-width: 0;
        gap: 10px;
        padding: 9px 11px;
      }
    }


    /* Header CTA appears only after HERO leaves the viewport */
    .header-cta {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transform: translateY(-50%) translateY(-6px);
    }

    .header-cta.is-visible {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateY(-50%) translateY(0);
    }


    
    /* Trend English titles only */
    .trend-item__name h3 {
      font-family:
        "DINNextLTPro Condensed",
        "Arial Narrow",
        "Helvetica Neue Condensed",
        "Roboto Condensed",
        Arial,
        sans-serif !important;
      font-weight: 300 !important;
      letter-spacing: .045em !important;
    }


    /* Stronger HERO parallax */
    .hero__media {
      inset: -8% 0 !important;
      background-size: cover !important;
      will-change: transform;
    }


    /* Intro heading — keep second line on one line at 1920px */
    .intro__grid h2.display-title {
      max-width: 1000px !important;
      font-size: clamp(42px, 3.25vw, 60px) !important;
      line-height: 1.12 !important;
    }

    .intro__grid h2.display-title span {
      white-space: nowrap;
    }

    @media (max-width: 1100px) {
      .intro__grid h2.display-title span {
        white-space: normal;
      }
    }

