/* =========================================================
   AHA TOKYO — TOP PAGE (HERO以降)
   基本は「動かなくても読める流し込みレイアウト」。
   html.motion のときだけ、sticky / 出現前の状態を足す。
   ========================================================= */
:root {
  --navy: #101C2C;
  --navy-deep: #0B1422;
  --navy-2: #15243A;
  --ivory: #F5F1E8;
  --ivory-2: #ECE5D6;
  --ink: #101C2C;
  --ink-70: rgba(16, 28, 44, .72);
  --ink-45: rgba(16, 28, 44, .45);
  --ink-15: rgba(16, 28, 44, .15);
  --iv-80: rgba(245, 241, 232, .8);
  --iv-55: rgba(245, 241, 232, .55);
  --iv-30: rgba(245, 241, 232, .3);
  --iv-12: rgba(245, 241, 232, .12);
  --orange: #E87532;
  --orange-ink: #B4531B;   /* アイボリー地の小さな文字用（コントラスト確保） */
  --orange-soft: rgba(232, 117, 50, .14);
  --gutter: clamp(20px, 6vw, 96px);
  --maxw: 1320px;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-io: cubic-bezier(.65, 0, .35, 1);
  --f-mincho: "Shippori Mincho B1", "Yu Mincho", serif;
  --f-gothic: "Zen Kaku Gothic New", "Yu Gothic", sans-serif;
  --f-latin: "Jost", "Helvetica Neue", Arial, sans-serif;
  --header-h: 72px;
}
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }
.is-reduced { scroll-behavior: auto; }
img { max-width: 100%; display: block; }
a { color: inherit; }
.sr, .skip { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip:focus { position: fixed; left: 12px; top: 12px; width: auto; height: auto; clip: auto; z-index: 100; padding: 10px 16px; background: var(--ivory); color: var(--navy); }
.sp { display: none; }
@media (max-width: 760px) { .sp { display: inline; } .pc { display: none; } }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }

