.cb {
  color-scheme: light;
  --bg: #f8f6ef;
  --paper: #fffdf7;
  --ink: #202e29;
  --muted: #4d5f56;
  --green: #173f35;
  --gold: #765621;
  --line: #cfd6c9;
  --serif: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif CJK JP", serif;
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
}
.cb, .cb * { box-sizing: border-box; }
.cb { margin: 0; background: var(--bg); color: var(--ink); font: 1.0625rem/1.85 var(--sans); line-break: strict; }
.cb a { color: var(--green); text-underline-offset: .22em; }
.cb a:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.cb p, .cb h1, .cb h2, .cb h3, .cb ul, .cb figure { margin: 0; }
.cb img { display: block; max-width: 100%; }
.cb .shell { width: min(100% - 3rem, 73rem); margin-inline: auto; }
.cb .hero { background: #edece1; border-bottom: 1px solid var(--line); }
.cb .hero-inner { display: grid; grid-template-columns: 1.16fr 1fr; gap: clamp(2rem, 5vw, 5.5rem); align-items: center; padding-block: clamp(2.7rem, 6vw, 5rem); }
.cb .hero-inner > *, .cb .case > *, .cb .photo-grid > *, .cb .practice-grid > * { min-width: 0; }
.cb .kicker, .cb .chapter { font-size: .875rem; font-weight: 700; color: var(--gold); display: flex; align-items: center; flex-wrap: wrap; gap: .45em .65em; }
.cb .kicker a { color: inherit; }
.cb h1, .cb h2 { color: var(--green); font-family: var(--serif); font-weight: 700; overflow-wrap: anywhere; }
.cb h1 { margin-block: .7rem 1.25rem; font-size: clamp(2.08rem, 4.25vw, 3.5rem); line-height: 1.34; }
.cb h1 span { display: block; }
.cb .phrase { white-space: nowrap; }
.cb .hero-subtitle { max-width: 33rem; margin-bottom: 1rem; color: var(--green); font-size: clamp(1.05rem, 1.65vw, 1.3rem); font-weight: 700; line-height: 1.6; }
.cb .lead { max-width: 38rem; }
.cb .lead + .lead { margin-top: .8rem; }
.cb .byline { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem .9rem; margin-top: 1.55rem; color: var(--muted); font-size: .875rem; }
.cb .byline strong { color: var(--green); font-size: 1.12rem; }
.cb .hero-photo img, .cb .case-photo img { width: 100%; height: auto; }
.cb .hero-photo img { aspect-ratio: 1.08; object-fit: cover; object-position: center 55%; }
.cb figure { background: var(--paper); }
.cb figcaption { color: var(--muted); padding: .56rem .85rem; font-size: .85rem; line-height: 1.65; }
.cb figcaption span { display: inline; }
.cb .hero-photo figcaption span, .cb .case-photo figcaption span { color: var(--green); font-weight: 650; margin-inline-end: .45rem; }
.cb .contents { display: flex; flex-wrap: wrap; gap: .35rem 1.65rem; padding-block: 1rem; border-bottom: 1px solid var(--line); }
.cb .contents a { padding-block: .25rem; font-size: .9375rem; text-decoration: none; font-weight: 650; }
.cb .contents span { color: var(--gold); margin-inline-end: .32rem; }
.cb .section { padding-block: clamp(2.6rem, 6vw, 5rem); border-bottom: 1px solid var(--line); scroll-margin-top: 1rem; }
.cb .chapter span { display: inline-grid; place-items: center; font-size: .85rem; min-width: 2.1rem; min-height: 2.1rem; border: 1px solid #b6a584; border-radius: 50%; }
.cb h2 { margin-block: .55rem 1rem; font-size: clamp(1.68rem, 3.5vw, 2.5rem); line-height: 1.45; }
.cb .case { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(1.6rem, 5vw, 4.5rem); align-items: center; }
.cb .case-copy p + p { margin-top: 1rem; }
.cb .case-photo { border: 1px solid var(--line); }
.cb .section-intro, .cb .section-end { max-width: 54rem; }
.cb .practice-grid { display: grid; gap: .9rem; margin-block: 1.45rem; }
.cb .practice-grid section { display: grid; grid-template-columns: minmax(13rem, 1fr) minmax(0, 2.5fr); gap: .55rem 1.5rem; background: var(--paper); border: 1px solid var(--line); border-left: 3px solid #698678; padding: clamp(.95rem, 2.4vw, 1.65rem); }
.cb h3 { color: var(--green); font-size: 1.125rem; line-height: 1.55; margin-bottom: .45rem; }
.cb .practice-grid h3 { margin: 0; }
.cb .practice-grid h3 span { color: var(--gold); font-size: .85rem; margin-inline-end: .35em; }
.cb .practice-grid p + p { margin-top: .7rem; }
.cb .reference-links { margin-top: 1.55rem; }
.cb .reference-links h3 { font-size: 1rem; }
.cb .reference-links ul { display: flex; flex-wrap: wrap; gap: .32rem 1.2rem; padding-left: 1.15rem; color: var(--muted); font-size: .9rem; }
.cb .reference-links li { max-width: 100%; overflow-wrap: anywhere; }
.cb .photo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 1.35rem; }
.cb .photo-grid figure { border: 1px solid var(--line); }
.cb .photo-grid img { width: 100%; height: auto; aspect-ratio: 1 / 1.1; object-fit: cover; }
.cb .photo-grid .beijing { object-position: 46% 50%; }
.cb .photo-grid .shenzhen { object-position: center 36%; }
.cb .photo-grid .macao { object-position: center 25%; }
.cb .photo-grid .singapore { object-position: center 70%; }
.cb .photo-grid strong, .cb .photo-grid figcaption span { display: block; }
.cb .photo-grid strong { color: var(--green); font-size: 1rem; }
.cb .field-photos { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 1.55rem; scroll-margin-top: 1rem; }
.cb .field-photos h3 { font-family: var(--serif); font-size: clamp(1.25rem, 2.4vw, 1.65rem); }
.cb .field-photos .photo-grid { margin-top: .8rem; }
.cb .field-grid { grid-template-columns: repeat(3, 1fr); }
.cb .field-grid img { aspect-ratio: 4 / 3; }
.cb .field-grid .preparation { object-position: center 57%; }
.cb .field-grid .dinner { object-position: center 40%; }
.cb .field-grid + h3 { margin-top: 1.9rem; }
.cb .field-photos .event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 48rem; }
.cb .event-grid img { aspect-ratio: 4 / 3; }
.cb .event-grid .exhibition-program { object-position: center 48%; }
.cb .profile-card { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.65fr); background: var(--paper); border: 1px solid var(--line); }
.cb .profile-identity, .cb .profile-facts { padding: clamp(1.05rem, 3vw, 2.15rem); }
.cb .profile-identity { background: #e9ede2; }
.cb .profile-name { margin-bottom: .75rem; color: var(--green); line-height: 1.45; }
.cb .profile-name strong { font-family: var(--serif); font-size: clamp(1.65rem, 3vw, 2.2rem); }
.cb .profile-name span { display: block; margin-top: .15rem; color: var(--muted); font-size: .9rem; }
.cb .profile-identity p + p { margin-top: .45rem; }
.cb .profile-portrait-link { display: block; width: min(100%, 15rem); margin-top: 1rem; font-weight: 650; text-decoration: none; }
.cb .profile-portrait-link img { width: 100%; height: auto; margin-bottom: .65rem; border: 1px solid var(--line); }
.cb .profile-link-label { text-decoration: underline; text-underline-offset: .22em; }
.cb .profile-portrait-link:hover img { border-color: var(--green); }
.cb .profile-facts { margin: 0; }
.cb .profile-facts > div + div { margin-top: .95rem; padding-top: .95rem; border-top: 1px solid var(--line); }
.cb .profile-facts dt { color: var(--green); font-weight: 700; }
.cb .profile-facts dd { margin: .22rem 0 0; }
.cb .profile-facts cite { font-style: normal; }
.cb .related { padding-block: 2.25rem; border-bottom: 1px solid var(--line); }
.cb .related h2 { font-size: 1.5rem; }
.cb .related-links { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.cb .related a { display: inline-block; padding: .55rem .78rem; border: 1px solid #acbeb0; background: var(--paper); font-size: .9375rem; font-weight: 650; }
.cb .related a:hover { background: #e6ebe0; }
.cb .related a span { margin-inline-start: .35em; }
@media (max-width: 52rem) {
  .cb .hero-inner, .cb .case { gap: 1.65rem; }
  .cb .photo-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 42rem) {
  .cb .shell { width: calc(100% - 2.2rem); }
  .cb .hero-inner, .cb .case, .cb .practice-grid section, .cb .profile-card { grid-template-columns: minmax(0, 1fr); }
  .cb .hero-inner { padding-block: 1.85rem; }
  .cb h1 { font-size: clamp(1.8rem, 8.4vw, 2.08rem); }
  .cb .hero-photo img { aspect-ratio: 1.13; }
  .cb .case { gap: 1.25rem; }
  .cb .field-photos .field-grid { grid-template-columns: 1fr; }
  .cb .field-grid img { aspect-ratio: 6 / 5; }
  .cb .contents { gap: .12rem .9rem; }
  .cb .contents a { font-size: .875rem; }
}
@media (max-width: 23rem) {
  .cb .shell { width: calc(100% - 1.6rem); }
  .cb .photo-grid { gap: .55rem; }
  .cb .photo-grid figcaption { padding-inline: .55rem; }
}
.cb .field-photos .field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 48rem; }
.cb .visits .photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cb .hero-photo img { object-position: center 47%; }
.cb figure, .cb .practice-grid section, .cb .profile-card, .cb .profile-portrait-link img { border-radius: 6px; overflow: hidden; }
.cb .related a { border-radius: 5px; }
.cb .practice-grid section { border-radius: 0 6px 6px 0; }
@media (max-width: 42rem) {
  .cb .field-photos .field-grid { grid-template-columns: 1fr; }
  .cb .visits .photo-grid { grid-template-columns: 1fr; }
  .cb .visits .photo-grid img { aspect-ratio: 4 / 3; }
}