/* ---------- Theme ---------- */
[data-theme="navy"] { background: var(--navy); color: var(--ivory); }
[data-theme="ivory"] { background: var(--ivory); color: var(--ink); }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 40;
  height: var(--header-h);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--gutter);
  background: transparent;
  transition: background .5s ease, color .5s ease, transform .5s var(--ease-out);
  color: var(--ivory);
}
.site-header.is-solid[data-theme="navy"] { background: rgba(16, 28, 44, .82); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.site-header.is-solid[data-theme="ivory"] { background: rgba(245, 241, 232, .86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: var(--ink); }
.site-header[data-theme="ivory"] { color: var(--ink); }
.site-header.is-intro { transform: translateY(-110%); }
.site-header__brand { display: block; width: 132px; }
.site-header__brand svg { width: 100%; height: auto; display: block; }
.mini-mark { fill: currentColor; }
.mini-accent { fill: #CA9452; }
.site-nav { display: flex; align-items: center; gap: 36px; }
.site-nav ul { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0; }
.site-nav ul a { font: 400 11px/1 var(--f-latin); letter-spacing: .26em; text-decoration: none; opacity: .72; transition: opacity .3s; position: relative; }
.site-nav ul a:hover, .site-nav ul a.is-current { opacity: 1; }
.site-nav ul a.is-current::after { content: ""; position: absolute; left: 0; right: .26em; bottom: -8px; height: 1px; background: var(--orange); }
.site-nav__cta { display: inline-flex; gap: 10px; align-items: center; padding: 11px 18px; border: 1px solid currentColor; border-radius: 999px; font: 500 13px/1 var(--f-gothic); letter-spacing: .08em; text-decoration: none; transition: background .3s, color .3s; }
.site-nav__cta span { color: var(--orange); }
.site-nav__cta:hover { background: var(--orange); border-color: var(--orange); color: #fff; }
.site-nav__cta:hover span { color: #fff; }
.site-header__menu { display: none; }
/* ナビ8項目（SPEAKING追加）でも折り返さないよう、ハンバーガーに切り替わる手前の幅では詰める */
.site-nav ul a, .site-nav__cta { white-space: nowrap; }
@media (min-width: 1101px) and (max-width: 1340px) {
  .site-nav { gap: 22px; }
  .site-nav ul { gap: 17px; }
  .site-nav ul a { letter-spacing: .18em; }
}

@media (max-width: 1100px) {
  .site-header__menu {
    display: grid; place-items: center; gap: 6px; width: 44px; height: 44px; margin-right: -10px;
    background: none; border: 0; color: inherit; cursor: pointer; padding: 12px 10px;
  }
  .site-header__menu span:not(.sr) { display: block; width: 24px; height: 1px; background: currentColor; transition: transform .4s var(--ease-out); }
  .site-header__menu[aria-expanded="true"] span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
  .site-header__menu[aria-expanded="true"] span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }
  .site-nav {
    position: fixed; inset: 0; z-index: -1;
    flex-direction: column; justify-content: center; align-items: flex-start; gap: 44px;
    padding: 0 var(--gutter);
    background: var(--navy); color: var(--ivory);
    opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility 0s linear .5s;
  }
  .site-nav.is-open { opacity: 1; visibility: visible; transition: opacity .5s ease; }
  .site-nav ul { flex-direction: column; gap: 26px; }
  .site-nav ul a { font-size: 15px; opacity: .9; }
  /* backdrop-filter / transform があると fixed のメニューがヘッダー(72px)の中に閉じ込められる（iPhoneで発覚）。開いている間は外す */
  .site-header.menu-open { color: var(--ivory) !important; background: var(--navy) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; transform: none !important; }
  .site-nav { height: 100vh; height: 100dvh; overflow-y: auto; }
  /* アイボリー地のセクション上で開くと、ヘッダーの文字色(紺)が勝って × とロゴが紺地に沈んでいた */
  .site-header.menu-open .site-header__menu span:not(.sr) { background: var(--ivory); }
}

/* ---------- Common section parts ---------- */
.sec { position: relative; padding: clamp(96px, 14vh, 160px) var(--gutter); }
.sec-head { max-width: var(--maxw); margin: 0 auto clamp(40px, 7vh, 72px); }
.sec-head--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.sec-label { margin: 0 0 22px; font: 400 12px/1 var(--f-latin); letter-spacing: .34em; opacity: .75; display: flex; align-items: center; }
[data-theme="ivory"] .sec-label { opacity: .8; }
.sec-label__rule { display: inline-block; width: 28px; height: 1px; background: var(--orange); margin-right: 14px; transform-origin: left; transition: box-shadow .6s ease; }
.sec-label__rule.is-lit { box-shadow: 0 0 0 0 transparent, 0 0 10px 1px rgba(232, 117, 50, .65); }
.sec-label__role { margin-left: 18px; padding-left: 18px; border-left: 1px solid currentColor; opacity: .55; letter-spacing: .3em; }
.sec-title { margin: 0; font: 500 clamp(30px, 3.9vw, 58px)/1.38 var(--f-mincho); letter-spacing: .05em; }
.sec-desc { margin: 22px 0 0; font: 400 15px/1.9 var(--f-gothic); letter-spacing: .06em; opacity: .75; }
.sec-links { display: flex; gap: 14px; flex-wrap: wrap; max-width: var(--maxw); margin: 44px auto 0; }
.sec-head .sec-links { margin: 0; }
.link-pill {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 13px 20px; border: 1px solid var(--iv-30); border-radius: 999px;
  font: 400 11px/1 var(--f-latin); letter-spacing: .28em; text-decoration: none;
  transition: border-color .3s, background .3s, color .3s;
}
.link-pill span { color: var(--orange); letter-spacing: 0; }
.link-pill:hover { border-color: var(--ivory); background: var(--ivory); color: var(--navy); }

/* 見出しの出現：ルールが伸びてから、行が下からせり上がる（fade-upではなくマスク） */
.motion .sec-head .sec-label__rule { transform: scaleX(0); transition: transform .9s var(--ease-out), box-shadow .6s ease; }
.motion .sec-head .sec-label { clip-path: inset(0 100% 0 0); transition: clip-path 1.1s var(--ease-out) .15s; }
.motion .sec-head .sec-title { clip-path: inset(0 0 100% 0); transform: translateY(18px); transition: clip-path 1.2s var(--ease-out) .3s, transform 1.2s var(--ease-out) .3s; }
.motion .sec-head .sec-desc, .motion .sec-head .sec-links { opacity: 0; transition: opacity 1s ease .7s; }
.motion .sec-head.is-in .sec-label__rule { transform: none; }
.motion .sec-head.is-in .sec-label { clip-path: inset(0 0 0 0); }
.motion .sec-head.is-in .sec-title { clip-path: inset(-10% 0 -10% 0); transform: none; }
.motion .sec-head.is-in .sec-desc, .motion .sec-head.is-in .sec-links { opacity: 1; }

/* ---------- Guide (orange light) ---------- */
.guide { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 30; pointer-events: none; }
.is-reduced .guide { display: none; }

/* =========================================================
   02 LATEST THOUGHTS
   ========================================================= */
.thoughts { padding-top: 0; overflow: hidden; }
.thoughts .next__thread { height: 22svh; margin: 0 calc(var(--gutter) * -1) 7vh; }
.thoughts__rail { max-width: var(--maxw); margin: 0 auto; }
.thoughts__track { list-style: none; margin: 0; padding: 0; display: flex; gap: 0; will-change: transform; }
.thought {
  position: relative; flex: 0 0 min(380px, 80vw);
  padding: 34px 40px 8px 28px;
  border-left: 1px solid transparent;
}
.thought::before { content: ""; position: absolute; left: -1px; top: 0; bottom: 0; width: 1px; background: var(--iv-30); transform-origin: top; }
.thought__node { position: absolute; left: -4px; top: -3px; width: 7px; height: 7px; border-radius: 50%; background: var(--ivory); transition: background .6s, box-shadow .6s; }
.thought.is-lit .thought__node { background: var(--orange); box-shadow: 0 0 0 5px var(--orange-soft); }
.thought__meta { margin: 0 0 20px; font: 400 11px/1 var(--f-latin); letter-spacing: .28em; color: var(--iv-55); }
.thought__meta b { font-weight: 400; color: var(--ivory); }
.thought__text { margin: 0 0 24px; font: 400 16px/2 var(--f-gothic); letter-spacing: .04em; color: var(--iv-80); display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.thought__by { font: 400 12px/1 var(--f-latin); letter-spacing: .12em; text-decoration: none; color: var(--iv-55); transition: color .3s; }
.thought__by span { color: var(--orange); }
.thought__by:hover { color: var(--ivory); }
.thought__sample { display: inline-block; margin-left: 10px; padding: 3px 6px; border: 1px solid var(--iv-30); font-size: 9px; letter-spacing: .2em; color: var(--iv-55); vertical-align: 1px; }
.thought--empty .thought__text { color: var(--iv-55); }
.motion .thought::before { transform: scaleY(0); transition: transform 1.2s var(--ease-out) calc(var(--i) * 120ms); }
.motion .thought .thought__meta, .motion .thought .thought__text, .motion .thought .thought__by { opacity: 0; transform: translateX(-14px); transition: opacity .9s ease calc(var(--i) * 120ms + .35s), transform 1.2s var(--ease-out) calc(var(--i) * 120ms + .35s); }
.motion .thoughts.is-in .thought::before { transform: none; }
.motion .thoughts.is-in .thought .thought__meta, .motion .thoughts.is-in .thought .thought__text, .motion .thoughts.is-in .thought .thought__by { opacity: 1; transform: none; }
/* note: 短い思考の流れの途中から、長文が一回り大きく浮かび上がる */
.thought--article { flex-basis: min(540px, 86vw); padding: 26px 44px 12px 28px; }
.thought--article .thought__node { left: -6px; top: -5px; width: 11px; height: 11px; background: var(--orange); box-shadow: 0 0 0 6px var(--orange-soft); }
.article { display: block; margin: -8px 0 0 -8px; padding: 20px 22px 22px; text-decoration: none; color: inherit; background: rgba(245, 241, 232, .035); border: 1px solid var(--iv-12); transition: border-color .6s, background .6s, transform 1.2s var(--ease-out), opacity 1s ease; }
.article:hover { border-color: var(--iv-30); background: rgba(245, 241, 232, .06); }
.article__thumb { aspect-ratio: 1.91 / 1; overflow: hidden; margin: 0 0 20px; background: var(--navy-2); }
.article__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--ease-out); }
.article:hover .article__thumb img { transform: scale(1.03); }
.article .thought__meta { margin-bottom: 14px; }
.article .thought__meta b { color: var(--orange); }
.article__date { margin-left: 12px; }
.article__title { margin: 0 0 12px; font: 600 clamp(18px, 1.55vw, 23px)/1.6 var(--f-mincho); letter-spacing: .04em; color: var(--ivory); }
.article__excerpt { margin: 0 0 20px; font: 400 14px/1.9 var(--f-gothic); color: var(--iv-55); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.article__read { font: 500 11px/1 var(--f-latin); letter-spacing: .26em; color: var(--ivory); }
.article__read span { color: var(--orange); letter-spacing: 0; margin-left: 4px; }
.motion .thought--article .article { transform: translateY(30px) scale(.955); opacity: .5; }
.motion .thought--article.is-lit .article { transform: none; opacity: 1; border-color: rgba(232, 117, 50, .38); }
.motion .thoughts .thought--article .article .thought__meta, .motion .thoughts .thought--article .article .article__title { opacity: 1; transform: none; }
@media (max-width: 760px) {
  .thoughts__rail { margin: 0 calc(var(--gutter) * -1); overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .thoughts__rail::-webkit-scrollbar { display: none; }
  .thoughts__track { padding: 0 var(--gutter); transform: none !important; }
  .thought { scroll-snap-align: start; padding: 28px 28px 8px 22px; flex-basis: 78vw; }
  .thought--article { flex-basis: 86vw; padding-right: 24px; }
  .thought__text { font-size: 15px; }
}

/* =========================================================
   03 NOW — 時間軸
   ========================================================= */
/* NEWS INDEX: 1件1行。左の細い縦軸に点、新しい順。年表の大きな日付はやめて高さを詰める（2026-10-03） */
.now { background: var(--navy-deep); padding-top: clamp(56px, 8vh, 88px); padding-bottom: clamp(56px, 8vh, 88px); }
.now .sec-head { margin-bottom: 28px; }
.now .sec-title { font-size: clamp(24px, 2.6vw, 38px); white-space: nowrap; }
/* PCは見出しと一覧を左右に並べて高さを詰める */
@media (min-width: 901px) {
  .now { display: grid; grid-template-columns: auto 1fr; column-gap: clamp(40px, 5vw, 88px); align-items: start; padding-left: max(var(--gutter), calc((100% - var(--maxw)) / 2)); padding-right: max(var(--gutter), calc((100% - var(--maxw)) / 2)); }
  .now .sec-head { margin: 0; }
  .now .timeline { margin: 0; }
}
.timeline { position: relative; max-width: var(--maxw); margin: 0 auto; padding-left: 30px; }
.timeline__axis { position: absolute; left: 4px; top: 0; bottom: 0; width: 1px; background: var(--iv-12); }
.timeline__fill { position: absolute; inset: 0; background: linear-gradient(180deg, var(--orange), var(--iv-30)); transform-origin: top; transform: scaleY(var(--fill, 1)); }
.timeline__items { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--iv-12); }
.event { position: relative; display: grid; grid-template-columns: 100px 100px minmax(0, 1fr); gap: 4px 18px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--iv-12); }
.event__node { position: absolute; left: -30px; top: 50%; margin-top: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--navy-deep); border: 1px solid var(--iv-55); transition: background .6s, border-color .6s, box-shadow .6s; }
.event.is-next .event__node { background: var(--orange); border-color: var(--orange); box-shadow: 0 0 0 6px var(--orange-soft); }
.event__date { margin: 0; font: 400 15px/1.4 var(--f-latin); letter-spacing: .14em; }
.event__type { margin: 0; font: 500 11px/1.4 var(--f-latin); letter-spacing: .28em; color: var(--orange); }
.event__type em { font-style: normal; display: inline-block; margin: 6px 0 0; padding: 3px 7px; border: 1px solid var(--orange); font-size: 10px; letter-spacing: .2em; }
.event__title { margin: 0; font: 500 clamp(16px, 1.3vw, 19px)/1.6 var(--f-mincho); letter-spacing: .04em; }
.event__place { grid-column: 3; margin: 0; font: 400 13px/1.7 var(--f-gothic); color: var(--iv-55); }
.event__link { grid-column: 3; font: 400 11px/1 var(--f-latin); letter-spacing: .24em; color: var(--iv-80); }
.motion .event > *:not(.event__node) { opacity: 0; transform: translateY(8px); transition: opacity .8s ease, transform 1s var(--ease-out); }
.motion .event .event__node { transform: scale(0); transition: transform .7s var(--ease-out), background .6s, border-color .6s, box-shadow .6s; }
.motion .event.is-on > * { opacity: 1; transform: none; }
.motion .event.is-on .event__node { transform: none; }
.motion .event.is-on .event__type { transition-delay: .08s; }
.motion .event.is-on .event__title { transition-delay: .14s; }
.motion .event.is-on .event__place { transition-delay: .2s; }
@media (max-width: 900px) {
  /* 2行: 日付・種別 / タイトル・場所 */
  .event { grid-template-columns: auto 1fr; gap: 6px 16px; padding: 18px 0; }
  .event__node { top: 26px; margin-top: 0; }
  .event__title, .event__place, .event__link { grid-column: 1 / -1; }
  .event__type em { margin: 0 0 0 8px; }
}

/* =========================================================
   04 DISCOVERY
   ========================================================= */
.discovery { position: relative; }
.discovery__stage { padding: clamp(96px, 14vh, 160px) var(--gutter); max-width: calc(var(--maxw) + var(--gutter) * 2); margin: 0 auto; }
.discovery__label { color: var(--ink); }
.d-quotes { list-style: none; margin: 40px 0 80px; padding: 0; }
.d-quote { margin: 0 0 22px; font: 500 clamp(21px, 2.5vw, 38px)/1.7 var(--f-mincho); letter-spacing: .06em; color: var(--ink-70); }
.d-question { margin: 0 0 80px; font: 700 clamp(40px, 7vw, 112px)/1.22 var(--f-mincho); letter-spacing: .02em; color: var(--ink); }
.d-question span { display: block; }
.d-question em { font-style: normal; position: relative; display: inline-block; }
.d-question em::after { content: ""; position: absolute; left: 0; right: 0; bottom: .06em; height: .09em; background: var(--orange); transform-origin: left; }
.d-assets { position: relative; }
.d-assets__lines { display: none; }
.d-assets__nodes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px 20px; }
.asset { display: flex; flex-direction: column; gap: 8px; }
.asset__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 5px rgba(16, 28, 44, .08); transition: background .6s, box-shadow .6s; }
.asset__en { font: 500 13px/1 var(--f-latin); letter-spacing: .26em; }
.asset__ja { font: 400 13px/1.5 var(--f-gothic); color: var(--ink-70); }
.d-closing { margin: 72px 0 0; font: 500 clamp(18px, 1.8vw, 26px)/1.9 var(--f-mincho); letter-spacing: .05em; }

/* motion: sticky の舞台で、段階（data-step）ごとに入れ替える */
.motion .discovery { height: 560svh; }
.motion .discovery__stage { position: sticky; top: 0; height: 100svh; padding-top: calc(var(--header-h) + 5vh); padding-bottom: 6vh; overflow: hidden; }
.motion .d-quotes { position: absolute; left: var(--gutter); right: var(--gutter); top: 50%; transform: translateY(-50%); margin: 0; }
.motion .d-quote { opacity: 0; transform: translateY(.6em); transition: opacity 1s ease, transform 1.2s var(--ease-out), color .8s ease; }
.motion .d-quote.is-on { opacity: 1; transform: none; }
.motion .d-quote.is-past { opacity: .28; }
.motion .discovery[data-step="q"] .d-quotes, .motion .discovery[data-step="assets"] .d-quotes, .motion .discovery[data-step="close"] .d-quotes { opacity: 0; transform: translateY(calc(-50% - 40px)); transition: opacity .8s ease, transform 1.2s var(--ease-out); }
.motion .d-quotes { transition: opacity .8s ease, transform 1.2s var(--ease-out); }
.motion .d-question { position: absolute; left: var(--gutter); right: var(--gutter); top: 50%; transform: translateY(-50%); margin: 0; transition: transform 1.4s var(--ease-out), font-size 1.4s var(--ease-out), top 1.4s var(--ease-out); }
.motion .d-question span { clip-path: inset(0 0 100% 0); transform: translateY(30%); transition: clip-path 1.2s var(--ease-out), transform 1.2s var(--ease-out); }
.motion .d-question span:nth-child(2) { transition-delay: .18s; }
.motion .d-question span:nth-child(3) { transition-delay: .36s; }
.motion .d-question em::after { transform: scaleX(0); transition: transform 1.1s var(--ease-out) .9s; }
.motion .discovery:is([data-step="q"], [data-step="assets"], [data-step="close"]) .d-question span { clip-path: inset(-20% 0 -20% 0); transform: none; }
.motion .discovery:is([data-step="q"], [data-step="assets"], [data-step="close"]) .d-question em::after { transform: none; }
.motion .discovery:is([data-step="assets"], [data-step="close"]) .d-question { top: calc(var(--header-h) + 9vh); transform: none; font-size: clamp(24px, 2.6vw, 40px); }
.motion .d-assets { position: absolute; left: var(--gutter); right: var(--gutter); top: 34%; bottom: 17%; }
.motion .d-assets__lines { display: block; position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.motion .d-assets__lines path { fill: none; stroke: var(--ink-15); stroke-width: 1; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.4s var(--ease-io), stroke .8s; }
.motion .discovery:is([data-step="assets"], [data-step="close"]) .d-assets__lines path { stroke-dashoffset: 0; }
.motion .d-assets__nodes { display: block; position: absolute; inset: 0; }
.motion .asset { position: absolute; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%); transform: translate(-5px, -5px); }
.motion .asset--r { align-items: flex-end; text-align: right; transform: translate(calc(-100% + 5px), -5px); }
.motion .asset__dot { transform: scale(0); transition: transform .8s var(--ease-out) calc(var(--i) * 90ms), background .6s, box-shadow .6s; }
.motion .asset__en, .motion .asset__ja { opacity: 0; transform: translateY(6px); transition: opacity .9s ease calc(var(--i) * 90ms + .3s), transform 1.1s var(--ease-out) calc(var(--i) * 90ms + .3s); }
.motion .discovery:is([data-step="assets"], [data-step="close"]) .asset__dot { transform: none; }
.motion .discovery:is([data-step="assets"], [data-step="close"]) .asset__en, .motion .discovery:is([data-step="assets"], [data-step="close"]) .asset__ja { opacity: 1; transform: none; }
.motion .discovery[data-step="close"] .asset__dot { background: var(--orange); box-shadow: 0 0 0 6px var(--orange-soft); }
.motion .discovery[data-step="close"] .d-assets__lines path { stroke: rgba(232, 117, 50, .45); }
.motion .d-closing { position: absolute; left: var(--gutter); right: var(--gutter); bottom: 6vh; margin: 0; opacity: 0; transform: translateY(12px); transition: opacity 1s ease, transform 1.2s var(--ease-out); }
.motion .discovery[data-step="close"] .d-closing { opacity: 1; transform: none; }
.motion .discovery__label { position: relative; z-index: 1; }
@media (max-width: 760px) {
  .d-assets__nodes { grid-template-columns: 1fr 1fr; }
  .motion .discovery { height: 460svh; }
  .motion .d-quotes { top: 46%; }
  .motion .d-question { font-size: clamp(34px, 10.4vw, 48px); }
  .motion .discovery:is([data-step="assets"], [data-step="close"]) .d-question { font-size: 22px; top: calc(var(--header-h) + 6vh); }
  .motion .d-assets { top: 30%; bottom: 26%; }
  .motion .d-assets__lines { display: none; }
  .motion .d-assets__nodes { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 16px; align-content: center; }
  .motion .asset, .motion .asset--r { position: static; transform: none; align-items: flex-start; text-align: left; }
  .asset__ja { font-size: 12px; }
  .motion .d-closing { font-size: 17px; bottom: 7vh; }
}

/* =========================================================
   05 OUR APPROACH
   ========================================================= */
.approach__stage { padding: clamp(96px, 14vh, 160px) var(--gutter); max-width: calc(var(--maxw) + var(--gutter) * 2); margin: 0 auto; display: grid; grid-template-columns: 5fr 7fr; gap: 6vw; align-items: center; }
.approach__copy { margin: 36px 0 0; font: 400 15px/2 var(--f-gothic); letter-spacing: .05em; color: var(--ink-70); }
.approach__copy strong { display: block; margin-top: 14px; font: 600 clamp(19px, 1.7vw, 24px)/1.8 var(--f-mincho); color: var(--ink); letter-spacing: .05em; }
.approach__diagram { position: relative; min-height: 520px; }
.approach__lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.approach__lines path { fill: none; stroke: var(--ink-15); stroke-width: 1.1; }
.approach__lines path.is-hot { stroke: var(--orange); stroke-width: 1.6; }
.approach__lines path.is-out { stroke: var(--orange); stroke-width: 2; }
.approach__assets { list-style: none; margin: 0; padding: 0; position: absolute; left: 0; top: 0; bottom: 0; display: flex; flex-direction: column; justify-content: space-between; }
.approach__asset { display: flex; align-items: center; gap: 12px; font: 500 12px/1 var(--f-latin); letter-spacing: .24em; transition: color .6s; }
.approach__asset i { width: 9px; height: 9px; border-radius: 50%; background: var(--ink); flex: none; transition: background .6s, box-shadow .6s; }
.approach__asset small { font: 500 13px/1.3 var(--f-gothic); letter-spacing: .04em; color: var(--orange-ink); max-width: 0; overflow: hidden; white-space: nowrap; opacity: 0; transition: max-width 1s var(--ease-out), opacity .8s; }
.approach__asset.is-hot i { background: var(--orange); box-shadow: 0 0 0 5px var(--orange-soft); }
.approach__asset.is-hot small { max-width: 12em; opacity: 1; }
.approach__ai { position: absolute; left: 58%; top: 50%; transform: translate(-50%, -50%); width: 96px; height: 96px; border-radius: 50%; border: 1px solid var(--ink); display: grid; place-items: center; font: 400 22px/1 var(--f-latin); letter-spacing: .12em; background: var(--ivory); transition: border-color .8s, box-shadow .8s, color .8s; }
.approach__ai.is-hot { border-color: var(--orange); color: var(--orange-ink); box-shadow: 0 0 0 10px var(--orange-soft); }
.approach__out { position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; align-items: flex-end; gap: 10px; text-align: right; }
.approach__out small { font: 500 11px/1 var(--f-latin); letter-spacing: .3em; color: var(--orange-ink); }
.approach__out span { font: 700 clamp(20px, 2vw, 30px)/1.3 var(--f-mincho); letter-spacing: .06em; }
.approach__formula { position: absolute; left: 30%; right: 0; bottom: -8px; margin: 0; font: 500 13px/1.8 var(--f-gothic); letter-spacing: .06em; color: var(--ink-70); text-align: center; }
.approach__formula b { color: var(--orange-ink); font-weight: 500; white-space: nowrap; }
.motion .approach { height: 420svh; }
.motion .approach__stage { position: sticky; top: 0; height: 100svh; padding-top: calc(var(--header-h) + 4vh); padding-bottom: 4vh; }
.motion .approach__diagram { height: min(64svh, 560px); min-height: 0; }
.motion .approach__asset { opacity: 0; transform: translateX(-12px); transition: opacity .8s ease calc(var(--i) * 70ms), transform 1s var(--ease-out) calc(var(--i) * 70ms), color .6s; }
.motion .approach.is-s1 .approach__asset { opacity: 1; transform: none; }
.motion .approach__ai { opacity: 0; transform: translate(-50%, -50%) scale(.6); transition: opacity .8s ease, transform 1s var(--ease-out), border-color .8s, box-shadow .8s, color .8s; }
.motion .approach.is-s2 .approach__ai { opacity: 1; transform: translate(-50%, -50%); }
.motion .approach__out { opacity: 0; transform: translate(14px, -50%); transition: opacity .9s ease, transform 1.1s var(--ease-out); }
.motion .approach.is-s4 .approach__out { opacity: 1; transform: translate(0, -50%); }
.motion .approach__formula { opacity: 0; transition: opacity .8s ease; }
.motion .approach.is-s3 .approach__formula { opacity: 1; }
.motion .approach__copy strong { background: linear-gradient(var(--orange-soft), var(--orange-soft)) no-repeat 0 88% / 0% 40%; transition: background-size 1.4s var(--ease-out); }
.motion .approach.is-s5 .approach__copy strong { background-size: 100% 40%; }
@media (max-width: 900px) {
  .approach__stage { grid-template-columns: 1fr; gap: 28px; align-content: start; }
  .approach__head .sec-title { font-size: clamp(28px, 8vw, 40px); }
  .approach__copy { margin-top: 16px; font-size: 13.5px; line-height: 1.85; }
  .approach__copy strong { font-size: 17px; margin-top: 8px; }
  .approach__diagram { min-height: 440px; }
  .approach__assets { position: absolute; left: 0; right: 0; top: 0; bottom: auto; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: 12px 16px; }
  .approach__asset { font-size: 10.5px; letter-spacing: .16em; gap: 8px; }
  .approach__asset small { display: none; }
  .approach__ai { left: 50%; top: 56%; width: 72px; height: 72px; font-size: 18px; }
  .approach__out { right: 0; left: 0; top: auto; bottom: 46px; transform: none; align-items: center; text-align: center; }
  .motion .approach.is-s4 .approach__out { transform: none; }
  .motion .approach__out { transform: translateY(12px); }
  .approach__formula { left: 0; bottom: 0; font-size: 11.5px; line-height: 1.7; }
  .approach__ai { top: 50%; }
  .motion .approach { height: 360svh; }
  .motion .approach__diagram { height: auto; min-height: 0; flex: 1; }
  .motion .approach__stage { display: flex; flex-direction: column; align-items: stretch; gap: 18px; }
  .approach__stage { align-items: stretch; }
}

/* =========================================================
   06 FIND YOUR NEXT MOVE
   ========================================================= */
.issues { background: var(--ivory-2); }
.issues .sec-head { max-width: var(--maxw); }
.issues__grid { list-style: none; margin: 0 auto; padding: 0; max-width: var(--maxw); display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 48px; counter-reset: iss; }
.issue { position: relative; }
.issue__btn {
  width: 100%; display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 14px;
  padding: 24px 4px 24px 0; background: none; border: 0; border-bottom: 1px solid var(--ink-15);
  color: var(--ink); text-align: left; cursor: pointer; font: inherit;
  transition: color .3s;
}
.issue__num { font: 400 12px/1 var(--f-latin); letter-spacing: .2em; color: var(--ink-45); transition: color .4s; }
.issue__label { font: 500 clamp(15px, 1.25vw, 18px)/1.6 var(--f-gothic); letter-spacing: .04em; }
.issue__add { font: 500 10.5px/1 var(--f-latin); letter-spacing: .22em; white-space: nowrap; padding: 9px 12px; border: 1px solid var(--ink-15); border-radius: 999px; color: var(--ink-70); transition: all .35s var(--ease-out); }
.issue__add b { font-weight: 500; }
.issue__btn::after { content: ""; position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; background: var(--orange); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease-out); }
.issue__btn:hover .issue__add { border-color: var(--ink); color: var(--ink); }
.issue__btn[aria-pressed="true"] .issue__num { color: var(--orange-ink); }
.issue__btn[aria-pressed="true"]::after { transform: none; }
.issue__btn[aria-pressed="true"] .issue__add { background: var(--orange); border-color: var(--orange); color: #fff; }
.motion .issue { opacity: 0; transform: translateY(8px); transition: opacity .8s ease calc(var(--i) * 60ms), transform 1s var(--ease-out) calc(var(--i) * 60ms); }
.motion .issues.is-in .issue { opacity: 1; transform: none; }
/* 表示されたとき「＋ MY ISSUES」を上から順に一度だけ光らせる（選べるボタンだと伝える） */
.issues.is-hint .issue__btn[aria-pressed="false"] .issue__add { animation: issue-hint .8s ease-in-out calc(400ms + var(--i) * 200ms) 1 both; }
@keyframes issue-hint {
  0%, 100% { background: transparent; border-color: var(--ink-15); color: var(--ink-70); box-shadow: 0 0 0 0 rgba(232, 117, 50, 0); }
  40% { background: var(--orange); border-color: var(--orange); color: #fff; box-shadow: 0 0 0 6px rgba(232, 117, 50, .18); }
}
.basket {
  position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 35;
  display: flex; align-items: center; gap: 18px;
  padding: 10px 10px 10px 22px; border-radius: 999px;
  background: var(--navy); color: var(--ivory);
  box-shadow: 0 12px 40px rgba(11, 20, 34, .28);
  transform: translate(-50%, 140%); transition: transform .7s var(--ease-out);
}
.basket.is-shown { transform: translate(-50%, 0); }
.basket__count { margin: 0; font: 400 11px/1 var(--f-latin); letter-spacing: .26em; white-space: nowrap; }
.basket__count b { display: inline-block; min-width: 1ch; font-weight: 500; font-size: 14px; color: var(--orange); transition: transform .4s var(--ease-out); }
.basket__count b.is-bump { transform: scale(1.5); }
.basket__chips { list-style: none; margin: 0; padding: 0; display: flex; gap: 5px; }
.basket__chips li { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); }
.basket__go { display: inline-flex; gap: 10px; padding: 12px 18px; border-radius: 999px; background: var(--orange); color: #fff; font: 500 13px/1 var(--f-gothic); letter-spacing: .06em; text-decoration: none; white-space: nowrap; transition: opacity .3s, background .3s; }
.basket__go[aria-disabled="true"] { background: rgba(245, 241, 232, .14); color: var(--iv-55); pointer-events: none; }
.chip-fly { position: fixed; z-index: 36; left: 0; top: 0; padding: 7px 12px; border-radius: 999px; background: var(--orange); color: #fff; font: 500 12px/1.2 var(--f-gothic); white-space: nowrap; pointer-events: none; }
@media (max-width: 760px) {
  .issues__grid { grid-template-columns: 1fr; }
  .issue__btn { grid-template-columns: 30px 1fr; padding: 18px 0; row-gap: 10px; }
  .issue__add { grid-column: 2; justify-self: start; padding: 7px 10px; font-size: 9.5px; }
  .basket { left: 12px; right: 12px; transform: translateY(140%); justify-content: space-between; padding-left: 18px; gap: 10px; }
  .basket.is-shown { transform: none; }
  .basket__chips { display: none; }
}

/* =========================================================
   07 YOUR SOLUTION
   ========================================================= */
.solution__flow { position: relative; max-width: var(--maxw); margin: 0 auto; }
.solution__chips { list-style: none; margin: 0 0 64px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.solution__chips li { padding: 9px 14px; border: 1px solid var(--iv-30); border-radius: 999px; font: 400 13px/1.3 var(--f-gothic); color: var(--iv-80); }
.solution__chips li.is-hot { border-color: var(--orange); color: var(--ivory); }
.solution__lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.solution__lines path { fill: none; stroke: rgba(232, 117, 50, .5); stroke-width: 1; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.2s var(--ease-io) calc(var(--i) * 80ms); }
.solution__lines.is-drawn path { stroke-dashoffset: 0; }
.solution__recs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--n, 3), 1fr); gap: 28px; }
.rec { position: relative; padding: 34px 30px 30px; background: var(--navy-2); display: flex; flex-direction: column; }
.rec::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 2px; background: var(--orange); transform-origin: left; }
.rec__rank { display: flex; align-items: baseline; gap: 14px; margin: 0 0 18px; font: 500 11px/1 var(--f-latin); letter-spacing: .3em; color: var(--orange); }
.rec__rank span { font: 300 40px/1 var(--f-latin); letter-spacing: 0; color: var(--iv-30); }
.rec__solution { margin: 0 0 24px; font: 600 clamp(19px, 1.65vw, 24px)/1.65 var(--f-mincho); letter-spacing: .04em; }
.rec__means { margin: 0 0 22px; padding-top: 18px; border-top: 1px solid var(--iv-12); }
.rec__kicker { margin: 0 0 8px; font: 500 10.5px/1.4 var(--f-latin); letter-spacing: .24em; color: var(--iv-55); }
.rec__name { margin: 0 0 8px; font: 600 18px/1.4 var(--f-mincho); letter-spacing: .04em; color: var(--ivory); }
.rec__desc { margin: 0; font: 400 14px/1.9 var(--f-gothic); color: var(--iv-80); }
.rec__why { margin: 0 0 26px; padding: 16px 18px; border-left: 2px solid var(--orange); background: rgba(232, 117, 50, .07); font: 500 14px/1.9 var(--f-gothic); color: var(--ivory); }
.rec__why small { display: block; margin-bottom: 6px; font: 500 10px/1 var(--f-latin); letter-spacing: .3em; color: var(--orange); }
.rec__cta { margin-top: auto; align-self: flex-start; display: inline-flex; gap: 10px; font: 500 13px/1 var(--f-gothic); letter-spacing: .06em; text-decoration: none; padding-bottom: 6px; border-bottom: 1px solid var(--iv-30); transition: border-color .3s; }
.rec__cta span { color: var(--orange); }
.rec__cta:hover { border-color: var(--orange); }
.motion .rec::before { transform: scaleX(0); transition: transform 1s var(--ease-out) calc(var(--i) * 140ms + .3s); }
.motion .rec > * { opacity: 0; transform: translateY(10px); transition: opacity .8s ease calc(var(--i) * 140ms + .5s), transform 1s var(--ease-out) calc(var(--i) * 140ms + .5s); }
.motion .solution__recs.is-in .rec::before { transform: none; }
.motion .solution__recs.is-in .rec > * { opacity: 1; transform: none; }
.solution__empty { margin: 0; padding: 40px 0; font: 400 15px/2 var(--f-gothic); color: var(--iv-55); }
.solution__empty a { display: inline-flex; gap: 8px; margin-left: 10px; color: var(--ivory); }
.solution__empty a span { color: var(--orange); }
.solution__all { max-width: var(--maxw); margin: 72px auto 0; } /* 選んだ結果3件が主役。一覧は参照用（文字は小さく、ただし読める濃さで） */
.solution__all-label { margin: 0 0 12px; font: 400 11px/1 var(--f-latin); letter-spacing: .32em; color: var(--iv-55); }
.solution__all-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--iv-12); }
.solution__all-list li { display: grid; grid-template-columns: 1fr 2fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--iv-12); }
.solution__all-list b { font: 600 15px/1.5 var(--f-mincho); letter-spacing: .04em; }
.solution__all-list b small { display: block; font: 500 10px/1.6 var(--f-latin); letter-spacing: .24em; color: var(--iv-55); }
.solution__all-list p { margin: 0; font: 400 13px/1.85 var(--f-gothic); color: var(--iv-80); }
.solution__all-list li.is-rec b { color: var(--orange); }
.solution__all-link { color: var(--orange); text-decoration: none; white-space: nowrap; }
.solution__all-link span { margin-left: .3em; }
.solution__all-link:hover { text-decoration: underline; }
@media (max-width: 900px) {
  .solution__recs { grid-template-columns: 1fr; }
  .solution__lines { display: none; }
  .solution__chips { margin-bottom: 32px; }
  .solution__all-list li { grid-template-columns: 1fr; gap: 6px; }
}

/* =========================================================
   05.5 AI LEVEL CHECK（外部の診断サービスへの入口。セクションではなく帯として控えめに）
   ========================================================= */
.levelcheck { padding-top: clamp(48px, 8vh, 88px); padding-bottom: clamp(24px, 4vh, 40px); }
.levelcheck__card { max-width: var(--maxw); margin: 0 auto; display: grid; grid-template-columns: 7fr 5fr; gap: 6vw; align-items: center; padding: clamp(36px, 5vw, 64px); background: var(--ivory-2); }
.levelcheck__label { margin-bottom: 18px; }
.levelcheck__title { margin: 0 0 22px; font: 500 clamp(24px, 2.6vw, 38px)/1.5 var(--f-mincho); letter-spacing: .05em; }
.levelcheck__lead { margin: 0 0 14px; font: 500 clamp(15px, 1.2vw, 17px)/1.95 var(--f-mincho); letter-spacing: .04em; }
.levelcheck__desc { margin: 0; font: 400 14px/1.9 var(--f-gothic); color: var(--ink-70); }
.levelcheck__steps { list-style: none; margin: 0 0 22px; padding: 0; display: flex; align-items: flex-end; gap: 8px; height: 76px; }
.levelcheck__steps li { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 8px; height: 100%; }
.levelcheck__steps i { display: block; width: 100%; background: var(--ink-15); border-radius: 1px; transition: background .6s, transform .9s var(--ease-out); transform-origin: bottom; }
.levelcheck__steps li:nth-child(1) i { height: 14%; } .levelcheck__steps li:nth-child(2) i { height: 26%; } .levelcheck__steps li:nth-child(3) i { height: 38%; }
.levelcheck__steps li:nth-child(4) i { height: 50%; } .levelcheck__steps li:nth-child(5) i { height: 62%; } .levelcheck__steps li:nth-child(6) i { height: 74%; }
.levelcheck__steps li:nth-child(7) i { height: 86%; background: var(--orange); }
.levelcheck__steps span { font: 400 10.5px/1 var(--f-latin); letter-spacing: .1em; color: var(--ink-45); }
.levelcheck__facts { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.levelcheck__facts li { padding: 6px 12px; border: 1px solid var(--ink-15); border-radius: 999px; font: 500 12px/1 var(--f-gothic); letter-spacing: .06em; color: var(--ink-70); }
.levelcheck__cta { display: inline-flex; align-items: center; gap: 14px; padding: 17px 26px; border-radius: 999px; background: var(--ink); color: var(--ivory); font: 500 14.5px/1.4 var(--f-gothic); letter-spacing: .08em; text-decoration: none; transition: background .3s; }
.levelcheck__cta .ext { color: var(--orange); font-family: var(--f-latin); transition: transform .35s var(--ease-out); }
.levelcheck__cta:hover { background: var(--orange); }
.levelcheck__cta:hover .ext { color: #fff; transform: translate(2px, -2px); }
.levelcheck__host { margin: 12px 0 0; font: 400 11.5px/1.6 var(--f-gothic); letter-spacing: .03em; color: var(--ink-45); }
.motion .levelcheck__steps i { transform: scaleY(0); }
.motion .levelcheck.is-in .levelcheck__steps i { transform: none; }
.motion .levelcheck.is-in .levelcheck__steps li:nth-child(2) i { transition-delay: .08s; } .motion .levelcheck.is-in .levelcheck__steps li:nth-child(3) i { transition-delay: .16s; }
.motion .levelcheck.is-in .levelcheck__steps li:nth-child(4) i { transition-delay: .24s; } .motion .levelcheck.is-in .levelcheck__steps li:nth-child(5) i { transition-delay: .32s; }
.motion .levelcheck.is-in .levelcheck__steps li:nth-child(6) i { transition-delay: .4s; } .motion .levelcheck.is-in .levelcheck__steps li:nth-child(7) i { transition-delay: .48s; }
@media (max-width: 900px) {
  .levelcheck__card { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 760px) {
  .levelcheck__cta { width: 100%; justify-content: center; gap: 10px; padding-left: 14px; padding-right: 14px; font-size: 14px; letter-spacing: .04em; white-space: nowrap; }
  .levelcheck__card { padding: 32px 22px; }
}

/* =========================================================
   08 PROJECTS
   ========================================================= */
.projects { background: var(--navy-deep); }
.projects__list { max-width: var(--maxw); margin: 0 auto; display: flex; flex-direction: column; gap: clamp(80px, 14vh, 160px); }
.project { display: grid; grid-template-columns: 5fr 6fr; gap: 6vw; align-items: start; }
.project__info { position: sticky; top: calc(var(--header-h) + 6vh); }
.project__kind { margin: 0 0 16px; font: 500 11px/1 var(--f-latin); letter-spacing: .3em; color: var(--orange); }
.project__name { margin: 0 0 14px; font: 600 clamp(26px, 2.6vw, 38px)/1.4 var(--f-mincho); letter-spacing: .04em; }
.project__summary { margin: 0 0 28px; font: 400 15px/1.9 var(--f-gothic); color: var(--iv-80); }
.project__visual { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--navy-2); }
.project__visual img { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.project__visual--mark { display: grid; place-items: center; }
/* 画像の中を、ストーリーの段階に合わせてカメラのように移動する（元画像の実寸で置き、transform で寄せる） */
.project__visual--tour { background: #EEF0FA; }
.project__visual--tour img { position: absolute; left: 0; top: 0; width: auto; height: auto; max-width: none; object-fit: none; opacity: 1; transform-origin: 0 0; transition: transform 1.5s var(--ease-io), filter 1.2s ease; will-change: transform; }
.project__visual--tour.is-issue img { filter: grayscale(.85) brightness(.55); }
.project__lens { position: absolute; left: 14px; bottom: 12px; padding: 6px 10px; background: rgba(16, 28, 44, .78); font: 500 11px/1 var(--f-latin); letter-spacing: .26em; color: var(--ivory); transition: opacity .4s ease; }
.project__lens:empty { opacity: 0; }
.project__note { margin: 10px 0 0; font: 400 11.5px/1.6 var(--f-gothic); letter-spacing: .02em; color: var(--iv-55); }
.project__visual--mark svg { width: 70%; height: 70%; }
.project__visual--mark circle { fill: var(--ivory); }
.project__visual--mark line { stroke: var(--iv-30); stroke-width: 1; vector-effect: non-scaling-stroke; }
.project__visual--mark circle.hot { fill: var(--orange); }
.project__link { display: inline-block; margin-top: 18px; font: 400 11px/1 var(--f-latin); letter-spacing: .26em; color: var(--iv-80); }
.story { position: relative; list-style: none; margin: 0; padding: 0 0 0 38px; }
.story__line { position: absolute; left: 4px; top: 8px; bottom: 8px; width: 1px; background: var(--iv-12); }
.story__line i { position: absolute; inset: 0; background: linear-gradient(var(--iv-55), var(--orange)); transform-origin: top; transform: scaleY(var(--fill, 1)); }
.story__step { position: relative; padding: 0 0 clamp(36px, 7vh, 64px); }
.story__step:last-child { padding-bottom: 0; }
.story__step::before { content: ""; position: absolute; left: -38px; top: 6px; width: 9px; height: 9px; border-radius: 50%; background: var(--navy-deep); border: 1px solid var(--iv-55); transition: background .5s, border-color .5s, box-shadow .5s; }
.story__step.is-on::before { background: var(--ivory); border-color: var(--ivory); }
.story__step:last-child.is-on::before { background: var(--orange); border-color: var(--orange); box-shadow: 0 0 0 6px var(--orange-soft); }
.story__k { margin: 0 0 10px; font: 500 11px/1 var(--f-latin); letter-spacing: .3em; color: var(--iv-55); }
.story__k em { font-style: normal; margin-left: 10px; font: 400 11px/1 var(--f-gothic); letter-spacing: .1em; }
.story__v { margin: 0; font: 500 clamp(16px, 1.35vw, 20px)/1.85 var(--f-mincho); letter-spacing: .04em; }
.motion .story__step .story__k, .motion .story__step .story__v { opacity: .18; transition: opacity .8s ease; }
.motion .story__step.is-on .story__k, .motion .story__step.is-on .story__v { opacity: 1; }
.motion .story__step.is-on .story__k { color: var(--ivory); }
@media (max-width: 900px) {
  .project { grid-template-columns: 1fr; gap: 36px; }
  .project__info { position: static; }
}

/* =========================================================
   08.5 SPEAKING & WORKSHOPS（主軸の後ろに置く「もう一つの入口」。CTAは塗りでなく線で控えめに）
   ========================================================= */
.speaking { background: var(--navy); border-top: 1px solid var(--iv-12); }
.speaking__body { max-width: var(--maxw); margin: 0 auto; }
.speaking__grid { display: grid; grid-template-columns: 6fr 5fr; gap: 6vw; align-items: start; }
.speaking__lead { margin: 0 0 28px; font: 500 clamp(18px, 1.6vw, 24px)/1.9 var(--f-mincho); letter-spacing: .05em; }
.speaking__desc { margin: 0 0 44px; font: 400 15px/2 var(--f-gothic); letter-spacing: .04em; color: var(--iv-80); }
.speaking__stance { position: relative; margin: 0; padding: 4px 0 4px 26px; font: 500 clamp(15px, 1.25vw, 18px)/1.95 var(--f-mincho); letter-spacing: .04em; }
.speaking__stance::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--orange); }
.speaking__k { margin: 0 0 14px; font: 400 11px/1 var(--f-latin); letter-spacing: .32em; color: var(--iv-55); }
.speaking__formats { list-style: none; margin: 0 0 44px; padding: 0; border-top: 1px solid var(--iv-12); }
.speaking__formats li { display: flex; gap: 18px; align-items: baseline; padding: 17px 0; border-bottom: 1px solid var(--iv-12); font: 500 15.5px/1.6 var(--f-gothic); letter-spacing: .04em; }
.speaking__formats li span { flex: none; font: 400 11px/1 var(--f-latin); letter-spacing: .2em; color: var(--orange); }
.speaking__records { list-style: none; margin: 0; padding: 0; }
.speaking__records li { display: grid; grid-template-columns: 74px 1fr; column-gap: 14px; padding: 8px 0; }
.speaking__records time { grid-row: span 2; font: 400 11px/1.9 var(--f-latin); letter-spacing: .16em; color: var(--iv-55); }
.speaking__records b { font: 500 14px/1.7 var(--f-gothic); letter-spacing: .03em; }
.speaking__records small { font: 400 12px/1.7 var(--f-gothic); color: var(--iv-55); }
.voice { margin-top: clamp(64px, 10vh, 104px); }
.voice__title { margin: 0 0 26px; font: 500 clamp(20px, 1.8vw, 26px)/1.5 var(--f-mincho); letter-spacing: .05em; }
.voice__proof { display: flex; align-items: flex-end; gap: 32px; margin: 0 0 34px; padding-bottom: 28px; border-bottom: 1px solid var(--iv-12); }
.voice__stat { flex: none; margin: 0; display: flex; align-items: baseline; gap: 6px; }
.voice__stat small { align-self: center; margin-right: 14px; font: 500 15px/1.4 var(--f-gothic); letter-spacing: .1em; color: var(--iv-80); }
.voice__stat b { font: 500 clamp(56px, 6vw, 84px)/1 var(--f-latin); letter-spacing: .01em; color: var(--orange); font-variant-numeric: tabular-nums; text-align: right; }
.voice__stat span { font: 400 clamp(22px, 2vw, 30px)/1 var(--f-latin); color: var(--orange); }
.voice__note { max-width: 560px; margin: 0; font: 400 11.5px/1.85 var(--f-gothic); letter-spacing: .02em; color: var(--iv-55); }
.voice__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 1100px) { .voice__list { grid-template-columns: repeat(2, 1fr); } }
.voice__card { display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 26px 26px 22px; background: var(--navy-2); border-top: 1px solid var(--orange); }
.voice__card p { margin: 0; font: 400 14.5px/1.95 var(--f-gothic); letter-spacing: .03em; color: var(--iv-80); }
.voice__card small { font: 400 11px/1 var(--f-latin); letter-spacing: .2em; color: var(--iv-55); }
.voice__card small::before { content: "— "; }
.speaking__minilink { display: inline-flex; gap: 8px; align-items: baseline; margin-top: 34px; font: 400 13px/1.7 var(--f-gothic); letter-spacing: .03em; color: var(--iv-80); text-decoration: underline; text-decoration-color: var(--iv-30); text-underline-offset: 5px; transition: color .3s, text-decoration-color .3s; }
.speaking__minilink .ext { color: var(--orange); font-family: var(--f-latin); }
.speaking__minilink:hover { color: var(--ivory); text-decoration-color: var(--orange); }
.speaking__foot { margin-top: clamp(56px, 9vh, 88px); }
.speaking__cta { display: inline-flex; align-items: center; gap: 14px; padding: 16px 26px; border: 1px solid var(--orange); border-radius: 999px; color: var(--ivory); font: 500 14px/1.4 var(--f-gothic); letter-spacing: .08em; text-decoration: none; transition: background .3s, color .3s; }
.speaking__cta span { color: var(--orange); transition: transform .35s var(--ease-out), color .3s; }
.speaking__cta:hover { background: var(--orange); color: #fff; }
.speaking__cta:hover span { color: #fff; transform: translateX(4px); }
.motion .speaking__text > *, .motion .speaking__side > *, .motion .speaking .voice, .motion .speaking__foot { opacity: 0; transform: translateY(14px); transition: opacity 1s ease, transform 1.2s var(--ease-out); }
.motion .speaking.is-in .speaking__text > *, .motion .speaking.is-in .speaking__side > *, .motion .speaking.is-in .voice, .motion .speaking.is-in .speaking__foot { opacity: 1; transform: none; }
.motion .speaking.is-in .voice, .motion .speaking.is-in .speaking__foot { transition-delay: .5s; }
.motion .speaking.is-in .speaking__text > :nth-child(2) { transition-delay: .15s; }
.motion .speaking.is-in .speaking__text > :nth-child(3) { transition-delay: .3s; }
.motion .speaking.is-in .speaking__side > * { transition-delay: .35s; }
@media (max-width: 900px) {
  .speaking__grid { grid-template-columns: 1fr; gap: 56px; }
}
@media (max-width: 760px) {
  .speaking .sec-label__role { display: none; } /* ラベルが長く、スマホでは2行に割れるため */
  .voice__proof { flex-direction: column; align-items: flex-start; gap: 14px; }
  /* 参加者の声は横スクロールで流す */
  .voice__list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter); }
  .voice__list::-webkit-scrollbar { display: none; }
  .voice__card { flex: 0 0 78vw; scroll-snap-align: center; }
}

/* =========================================================
   08.7 TAMA AREA（対応エリア。SEO用の羅列に見せず、帯として静かに置く）
   ========================================================= */
.tama { border-top: 1px solid var(--ink-15); padding-top: clamp(72px, 11vh, 120px); padding-bottom: clamp(56px, 8vh, 88px); }
.tama__inner { max-width: var(--maxw); margin: 0 auto; display: grid; grid-template-columns: 5fr 7fr; gap: 4vw 6vw; align-items: end; }
.tama__title { margin: 0 0 20px; font: 500 clamp(24px, 2.8vw, 40px)/1.45 var(--f-mincho); letter-spacing: .05em; }
.tama__lead { margin: 0; font: 400 14.5px/2 var(--f-gothic); color: var(--ink-70); }
.tama__areas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink-15); border-left: 1px solid var(--ink-15); }
.tama__areas a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 22px 18px 20px; border-right: 1px solid var(--ink-15); border-bottom: 1px solid var(--ink-15); text-decoration: none; transition: background .3s; }
.tama__areas a:hover { background: var(--ivory-2); }
.tama__areas small { font: 500 10px/1.4 var(--f-latin); letter-spacing: .24em; color: var(--ink-45); }
.tama__areas small em { font-style: normal; margin-left: 8px; padding: 2px 6px; border: 1px solid var(--orange); color: var(--orange-ink); font: 500 10px/1 var(--f-gothic); letter-spacing: .08em; }
.tama__areas b { font: 600 clamp(20px, 1.9vw, 26px)/1.3 var(--f-mincho); letter-spacing: .06em; }
.tama__areas span { margin-top: auto; padding-top: 10px; font: 400 12px/1.6 var(--f-gothic); color: var(--ink-70); }
.tama__areas span::after { content: " →"; color: var(--orange); }
.tama__note { grid-column: 1 / -1; margin: 6px 0 0; font: 400 11.5px/1.9 var(--f-gothic); color: var(--ink-45); }
.tama__note b { margin-right: 10px; font-weight: 500; color: var(--ink-70); }
.tama__more { grid-column: 1 / -1; margin: 0; font: 500 13.5px/1.8 var(--f-gothic); }
.tama__more a { display: inline-flex; gap: 10px; text-underline-offset: 5px; }
.tama__more span { color: var(--orange); }
.speaking__region { margin: -24px 0 40px; font: 400 13.5px/1.9 var(--f-gothic); color: var(--iv-55); }
.site-footer__areas { margin: 0; font: 400 12px/1.8 var(--f-gothic); }
.site-footer__areas a { text-decoration: none; }
.site-footer__areas a:hover { text-decoration: underline; }
@media (max-width: 900px) {
  .tama__inner { grid-template-columns: 1fr; }
  .tama__areas { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================
   09 ABOUT
   ========================================================= */
.about__body { max-width: var(--maxw); margin: 0 auto; display: grid; grid-template-columns: 4fr 7fr; gap: 6vw; align-items: start; }
.about__photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--ivory-2); }
.about__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.about__message { margin: 0 0 32px; font: 600 clamp(22px, 2.3vw, 34px)/1.75 var(--f-mincho); letter-spacing: .05em; }
.about__name { margin: 0 0 6px; font: 600 20px/1.5 var(--f-mincho); letter-spacing: .12em; }
.about__name small { margin-left: 14px; font: 400 11px/1 var(--f-latin); letter-spacing: .3em; color: var(--ink-45); }
.about__role { margin: 0 0 22px; font: 400 13px/1.8 var(--f-gothic); color: var(--ink-70); }
.about__text { margin: 0; font: 400 14.5px/2 var(--f-gothic); color: var(--ink-70); }
.about__text strong { font-weight: 700; color: var(--ink); }
.about__creds { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--ink-15); }
.about__creds-label { margin: 0 0 14px; font: 500 10.5px/1 var(--f-latin); letter-spacing: .3em; color: var(--orange-ink); }
.about__creds ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 34px; }
.about__creds li { font: 400 13.5px/1.7 var(--f-gothic); color: var(--ink); }
.about__creds b { font-weight: 700; letter-spacing: .03em; }
.about__creds small { margin-left: 8px; font-size: 12px; color: var(--ink-45); }
.about__path { position: relative; max-width: var(--maxw); margin: clamp(72px, 12vh, 120px) auto 0; }
.about__path-line { position: absolute; left: 0; top: 0; width: 100%; height: 40px; overflow: visible; }
.about__path-line path { fill: none; stroke: var(--ink-15); stroke-width: 1; }
.about__path-line path.fill { stroke: var(--orange); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: var(--off, 0); }
.about__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; position: relative; }
.about__step { padding-top: 40px; position: relative; }
.about__step::before { content: ""; position: absolute; left: 0; top: 15px; width: 9px; height: 9px; border-radius: 50%; background: var(--ivory); border: 1px solid var(--ink-45); transition: background .5s, border-color .5s, box-shadow .5s; }
.about__step.is-on::before { background: var(--ink); border-color: var(--ink); }
.about__step:last-child.is-on::before { background: var(--orange); border-color: var(--orange); box-shadow: 0 0 0 6px var(--orange-soft); }
.about__step b { display: block; margin-bottom: 8px; font: 500 11px/1.5 var(--f-latin); letter-spacing: .24em; }
.about__step span { display: block; font: 400 13px/1.7 var(--f-gothic); color: var(--ink-70); }
.about__step small { display: block; margin-top: 6px; font: 400 12px/1.6 var(--f-gothic); color: var(--ink-45); }
.about__step:last-child b { color: var(--orange-ink); }
.motion .about__step > * { opacity: .25; transition: opacity .8s ease; }
.motion .about__step.is-on > * { opacity: 1; }
.motion .about__photo img { transform: scale(1.08); transition: transform 2.2s var(--ease-out); }
.motion .about__photo::after { content: ""; position: absolute; inset: 0; background: var(--ivory); transform-origin: top; transition: transform 1.4s var(--ease-io); }
.motion .about.is-in .about__photo img { transform: none; }
.motion .about.is-in .about__photo::after { transform: scaleY(0); }
@media (max-width: 900px) {
  .about__body { grid-template-columns: 1fr; }
  .about__photo { max-width: 360px; aspect-ratio: 1 / 1; }
  .about__path-line { display: none; }
  .about__steps { grid-template-columns: 1fr; gap: 0; padding-left: 26px; border-left: 1px solid var(--ink-15); }
  .about__step { padding: 0 0 26px; }
  .about__step::before { left: -31px; top: 3px; }
}

/* =========================================================
   10 IN ACTION — 縦型動画
   ========================================================= */
.action { overflow: hidden; }
.action__rail { margin: 0 calc(var(--gutter) * -1); perspective: 1400px; }
.action__track { list-style: none; margin: 0; padding: 20px var(--gutter) 30px; display: flex; gap: clamp(16px, 2vw, 28px); will-change: transform; transform-style: preserve-3d; }
.reel { flex: 0 0 clamp(210px, 19vw, 290px); transform-origin: 50% 60%; }
.reel a { display: block; text-decoration: none; }
.reel__media { position: relative; aspect-ratio: 9 / 16; overflow: hidden; background: var(--navy-2); }
.reel__media img, .reel__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.reel__media video { opacity: 0; transition: opacity .5s; }
.reel__media video.is-playing { opacity: 1; }
.reel__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11, 20, 34, 0) 45%, rgba(11, 20, 34, .85)); }
.reel__blank { position: absolute; inset: 0; background: radial-gradient(120% 70% at 30% 20%, #1D3150, var(--navy-2) 60%); }
.reel__blank i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: var(--iv-55); }
.reel__tag { position: absolute; left: 14px; top: 14px; z-index: 1; font: 500 10px/1 var(--f-latin); letter-spacing: .26em; color: var(--ivory); }
.reel__tag::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--orange); margin-right: 8px; vertical-align: 1px; }
.reel__play { position: absolute; right: 14px; top: 12px; z-index: 1; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--iv-55); display: grid; place-items: center; }
.reel__play::before { content: ""; border-left: 8px solid var(--ivory); border-top: 5px solid transparent; border-bottom: 5px solid transparent; margin-left: 2px; }
.reel__cap { position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 1; margin: 0; font: 400 13px/1.7 var(--f-gothic); color: var(--ivory); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.reel__meta { margin: 12px 0 0; font: 400 10.5px/1 var(--f-latin); letter-spacing: .24em; color: var(--iv-55); }
.reel__sample { margin-left: 8px; padding: 2px 5px; border: 1px solid var(--iv-30); font-size: 9px; }
@media (max-width: 760px) {
  .action__rail { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; perspective: none; }
  .action__rail::-webkit-scrollbar { display: none; }
  .action__track { transform: none !important; }
  .reel { flex-basis: 62vw; scroll-snap-align: center; }
}

/* =========================================================
   11 FINAL CTA
   ========================================================= */
.final { background: var(--navy); padding: clamp(140px, 24vh, 260px) var(--gutter) clamp(100px, 16vh, 180px); }
.final__inner { max-width: 980px; margin: 0 auto; text-align: center; }
.final__question { margin: 0 0 clamp(48px, 9vh, 88px); font: 700 clamp(34px, 5.4vw, 80px)/1.3 var(--f-mincho); letter-spacing: .03em; }
.final__question > span { display: inline-block; } /* 改行は言葉の切れ目だけ（「は」だけが次の行に落ちないように） */
.final__question em { font-style: normal; background: linear-gradient(var(--orange), var(--orange)) no-repeat 0 92% / 100% .08em; }
.final__text p { margin: 0 0 1.6em; font: 400 clamp(15px, 1.2vw, 18px)/2.1 var(--f-gothic); letter-spacing: .08em; color: var(--iv-80); }
.final__cta {
  display: inline-flex; align-items: center; gap: 16px; margin-top: 20px;
  padding: 22px 38px; border-radius: 999px; background: var(--orange); color: #fff;
  font: 500 16px/1 var(--f-gothic); letter-spacing: .1em; text-decoration: none;
  transition: background .35s, transform .35s var(--ease-out);
}
.final__cta span { transition: transform .35s var(--ease-out); }
.final__cta:hover { background: #F08A4B; }
.final__cta:hover span { transform: translateX(4px); }
.final__close { margin-top: clamp(120px, 22vh, 220px); }
.final__copy { margin: 0 0 32px; font: 500 clamp(20px, 2vw, 28px)/1.6 var(--f-mincho); letter-spacing: .1em; color: var(--iv-80); }
.final__logo { width: min(300px, 70vw); margin: 0 auto; }
.final__logo svg { width: 100%; height: auto; display: block; }
.final__logo .fl-mark { fill: var(--ivory); }
.final__logo .fl-accent { fill: #CA9452; transition: fill 1.2s ease; }
.final__logo.is-lit .fl-accent { animation: fl-lit 2.4s ease both; }
@keyframes fl-lit { 0% { fill: var(--orange); } 100% { fill: #CA9452; } }
.motion .final__question, .motion .final__text p, .motion .final__cta, .motion .final__close { opacity: 0; transform: translateY(12px); transition: opacity 1.1s ease, transform 1.3s var(--ease-out); }
.motion .final.is-in .final__question { opacity: 1; transform: none; }
.motion .final.is-in .final__text p { opacity: 1; transform: none; }
.motion .final.is-in .final__text p:nth-child(1) { transition-delay: .5s; }
.motion .final.is-in .final__text p:nth-child(2) { transition-delay: .8s; }
.motion .final.is-in .final__text p:nth-child(3) { transition-delay: 1.1s; }
.motion .final.is-in .final__cta { opacity: 1; transform: none; transition-delay: 1.4s; }
.motion .final__close.is-in { opacity: 1; transform: none; }

/* ---------- Footer ---------- */
.site-footer { background: var(--navy-deep); color: var(--iv-55); padding: 48px var(--gutter) calc(48px + env(safe-area-inset-bottom)); }
.site-footer__inner { max-width: var(--maxw); margin: 0 auto; display: flex; flex-wrap: wrap; gap: 14px 32px; align-items: center; font: 400 12.5px/1.8 var(--f-gothic); }
.site-footer p { margin: 0; }
.site-footer__name { color: var(--iv-80); }
.site-footer__links { list-style: none; margin: 0 0 0 auto; padding: 0; display: flex; gap: 22px; flex-wrap: wrap; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--ivory); }
.site-footer__copy { width: 100%; font: 400 11px/1 var(--f-latin); letter-spacing: .16em; }
@media (max-width: 760px) { .site-footer__links { margin: 0; } }

/* ---------- Reduced motion: 全要素を最終状態で ---------- */
.is-reduced .timeline__fill, .is-reduced .story__line i { transform: none; }

/* ---------- Mobile type scale（見出しの1文字だけの折り返しを防ぐ） ---------- */
@media (max-width: 760px) {
  .sec-title { font-size: clamp(23px, 6.8vw, 30px); }
  .sec { padding-top: 88px; padding-bottom: 88px; }
}

/* ---------- PCの読みやすさ ----------
   広い画面では本文・注釈・ラベルが小さく見えるので、1101px以上でだけ一回り大きくする（日本語 +1.5px / 英字ラベル +1px）。
   スマホ・タブレットの見た目は変えない。元のサイズを変えたときはここも合わせる */
@media (min-width: 1101px) {
  .site-nav ul a { font-size: 12px; }
  .site-nav__cta { font-size: 14.5px; }
  .sec-desc { font-size: 16.5px; }
  .link-pill { font-size: 12px; }
  .thought__meta { font-size: 12px; }
  .article__excerpt { font-size: 15.5px; }
  .article__read { font-size: 12px; }
  .event__type { font-size: 12px; }
  .event__place { font-size: 14.5px; }
  .event__link { font-size: 12px; }
  .asset__ja { font-size: 14.5px; }
  .approach__copy { font-size: 16.5px; }
  .approach__asset small { font-size: 14.5px; }
  .approach__out small { font-size: 12px; }
  .approach__formula { font-size: 14.5px; }
  .issue__add { font-size: 11.5px; }
  .basket__count { font-size: 12px; }
  .basket__go { font-size: 14.5px; }
  .chip-fly { font-size: 13.5px; }
  .solution__chips li { font-size: 14.5px; }
  .rec__rank { font-size: 12px; }
  .rec__kicker { font-size: 11.5px; }
  .rec__desc { font-size: 15.5px; }
  .rec__why { font-size: 15.5px; }
  .rec__why small { font-size: 11px; }
  .rec__cta { font-size: 14.5px; }
  .solution__empty { font-size: 16.5px; }
  .solution__all-label { font-size: 12px; }
  .solution__all-list b { font-size: 16.5px; }
  .solution__all-list b small { font-size: 11px; }
  .solution__all-list p { font-size: 14.5px; }
  .project__note { font-size: 13px; }
  .project__lens { font-size: 12px; }
  .levelcheck__desc { font-size: 15.5px; }
  .levelcheck__steps span { font-size: 11.5px; }
  .levelcheck__facts li { font-size: 13.5px; }
  .levelcheck__cta { font-size: 16px; }
  .levelcheck__host { font-size: 13px; }
  .project__kind { font-size: 12px; }
  .project__summary { font-size: 16.5px; }
  .project__link { font-size: 12px; }
  .story__k { font-size: 12px; }
  .story__k em { font-size: 12.5px; }
  .speaking__desc { font-size: 16.5px; }
  .speaking__k { font-size: 12px; }
  .speaking__formats li span { font-size: 12px; }
  .speaking__records time { font-size: 12px; }
  .speaking__records b { font-size: 15.5px; }
  .speaking__records small { font-size: 13.5px; }
  .voice__stat small { font-size: 16.5px; }
  .voice__note { font-size: 13px; }
  .voice__card p { font-size: 16px; }
  .voice__card small { font-size: 12px; }
  .speaking__minilink { font-size: 14.5px; }
  .speaking__cta { font-size: 15.5px; }
  .tama__lead { font-size: 16px; }
  .tama__areas small { font-size: 11px; }
  .tama__areas small em { font-size: 11.5px; }
  .tama__areas span { font-size: 13.5px; }
  .tama__note { font-size: 13px; }
  .speaking__region { font-size: 15px; }
  .site-footer__areas { font-size: 13.5px; }
  .about__name small { font-size: 12px; }
  .about__role { font-size: 14.5px; }
  .about__text { font-size: 16px; }
  .about__creds-label { font-size: 11.5px; }
  .about__creds li { font-size: 15px; }
  .about__step b { font-size: 12px; }
  .about__step span { font-size: 14.5px; }
  .about__step small { font-size: 13.5px; }
  .reel__tag { font-size: 11px; }
  .reel__cap { font-size: 14.5px; }
  .reel__meta { font-size: 11.5px; }
  .site-footer__inner { font-size: 14px; }
  .site-footer__copy { font-size: 12px; }
}
