@font-face {
  font-family:element-icons;
  src:url('../fonts/element-icons.woff') format('woff');
  font-display:block
}

:root {
  --ink:#102c33;
  --muted:#56686b;
  --gold:#b39561;
  --gold-light:#d4bb91;
  --soft:#f4f5f2;
  --line:#d8dfdc;
  --header:80px;
  --sans:'Microsoft YaHei','Yu Gothic','Malgun Gothic',Arial,sans-serif;
  --serif:'Songti SC','SimSun',serif
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}

body {
  margin:0;
  color:var(--ink);
  background:#fff;
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased
}

button,input {
  font:inherit
}

button,a,input,summary {
  -webkit-tap-highlight-color:transparent
}

button {
  cursor:pointer;
  color:inherit
}

a {
  color:inherit;
  text-decoration:none
}

img {
  display:block;
  max-width:100%;
  object-fit:cover
}

h1,h2,h3,p {
  margin:0
}

::selection {
  background:var(--gold-light);
  color:var(--ink)
}

:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:6px
}

section[id],details[id] {
  scroll-margin-top:110px
}

.shell {
  width:calc(100% - 120px);
  max-width:1440px;
  margin-inline:auto
}

.section {
  padding:110px 0
}

.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0
}

.skip-link {
  position:fixed;
  z-index:100;
  top:12px;
  left:12px;
  padding:12px 20px;
  background:white;
  color:var(--ink);
  transform:translateY(-200%)
}

.skip-link:focus {
  transform:none
}

.site-header {
  --header-ease:cubic-bezier(.22,.61,.36,1);
  --header-label-transition:color .45s ease,transform .55s var(--header-ease);
  --header-line-transition:opacity .4s ease,transform .55s var(--header-ease);
  position:fixed;
  inset:0 0 auto;
  z-index:30;
  height:var(--header);
  color:#fff;
  background:rgba(12,32,38,.84);
  border-bottom:1px solid #ffffff24;
  transition:background .35s,box-shadow .35s
}

.site-header.is-scrolled,.site-header.menu-is-open,.site-header.submenu-is-open {
  background:var(--ink);
  box-shadow:0 4px 24px #0a242418
}

.header-inner {
  display:flex;
  align-items:center;
  height:100%;
  gap:28px;
  max-width:1720px;
  width:calc(100% - 72px)
}

.brand {
  display:flex;
  align-items:center;
  gap:18px;
  flex-shrink:0
}

.primary-nav {
  --nav-ease:var(--header-ease);
  --nav-label-transition:var(--header-label-transition);
  --nav-line-transition:var(--header-line-transition);
  --nav-arrow-transition:transform .55s var(--nav-ease);
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:27px;
  height:100%
}

.primary-nav>a,.nav-group-heading>a {
  height:var(--header);
  display:flex;
  align-items:center;
  position:relative;
  font-size:14px;
  white-space:nowrap
}

.nav-label {
  display:block;
  transition:var(--nav-label-transition)
}

.primary-nav>a:after,.nav-group-heading>a:after {
  content:'';
  position:absolute;
  bottom:18px;
  left:0;
  right:0;
  height:1px;
  background:var(--gold-light);
  opacity:0;
  transform:scaleX(0);
  transform-origin:left;
  transition:var(--nav-line-transition)
}

.primary-nav>a:is(:hover,:focus-visible) .nav-label,.nav-group-heading>a:is(:hover,:focus-visible) .nav-label,.primary-nav [aria-current=location] .nav-label,.nav-group.is-expanded .nav-label {
  color:var(--gold-light);
  transform:translateY(-2px)
}

.primary-nav>a:is(:hover,:focus-visible):after,.nav-group-heading>a:is(:hover,:focus-visible):after,.primary-nav [aria-current=location]:after,.nav-group.is-expanded .nav-group-heading>a:after {
  opacity:1;
  transform:scaleX(1)
}

.nav-group-heading {
  display:flex;
  align-items:center;
  gap:5px
}

.submenu-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:none;
  border:0;
  min-width:22px;
  height:40px;
  padding:0;
  color:inherit;
  transition:color .45s ease
}

.submenu-toggle .nav-chevron {
  display:block;
  width:12px;
  height:12px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:var(--nav-arrow-transition)
}

.submenu-toggle:is(:hover,:focus-visible),.nav-group.is-expanded .submenu-toggle {
  color:var(--gold-light)
}

.nav-group.is-expanded .nav-chevron {
  transform:translateY(-2px) rotate(180deg)
}

.header-tools {
  display:flex;
  align-items:center;
  gap:15px;
  flex-shrink:0;
  border-left:1px solid #ffffff29;
  padding-left:15px
}

.utility-icon {
  font-family:element-icons!important;
  font-size:21px;
  font-style:normal
}

.utility-icon-search:before {
  content:'\e778'
}

.utility-icon-close:before {
  content:'\e6db'
}

.search-toggle {
  border:0;
  background:none;
  color:inherit;
  width:40px;
  height:44px;
  position:relative;
  padding:0
}

.search-toggle:after {
  content:'';
  position:absolute;
  inset:2px 0;
  border:1px solid var(--gold-light);
  border-radius:50%;
  transform:scale(.7);
  opacity:0;
  transition:transform .3s,opacity .3s
}

.search-toggle .utility-icon {
  display:inline-block;
  transition:transform .3s,color .3s
}

.search-toggle:hover .utility-icon {
  transform:scale(1.12) rotate(-10deg);
  color:var(--gold-light)
}

.search-toggle:hover:after {
  transform:scale(1);
  opacity:.7
}

.language-switcher {
  display:flex;
  gap:13px;
  align-items:center
}

.language-switcher button {
  padding:0;
  border:0;
  background:none;
  color:#fff;
  position:relative;
  height:44px;
  font-size:11px;
  white-space:nowrap
}

.language-switcher button span {
  display:inline-block;
  transition:var(--header-label-transition)
}

.language-switcher button:after {
  content:'';
  position:absolute;
  bottom:6px;
  left:0;
  right:0;
  height:1px;
  background:var(--gold-light);
  opacity:0;
  transform:scaleX(0);
  transform-origin:left;
  transition:var(--header-line-transition)
}

.language-switcher button[aria-pressed=true] span,.language-switcher button:is(:hover,:focus-visible) span {
  color:var(--gold-light)
}

.language-switcher button:is(:hover,:focus-visible) span {
  transform:translateY(-2px)
}

.language-switcher button:is(:hover,:focus-visible):after,.language-switcher button[aria-pressed=true]:after {
  opacity:1;
  transform:scaleX(1)
}

.menu-toggle {
  display:none
}

.nav-panel {
  position:absolute;
  top:var(--header);
  left:0;
  right:0;
  visibility:hidden;
  opacity:0;
  transform:translateY(-22px);
  pointer-events:none;
  background:var(--ink);
  border-top:1px solid #ffffff20;
  box-shadow:0 30px 50px #09212733;
  transition:opacity .42s ease-in-out,transform .48s cubic-bezier(.4,0,.2,1),visibility 0s .48s
}

.nav-group.is-expanded .nav-panel {
  visibility:visible;
  opacity:1;
  transform:none;
  pointer-events:auto;
  transition:opacity .65s ease-in-out,transform .7s cubic-bezier(.4,0,.2,1),visibility 0s
}

.nav-panel-inner {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:70px;
  padding:40px 0
}

.nav-panel-name {
  font-family:var(--serif);
  font-size:28px
}

.nav-panel-intro {
  opacity:0;
  transform:translateY(-14px);
  transition:opacity .25s ease-in-out,transform .3s ease-in-out
}

.nav-group.is-expanded .nav-panel-intro {
  opacity:1;
  transform:none;
  transition:opacity .5s ease-in-out .12s,transform .55s cubic-bezier(.4,0,.2,1) .12s
}

.nav-panel-intro p {
  color:#b9c7c7;
  font-size:13px;
  line-height:1.9;
  margin-top:14px;
  max-width:280px
}

.nav-panel-links {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 50px
}

.nav-panel-links a {
  position:relative;
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid #ffffff20;
  font-size:16px;
  opacity:0;
  transform:translateY(-16px);
  transition:opacity .24s ease-in-out,transform .3s ease-in-out,color .35s,background-color .35s
}

.nav-group.is-expanded .nav-panel-links a {
  opacity:1;
  transform:none;
  transition:opacity .5s ease-in-out,transform .55s cubic-bezier(.4,0,.2,1),color .35s,background-color .35s;
  transition-delay:calc(.16s + var(--menu-order,0) * .09s),calc(.16s + var(--menu-order,0) * .09s),0s,0s
}

.nav-panel-links a:nth-child(2) { --menu-order:1; }
.nav-panel-links a:nth-child(3) { --menu-order:2; }
.nav-panel-links a:nth-child(4) { --menu-order:3; }

.nav-panel-links a > span {
  display:block;
  transition:transform .38s cubic-bezier(.22,1,.36,1)
}

.nav-panel-links a::before {
  content:'';
  position:absolute;
  inset:auto 0 -1px;
  height:1px;
  background:var(--gold-light);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .45s cubic-bezier(.4,0,.2,1)
}

.nav-panel-links a::after {
  transition:transform .38s cubic-bezier(.22,1,.36,1)
}

.nav-panel-links a:is(:hover,:focus-visible) {
  background-color:#d4bb9109
}

.nav-panel-links a:is(:hover,:focus-visible)::before {
  transform:scaleX(1)
}

.nav-panel-links a:is(:hover,:focus-visible)::after {
  transform:translate(6px,-6px)
}

.hero {
  position:relative;
  isolation:isolate;
  color:#fff;
  min-height:700px;
  height:min(900px,100svh);
  --hero-distance:44px;
  background:var(--ink);
  overflow:hidden
}

.hero-art {
  position:absolute;
  inset:0;
  z-index:-2
}

.hero-art img {
  width:100%;
  height:100%;
  object-position:55% 52%;
  filter:saturate(.65)
}

.hero:after {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,#082228df 0%,#082228ab 45%,#0822282e 100%)
}

.hero-inner {
  height:100%;
  display:flex;
  align-items:center;
  padding-top:var(--header);
  padding-bottom:25px
}

.hero-copy {
  max-width:800px
}

.hero h1 {
  font-family:var(--serif);
  font-size:clamp(36px,4.2vw,66px);
  font-weight:700;
  letter-spacing:.07em;
  line-height:1.4
}

.hero-statement {
  font-family:var(--serif);
  font-size:clamp(27px,3vw,46px);
  line-height:1.65;
  letter-spacing:.08em;
  margin-top:24px;
  font-weight:400
}

.hero-statement span {
  display:inline-block
}

.hero-statement span:last-child {
  color:var(--gold-light)
}

.hero-lead {
  font-size:15px;
  line-height:2;
  color:#dce3e1;
  max-width:480px;
  margin-top:24px
}

.hero-link {
  display:inline-flex;
  gap:28px;
  align-items:center;
  justify-content:space-between;
  min-width:176px;
  min-height:54px;
  padding:0 20px;
  font-size:14px;
  line-height:1.4;
  letter-spacing:.06em;
  white-space:nowrap;
  margin-top:36px;
  border:1px solid #ffffff70;
  border-radius:2px;
  background:#0b252b38;
  transition:background-color .3s ease,border-color .3s ease
}

.hero-link:is(:hover,:focus-visible) {
  background:#ffffff14;
  border-color:#ffffffd9
}

/* The upper pair arrives from the left; the lower pair arrives from the right. */
.hero.has-entrance :is(h1,.hero-statement span,.hero-lead,.hero-link) {
  opacity:0;
  transform:translate3d(var(--hero-enter-x,0px),var(--hero-enter-y,0px),0)
}

.hero h1,
.hero-statement span:first-child {
  --hero-delay:120ms;
  --hero-enter-x:calc(var(--hero-distance) * -1)
}
.hero-statement span:last-child,
.hero-lead {
  --hero-delay:600ms;
  --hero-enter-x:var(--hero-distance)
}
.hero-link {
  --hero-delay:1080ms;
  --hero-enter-y:16px
}

.hero.has-entrance.is-visible :is(h1,.hero-statement span,.hero-lead,.hero-link) {
  opacity:1;
  transform:none;
  transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--hero-delay)
}

.hero.has-entrance.is-visible a.hero-link {
  transition:opacity 1.1s ease var(--hero-delay),transform 1.1s cubic-bezier(.22,.61,.36,1) var(--hero-delay),background-color .3s ease,border-color .3s ease
}

.hero.has-entrance .hero-copy a.hero-link:focus-visible {
  opacity:1;
  transform:none;
  transition:background-color .3s ease,border-color .3s ease!important
}

.hero.has-entrance .hero-art img {
  opacity:.65;
  transform:scale(1.08)
}

.hero.has-entrance.has-entered .hero-art img {
  opacity:1;
  transform:scale(1);
  transition:transform 2.6s cubic-bezier(.2,.65,.3,1),opacity 1.5s ease
}

.hero-link-arrow {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 22px;
  width:22px;
  height:22px;
  transition:transform .35s cubic-bezier(.22,.61,.36,1)
}

.hero-link-arrow svg {
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round
}

.hero-link:is(:hover,:focus-visible) .hero-link-arrow {
  transform:translate(3px,-3px)
}

.section-label {
  display:flex;
  align-items:center;
  gap:15px;
  font-size:14px;
  color:var(--muted);
  margin-bottom:26px
}

.gold-rule {
  height:2px;
  width:32px;
  background:var(--gold)
}

h2 {
  font-family:var(--serif);
  font-size:clamp(28px,2.6vw,40px);
  font-weight:700;
  line-height:1.65;
  letter-spacing:.04em
}

.about-section {
  --about-distance:36px;
  --about-ease:cubic-bezier(.22,.61,.36,1);
  overflow:clip
}

.about-section.has-about-motion .about-motion {
  opacity:0;
  transform:translate3d(var(--about-x,var(--about-distance)),var(--about-y,0px),0)
}

.about-section [data-about-motion=photo] {
  --about-x:calc(var(--about-distance)*-1);
  --about-delay:0ms
}

.about-section [data-about-motion=heading] {
  --about-delay:120ms
}

.about-section [data-about-motion=body] {
  --about-delay:280ms
}

.about-section [data-about-motion=footer] {
  --about-x:0px;
  --about-y:16px;
  --about-delay:440ms
}

.about-section.has-about-motion .about-motion.is-visible {
  opacity:1;
  transform:none;
  transition:opacity 1s ease var(--about-delay),transform 1s var(--about-ease) var(--about-delay)
}

.about-section.has-about-motion a.about-motion.is-visible {
  transition:opacity 1s ease var(--about-delay),transform 1s var(--about-ease) var(--about-delay),gap .45s var(--about-ease),color .45s ease
}

.about-section.has-about-motion .about-photo .photo-frame {
  opacity:0;
  transform:translate3d(8px,8px,0)
}

.about-section.has-about-motion .about-photo.is-visible .photo-frame {
  opacity:1;
  transform:none;
  transition:opacity 1.1s ease .18s,transform 1.1s var(--about-ease) .18s
}

.about-section.has-about-motion .about-content:focus-within .about-motion {
  opacity:1;
  transform:none;
  transition:none!important
}

.about-grid {
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:9%;
  align-items:center
}

.about-photo {
  position:relative;
  height:560px;
  margin-left:15px;
  isolation:isolate
}

.about-photo img {
  width:100%;
  height:100%;
  object-position:50% 42%;
  filter:saturate(.6)
}

.photo-frame {
  position:absolute;
  inset:22px -18px -18px 22px;
  z-index:-1;
  border:1px solid var(--gold)
}

.about-content h2 {
  font-size:clamp(25px,2.3vw,36px);
  letter-spacing:0
}

.about-content>p {
  font-size:14px;
  line-height:2.2;
  color:var(--muted);
  margin-top:22px
}

.principles {
  display:flex;
  justify-content:space-between;
  gap:16px;
  border-top:1px solid var(--line);
  margin-top:30px;
  padding-top:26px;
  font-size:16px;
  font-family:var(--serif)
}

.inline-link {
  display:inline-flex;
  align-items:center;
  gap:30px;
  font-size:13px;
  padding:10px 0;
  border-bottom:1px solid var(--gold);
  transition:gap .3s,color .3s
}

.inline-link>span:last-child {
  font-size:19px;
  color:#7c6139;
  transition:transform .3s
}

.inline-link:hover {
  gap:40px;
  color:#7c6139
}

.inline-link:hover>span:last-child {
  transform:translate(2px,-2px)
}

.about-content>.inline-link {
  margin-top:26px
}

.section-heading {
  padding-bottom:42px
}

.section-heading h2 {
  position:relative;
  padding-left:24px
}

.section-heading h2:before {
  content:'';
  position:absolute;
  top:16px;
  bottom:16px;
  left:0;
  width:3px;
  background:var(--gold)
}

.section-heading>p {
  margin-top:15px;
  color:var(--muted);
  line-height:1.9;
  font-size:14px;
  max-width:660px;
  padding-left:24px
}

.practice-section {
  --practice-distance:32px;
  --practice-ease:cubic-bezier(.22,.61,.36,1);
  background:var(--soft);
  overflow:clip
}

/* The shared reveal observer stops observing after each block's first entrance. */
.has-motion .practice-section .reveal {
  --practice-x:0px;
  --practice-y:16px;
  --practice-delay:0s;
  transition:none
}

.has-motion .practice-section .reveal.is-visible {
  transition:opacity .9s ease var(--practice-delay),transform .9s var(--practice-ease) var(--practice-delay)
}

.has-motion .practice-section .practice-visual.reveal {
  --practice-x:calc(-1 * var(--practice-distance));
  --practice-y:0px
}

.has-motion .practice-section .practice-list.reveal {
  --practice-x:var(--practice-distance);
  --practice-y:0px;
  --practice-delay:.12s
}

.has-motion .practice-section .reveal:not(.is-visible) {
  opacity:0;
  transform:translate3d(var(--practice-x),var(--practice-y),0)
}

.has-motion .practice-section .practice-list.reveal:focus-within {
  opacity:1;
  transform:none;
  transition:none!important
}

.practice-grid {
  display:grid;
  grid-template-columns:5fr 7fr;
  gap:7%;
  align-items:start
}

.practice-visual {
  position:relative;
  height:470px;
  overflow:hidden;
  isolation:isolate;
  color:#fff
}

.practice-visual img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  filter:saturate(.35);
  object-position:70% 50%;
  z-index:-2;
  transition:transform .8s
}

.practice-visual:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,#092a33e6,#092a3330);
  z-index:-1
}

.practice-visual p {
  position:absolute;
  bottom:36px;
  left:36px;
  right:24px;
  font-family:var(--serif);
  font-size:30px;
  line-height:1.65
}

.practice-visual:hover img {
  transform:scale(1.035)
}

details>summary {
  list-style:none;
  cursor:pointer
}

details>summary::-webkit-details-marker {
  display:none
}

.practice-item {
  border-bottom:1px solid #cbd4d0
}

.practice-item:first-child {
  border-top:1px solid #cbd4d0
}

.practice-item summary {
  display:flex;
  align-items:center;
  gap:22px;
  padding:25px 0;
  transition:color .3s
}

.practice-item summary:hover {
  color:#7c6139
}

.practice-number {
  font-size:12px;
  letter-spacing:1px;
  color:var(--muted);
  min-width:24px
}

.practice-item h3 {
  font-weight:400;
  font-family:var(--serif);
  font-size:25px;
  line-height:1.6
}

.detail-toggle {
  position:relative;
  width:24px;
  height:24px;
  flex-shrink:0;
  margin-left:auto
}

.detail-toggle:before,.detail-toggle:after {
  content:'';
  position:absolute;
  top:11px;
  left:5px;
  height:1px;
  width:14px;
  background:currentColor;
  transition:transform .3s
}

.detail-toggle:after {
  transform:rotate(90deg)
}

details[open]>summary .detail-toggle:after {
  transform:rotate(0)
}

.practice-detail {
  margin-left:46px;
  padding:0 0 27px;
  animation:enter .3s both
}

.practice-detail p {
  font-size:14px;
  line-height:2;
  color:var(--muted);
  max-width:500px
}

.practice-en {
  display:block;
  font-size:10px;
  letter-spacing:1.6px;
  color:var(--muted);
  margin-top:15px
}

.practice-detail .inline-link {
  margin-top:16px
}

.section-note {
  color:var(--muted);
  font-size:12px;
  line-height:1.9;
  margin-top:30px
}

.insights-section {
  --guide-ease:cubic-bezier(.16,1,.3,1);
  --guide-heading-transition:clip-path 1.15s var(--guide-ease),opacity .7s ease,transform 1.15s var(--guide-ease);
  --guide-quote-transition:opacity .75s ease,transform 1.15s var(--guide-ease);
  overflow:clip
}

/* An editorial curtain reveal, observed once for each heading, introduction and row. */
.has-motion .insights-section [data-guide-motion=heading] {
  opacity:0;
  transform:translateY(10px)
}

.has-motion .insights-section [data-guide-motion=heading]>:is(h2,p) {
  clip-path:inset(0 100% 0 0)
}

.has-motion .insights-section [data-guide-motion=heading].is-visible {
  opacity:1;
  transform:none;
  transition:var(--guide-heading-transition)
}

.has-motion .insights-section [data-guide-motion=heading].is-visible>:is(h2,p) {
  clip-path:inset(0);
  transition:var(--guide-heading-transition)
}

.has-motion .guides-intro {
  --guide-delay:.18s
}

.has-motion .guides-intro .editorial-number {
  display:inline-block;
  opacity:0;
  transform:translateY(20px) rotate(-18deg) scale(.7);
  transform-origin:25% 80%
}

.has-motion .guides-intro.is-visible .editorial-number {
  opacity:1;
  transform:none;
  transition:var(--guide-quote-transition)
}

.has-motion .guides-intro>:is(h3,p,.inline-link) {
  --guide-copy-transition:clip-path 1s var(--guide-ease) var(--guide-delay),opacity .75s ease var(--guide-delay),transform 1s var(--guide-ease) var(--guide-delay);
  opacity:0;
  clip-path:inset(0 0 100% 0);
  transform:translateY(18px)
}

.has-motion .guides-intro>p {
  --guide-delay:.3s
}

.has-motion .guides-intro>.inline-link {
  --guide-delay:.42s
}

.has-motion .guides-intro.is-visible>:is(h3,p,.inline-link) {
  opacity:1;
  clip-path:inset(0);
  transform:none;
  transition:var(--guide-copy-transition)
}

.has-motion .guides-intro.is-visible>.inline-link {
  transition:var(--guide-copy-transition),gap .4s var(--guide-ease),color .4s ease
}

.has-motion .insights-section .guide-item {
  --guide-delay:.12s;
  --guide-item-transition:clip-path 1.05s var(--guide-ease) var(--guide-delay),opacity .8s ease var(--guide-delay),transform 1.05s var(--guide-ease) var(--guide-delay);
  opacity:0;
  clip-path:inset(0 0 75% 0);
  transform:perspective(1000px) rotateX(-8deg) translateY(24px) scale(.985);
  transform-origin:center top
}

.has-motion .insights-section .guide-item:nth-child(2) {
  --guide-delay:.28s
}

.has-motion .insights-section .guide-item:nth-child(3) {
  --guide-delay:.44s
}

.has-motion .insights-section .guide-item.is-visible {
  opacity:1;
  clip-path:inset(0);
  transform:none;
  transition:var(--guide-item-transition)
}

.has-motion .insights-section .guide-item:before {
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:var(--gold);
  opacity:0;
  transform:scaleX(0);
  transform-origin:left;
  pointer-events:none
}

.has-motion .insights-section .guide-item.is-visible:before {
  animation:guide-line-sweep 1.6s var(--guide-ease) var(--guide-delay) both
}

@keyframes guide-line-sweep {
  0% { opacity:0; transform:scaleX(0) }
  15% { opacity:.8 }
  65% { opacity:.8; transform:scaleX(1) }
  100% { opacity:0; transform:scaleX(1) }
}

.has-motion .insights-section :is(.guide-item,.guides-intro):focus-within,
.has-motion .guides-intro:focus-within>:is(.editorial-number,h3,p,.inline-link) {
  opacity:1;
  clip-path:none;
  transform:none;
  transition:none!important
}

.guides-grid {
  display:grid;
  grid-template-columns:4fr 7fr;
  gap:10%;
  align-items:start
}

.guides-intro {
  padding:20px 0 0
}

.editorial-number {
  font-family:var(--serif);
  font-size:100px;
  line-height:.75;
  color:var(--gold)
}

.guides-intro h3 {
  font-family:var(--serif);
  font-size:30px;
  line-height:1.8;
  margin:12px 0 20px;
  font-weight:400
}

.guides-intro p {
  font-size:14px;
  line-height:2;
  color:var(--muted);
  max-width:350px
}

.guides-intro .inline-link {
  margin-top:26px
}

.guide-item {
  position:relative;
  border-top:1px solid var(--line)
}

.guide-item:last-child {
  border-bottom:1px solid var(--line)
}

.guide-item summary {
  display:flex;
  gap:25px;
  align-items:center;
  padding:25px 0
}

.guide-number {
  font-size:12px;
  color:var(--muted)
}

.guide-topic {
  font-size:12px;
  color:#7c6139;
  display:block;
  margin-bottom:9px
}

.guide-item h3 {
  font-size:19px;
  font-weight:400;
  line-height:1.7;
  transition:color .25s
}

.guide-item summary:hover h3 {
  color:#7c6139
}

.guide-detail {
  padding:0 45px 28px;
  animation:enter .3s both
}

.guide-detail p {
  font-size:13px;
  line-height:2.2;
  color:var(--muted)
}

.approach-section {
  border-top:1px solid var(--line);
  padding-top:90px
}

.approach-steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0
}

.step {
  padding:0 44px;
  border-left:1px solid var(--line)
}

.step:first-child {
  padding-left:24px;
  border-left:0
}

.step:last-child {
  padding-right:0
}

.step-number {
  font-size:42px;
  line-height:1.5;
  font-family:var(--serif);
  color:#856d46
}

.step h3 {
  font-weight:400;
  font-family:var(--serif);
  font-size:24px;
  margin:15px 0
}

.step p {
  font-size:14px;
  line-height:2;
  color:var(--muted);
  max-width:310px
}

.contact-section {
  background:var(--soft);
  padding:100px 0
}

.contact-inner {
  display:grid;
  grid-template-columns:7fr 4fr;
  gap:12%;
  align-items:center
}

.contact-content p {
  font-size:14px;
  line-height:2.2;
  max-width:550px;
  margin-top:24px;
  color:var(--muted)
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:50px;
  background:var(--ink);
  color:#fff;
  padding:18px 28px;
  font-size:14px;
  margin-top:30px;
  overflow:hidden;
  transition:background .3s
}

.button span:last-child {
  font-size:20px;
  transition:transform .3s
}

.button:hover {
  background:#304a4e
}

.button:hover span:last-child {
  transform:translate(3px,-3px)
}

.contact-sign {
  position:relative;
  text-align:center;
  aspect-ratio:1;
  max-width:260px;
  width:100%;
  transform:rotate(-45deg);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin:auto;
  opacity:.9
}

.contact-sign-outline {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  fill:none;
  stroke:var(--gold);
  stroke-width:.4;
  pointer-events:none
}

.contact-sign-outline rect {
  stroke-dasharray:1;
  stroke-dashoffset:0
}

.site-footer {
  background:var(--ink);
  color:#fff;
  padding:50px 0 26px
}

.footer-main {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  padding-bottom:40px
}

.footer-brand {
  font-family:var(--serif);
  font-size:23px;
  display:block
}

.footer-main>div>span {
  display:block;
  font-size:10px;
  letter-spacing:2px;
  color:var(--gold-light);
  margin-top:12px
}

.footer-main nav {
  display:flex;
  gap:25px;
  flex-wrap:wrap;
  max-width:590px;
  font-size:12px
}

.footer-main nav a {
  transition:color .25s
}

.footer-main nav a:hover {
  color:var(--gold-light)
}

.back-top {
  display:flex;
  gap:15px;
  align-items:center;
  font-size:12px;
  white-space:nowrap
}

.back-top>span:last-child {
  font-size:22px;
  transition:transform .3s
}

.back-top:hover>span:last-child {
  transform:translateY(-4px)
}

.footer-bottom {
  border-top:1px solid #ffffff25;
  padding-top:26px;
  display:flex;
  justify-content:space-between;
  gap:30px;
  color:#bac6c7;
  font-size:10px;
  line-height:1.9
}

.footer-bottom a {
  text-decoration:underline;
  text-underline-offset:3px
}

.search-is-open {
  overflow:hidden
}

.search-dialog {
  border:0;
  background:#fff;
  color:var(--ink);
  padding:42px 46px;
  max-width:720px;
  width:calc(100% - 40px);
  max-height:calc(100svh - 80px);
  box-shadow:0 25px 90px #08242a50
}

.search-dialog[open] {
  animation:dialog-enter .3s both
}

.search-dialog::backdrop {
  background:#08232abb;
  backdrop-filter:blur(6px)
}

.search-dialog-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px
}

.search-eyebrow {
  font-size:11px;
  letter-spacing:2px;
  color:var(--muted)
}

.search-close {
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:none;
  width:40px;
  height:40px
}

.search-close .utility-icon {
  transition:transform .25s
}

.search-close:hover .utility-icon {
  transform:rotate(90deg)
}

.search-dialog h2 {
  font-size:30px;
  letter-spacing:0
}

.search-form {
  display:flex;
  border-bottom:1px solid #7e9191;
  margin-top:28px
}

.search-form input {
  width:100%;
  min-width:0;
  border:0;
  background:none;
  padding:16px 0;
  font-size:15px;
  color:var(--ink)
}

.search-form input::placeholder {
  color:#607276;
  opacity:1
}

.search-form button {
  border:0;
  background:none;
  width:50px;
  flex-shrink:0
}

.search-status {
  font-size:13px;
  color:var(--muted);
  line-height:1.9;
  margin:22px 0
}

.search-results a {
  display:block;
  padding:18px 0;
  border-top:1px solid var(--line)
}

.search-results strong {
  display:block;
  font-size:16px;
  line-height:1.7;
  font-weight:400
}

.search-results a>span {
  display:block;
  font-size:12px;
  line-height:1.8;
  color:var(--muted);
  margin-top:6px
}

.search-results a:hover strong {
  color:#7c6139
}

@keyframes enter {
  from {
    opacity:0;
    transform:translateY(20px)
  }
  to {
    opacity:1;
    transform:none
  }
}

@keyframes header-enter {
  from {
    opacity:0;
    transform:translateY(-10px)
  }
  to {
    opacity:1;
    transform:none
  }
}

@keyframes dialog-enter {
  from {
    opacity:0;
    transform:translateY(15px) scale(.985)
  }
  to {
    opacity:1;
    transform:none
  }
}

.brand {
  animation:header-enter .55s both
}

.primary-nav>a,.nav-group {
  animation:header-enter .55s .08s both
}

.primary-nav>:nth-child(2) {
  animation-delay:.13s
}

.primary-nav>:nth-child(3) {
  animation-delay:.18s
}

.primary-nav>:nth-child(4) {
  animation-delay:.23s
}

.primary-nav>:nth-child(5) {
  animation-delay:.28s
}

.header-tools {
  animation:header-enter .55s .32s both
}

.has-motion .reveal {
  transition:opacity .65s,transform .65s
}

.has-motion .reveal:not(.is-visible) {
  opacity:0;
  transform:translateY(24px)
}

.has-motion .reveal.is-visible {
  opacity:1;
  transform:none
}

/* Each of these homepage blocks is observed once, including individual mobile rows. */
.approach-section,.portal-section,.contact-section {
  --section-ease:cubic-bezier(.16,1,.3,1);
  overflow:clip
}

.has-motion [data-section-motion=approach-heading] {
  --approach-heading-transition:opacity .9s ease,transform 1s var(--section-ease);
  opacity:0;
  transform:translateX(-24px)
}

.has-motion [data-section-motion=approach-heading].is-visible {
  opacity:1;
  transform:none;
  transition:var(--approach-heading-transition)
}

.has-motion .approach-steps .step {
  --step-delay:.08s;
  --step-piece-delay:calc(var(--step-delay) + .14s);
  position:relative;
  border-color:transparent
}

.has-motion .approach-steps .step:nth-child(2) {
  --step-delay:.24s
}

.has-motion .approach-steps .step:nth-child(3) {
  --step-delay:.4s
}

.has-motion .approach-steps .step:before {
  content:'';
  position:absolute;
  left:-1px;
  top:0;
  width:1px;
  height:100%;
  background:var(--line);
  transform:scaleY(0);
  transform-origin:top;
  --step-line-transition:transform 1.1s var(--section-ease) var(--step-delay)
}

.has-motion .approach-steps .step:first-child:before {
  content:none
}

.has-motion .approach-steps .step>:is(.step-number,h3,p) {
  --step-piece-transition:opacity .85s ease var(--step-piece-delay),transform 1s var(--section-ease) var(--step-piece-delay),clip-path 1s var(--section-ease) var(--step-piece-delay);
  opacity:0;
  transform:translateY(18px);
  clip-path:inset(0 0 100% 0)
}

.has-motion .approach-steps .step>.step-number {
  --step-piece-delay:var(--step-delay);
  display:inline-block;
  clip-path:none;
  transform:translateY(20px) scale(.92);
  transform-origin:left center
}

.has-motion .approach-steps .step>p {
  --step-piece-delay:calc(var(--step-delay) + .26s)
}

.has-motion .approach-steps .step.is-visible>:is(.step-number,h3,p) {
  opacity:1;
  transform:none;
  clip-path:inset(0);
  transition:var(--step-piece-transition)
}

.has-motion .approach-steps .step.is-visible:before {
  transform:scaleY(1);
  transition:var(--step-line-transition)
}

.has-motion .portal-grid [data-section-motion=portal] {
  --portal-x:-30px;
  --portal-delay:0s;
  --portal-transition:opacity 1s ease var(--portal-delay),transform 1.1s var(--section-ease) var(--portal-delay);
  opacity:0;
  transform:translateX(var(--portal-x))
}

.has-motion .portal-grid [data-section-motion=portal]+article {
  --portal-x:30px;
  --portal-delay:.12s
}

.has-motion .portal-grid [data-section-motion=portal].is-visible {
  opacity:1;
  transform:none;
  transition:var(--portal-transition)
}

.has-motion .portal-grid [data-section-motion=portal]>.inline-link {
  --portal-link-delay:calc(var(--portal-delay) + .24s);
  --portal-link-transition:opacity .8s ease var(--portal-link-delay),transform 1s var(--section-ease) var(--portal-link-delay),gap .4s var(--section-ease),color .4s ease;
  opacity:0;
  transform:translateY(12px)
}

.has-motion .portal-grid [data-section-motion=portal]>.inline-link+.inline-link {
  --portal-link-delay:calc(var(--portal-delay) + .34s)
}

.has-motion .portal-grid [data-section-motion=portal].is-visible>.inline-link {
  opacity:1;
  transform:none;
  transition:var(--portal-link-transition)
}

.has-motion .contact-content[data-section-motion] {
  --contact-delay:0s;
}

.has-motion .contact-content[data-section-motion]>:is(.section-label,h2,p,.button) {
  --contact-piece-transition:opacity .9s ease var(--contact-delay),transform 1.1s var(--section-ease) var(--contact-delay),clip-path 1.1s var(--section-ease) var(--contact-delay);
  opacity:0;
  transform:translateY(18px)
}

.has-motion .contact-content[data-section-motion]>.section-label {
  transform:translateX(-18px)
}

.has-motion .contact-content[data-section-motion]>h2 {
  --contact-delay:.12s;
  clip-path:inset(0 0 100% 0)
}

.has-motion .contact-content[data-section-motion]>p {
  --contact-delay:.28s
}

.has-motion .contact-content[data-section-motion]>.button {
  --contact-delay:.44s
}

.has-motion .contact-content[data-section-motion].is-visible>:is(.section-label,h2,p,.button) {
  opacity:1;
  transform:none;
  clip-path:inset(0);
  transition:var(--contact-piece-transition)
}

.has-motion .contact-content[data-section-motion].is-visible>.button {
  transition:var(--contact-piece-transition),background-color .4s ease
}

.has-motion .contact-sign[data-section-motion] {
  --contact-sign-transition:opacity .8s ease .12s,transform 1.65s var(--section-ease) .12s;
  opacity:0;
  transform:rotate(-51deg) scale(.94)
}

.has-motion .contact-sign[data-section-motion].is-visible {
  opacity:.9;
  transform:rotate(-45deg);
  transition:var(--contact-sign-transition)
}

.has-motion .contact-sign[data-section-motion] .contact-sign-outline rect {
  --contact-outline-transition:stroke-dashoffset 1.8s cubic-bezier(.45,0,.2,1) .12s;
  stroke-dashoffset:1
}

.has-motion .contact-sign[data-section-motion].is-visible .contact-sign-outline rect {
  stroke-dashoffset:0;
  transition:var(--contact-outline-transition)
}

.has-motion .contact-sign[data-section-motion]>:is(span,small) {
  --contact-sign-copy-delay:.5s;
  --contact-sign-copy-transition:opacity 1s ease var(--contact-sign-copy-delay),translate 1.1s var(--section-ease) var(--contact-sign-copy-delay);
  opacity:0;
  translate:0 12px
}

.has-motion .contact-sign[data-section-motion]>small {
  --contact-sign-copy-delay:.64s
}

.has-motion .contact-sign[data-section-motion].is-visible>:is(span,small) {
  opacity:1;
  translate:0;
  transition:var(--contact-sign-copy-transition)
}

.has-motion .portal-grid [data-section-motion]:focus-within,
.has-motion .portal-grid [data-section-motion]:focus-within>.inline-link,
.has-motion .contact-content[data-section-motion]:focus-within>:is(.section-label,h2,p,.button) {
  opacity:1;
  transform:none;
  clip-path:none;
  transition:none!important
}

@keyframes header-fade {
  from {
    opacity:0
  }
  to {
    opacity:1
  }
}

.nav-group {
  animation-name:header-fade
}

@media(min-width:1041px) and (max-width:1320px) {
  .header-inner {
    gap:18px;
    width:calc(100% - 48px)
  }
  .brand {
    gap:15px
  }
  .primary-nav {
    gap:16px
  }
  .primary-nav>a,.nav-group-heading>a {
    font-size:12px
  }
  .header-tools {
    gap:6px;
    padding-left:8px
  }
  .language-switcher {
    gap:9px
  }
  .language-switcher button {
    font-size:10px
  }
  .search-toggle {
    width:34px
  }
}

@media(max-width:1040px) {
  :root {
    --header:76px
  }
  .shell {
    width:calc(100% - 64px)
  }
  .header-inner {
    width:calc(100% - 56px);
    gap:18px
  }
  .brand {
    gap:17px
  }
  .header-tools {
    margin-left:auto;
    border:0;
    padding:0
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    height:44px;
    width:35px;
    background:none;
    border:0;
    flex-shrink:0;
    padding:5px
  }
  .menu-toggle span {
    width:25px;
    height:1px;
    background:#fff;
    transition:transform .25s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.5px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.5px) rotate(-45deg)
  }
  .primary-nav {
    position:absolute;
    top:var(--header);
    left:0;
    right:0;
    display:none;
    height:auto;
    background:var(--ink);
    margin:0;
    padding:22px 32px 30px;
    border-top:1px solid #ffffff20;
    max-height:calc(100svh - var(--header));
    overflow:auto;
    box-shadow:0 24px 40px #082a3329
  }
  .primary-nav.is-open {
    display:block;
    animation:dialog-enter .25s both
  }
  .primary-nav>a,.nav-group-heading>a {
    height:auto;
    min-height:55px;
    font-size:17px;
    border-bottom:1px solid #ffffff22
  }
  .nav-group-heading {
    display:block
  }
  .nav-group-heading>a {
    width:100%
  }
  .submenu-toggle,.nav-panel {
    display:none
  }
  .primary-nav>a:after,.nav-group-heading>a:after {
    bottom:8px;
    right:auto;
    width:32px
  }
  .primary-nav.is-open>a,.primary-nav.is-open .nav-group {
    animation:enter .3s both
  }
  .primary-nav.is-open>:nth-child(2) {
    animation-delay:.04s
  }
  .primary-nav.is-open>:nth-child(3) {
    animation-delay:.08s
  }
  .primary-nav.is-open>:nth-child(4) {
    animation-delay:.12s
  }
  .primary-nav.is-open>:nth-child(5) {
    animation-delay:.16s
  }
  .primary-nav .language-switcher {
    margin-top:24px;
    display:flex;
    justify-content:flex-start;
    gap:25px
  }
  .language-switcher button {
    font-size:12px
  }
  .section {
    padding:80px 0
  }
  .about-grid {
    gap:7%;
    grid-template-columns:1fr 1fr
  }
  .about-photo {
    height:480px;
    margin-left:0
  }
  .about-content h2 {
    font-size:25px
  }
  .about-content>p {
    font-size:13px;
    margin-top:15px
  }
  .principles {
    font-size:14px;
    gap:10px;
    padding-top:20px
  }
  .practice-item h3 {
    font-size:21px
  }
  .practice-grid {
    gap:6%
  }
  .practice-visual {
    height:440px
  }
  .practice-visual p {
    font-size:25px;
    left:25px;
    bottom:25px
  }
  .guides-grid {
    gap:7%;
    grid-template-columns:4fr 6fr
  }
  .guides-intro h3 {
    font-size:26px
  }
  .guide-item h3 {
    font-size:17px
  }
  .guide-item summary {
    gap:15px
  }
  .guide-detail {
    padding-left:30px;
    padding-right:25px
  }
  .step {
    padding-inline:24px
  }
  .step h3 {
    font-size:21px
  }
  .contact-sign {
    max-width:210px
  }
  .footer-main {
    flex-wrap:wrap
  }
  .footer-main nav {
    max-width:none
  }
  .footer-bottom {
    flex-direction:column;
    gap:12px
  }
}

@media(max-width:680px) {
  :root {
    --header:70px
  }
  .shell {
    width:calc(100% - 44px)
  }
  .header-inner {
    width:calc(100% - 36px);
    gap:10px
  }
  .brand {
    gap:12px
  }
  .search-toggle {
    width:32px
  }
  .header-tools {
    gap:0
  }
  .menu-toggle {
    width:30px;
    padding:3px
  }
  .primary-nav {
    padding-inline:24px
  }
  .primary-nav .language-switcher {
    justify-content:space-between;
    gap:10px
  }
  .hero {
    height:100svh;
    min-height:620px;
    max-height:850px
  }
  .hero-art img {
    object-position:65% 50%
  }
  .hero:after {
    background:linear-gradient(90deg,#08252add,#08252a60)
  }
  .hero-inner {
    align-items:center;
    padding-top:70px;
    padding-bottom:30px
  }
  .hero h1 {
    font-size:clamp(23px,6.6vw,35px);
    letter-spacing:0;
    white-space:nowrap
  }
  .hero-statement {
    font-size:clamp(26px,7vw,38px);
    letter-spacing:.02em;
    line-height:1.7;
    margin-top:26px
  }
  .hero-lead {
    font-size:13px;
    line-height:2;
    max-width:310px;
    margin-top:24px
  }
  .hero-link {
    margin-top:30px;
    font-size:13px;
    min-width:160px;
    min-height:50px;
    padding:0 18px;
    gap:24px
  }
  .hero {
    --hero-distance:24px
  }
  .hero-link-arrow {
    flex-basis:20px;
    width:20px;
    height:20px
  }
  .section {
    padding:64px 0
  }
  .about-grid {
    display:flex;
    flex-direction:column;
    gap:45px
  }
  .about-section {
    --about-distance:20px
  }
  .about-photo {
    height:310px;
    width:calc(100% - 12px);
    margin-right:12px
  }
  .about-photo img {
    object-position:50% 25%
  }
  .photo-frame {
    inset:15px -12px -12px 15px
  }
  .about-content h2 {
    font-size:25px;
    line-height:1.65
  }
  .section-label {
    margin-bottom:20px;
    font-size:12px
  }
  .about-content>p {
    font-size:13px;
    margin-top:20px;
    line-height:2.1
  }
  .principles {
    margin-top:25px;
    font-size:15px
  }
  .about-content>.inline-link {
    margin-top:20px
  }
  .section-heading {
    padding-bottom:30px
  }
  .section-heading h2 {
    font-size:30px;
    padding-left:20px
  }
  .section-heading h2:before {
    top:13px;
    bottom:13px
  }
  .section-heading>p {
    padding-left:20px;
    font-size:13px;
    line-height:2
  }
  .practice-section {
    --practice-distance:20px
  }
  .practice-grid {
    display:flex;
    flex-direction:column;
    gap:30px
  }
  .practice-visual {
    height:245px;
    width:100%
  }
  .practice-visual p {
    font-size:25px;
    left:25px;
    bottom:23px
  }
  .practice-list {
    width:100%
  }
  .practice-item summary {
    padding:23px 0;
    gap:18px
  }
  .practice-item h3 {
    font-size:22px
  }
  .practice-detail {
    margin-left:42px
  }
  .practice-detail p {
    font-size:13px
  }
  .section-note {
    font-size:11px;
    line-height:2;
    margin-top:22px
  }
  .has-motion .insights-section .guide-item {
    --guide-delay:.08s;
    transform:perspective(800px) rotateX(-5deg) translateY(16px) scale(.99)
  }
  .has-motion .insights-section .guide-item:nth-child(2) {
    --guide-delay:.12s
  }
  .has-motion .insights-section .guide-item:nth-child(3) {
    --guide-delay:.16s
  }
  .has-motion .insights-section .guide-item:is(.is-visible,:focus-within) {
    transform:none
  }
  .guides-grid {
    display:block
  }
  .guides-intro {
    padding-top:5px;
    margin-bottom:35px
  }
  .editorial-number {
    font-size:80px
  }
  .guides-intro h3 {
    font-size:26px;
    margin-top:5px
  }
  .guides-intro p {
    font-size:13px
  }
  .guides-intro .inline-link {
    margin-top:20px
  }
  .guide-item summary {
    gap:15px;
    padding:23px 0
  }
  .guide-item h3 {
    font-size:17px
  }
  .guide-topic {
    font-size:11px
  }
  .guide-detail {
    padding:0 22px 25px 30px
  }
  .approach-steps {
    display:block
  }
  .step,.step:first-child,.step:last-child {
    padding:25px 0;
    border-left:0;
    border-top:1px solid var(--line);
    display:grid;
    grid-template-columns:48px 1fr;
    gap:10px 18px
  }
  .step-number {
    font-size:32px;
    grid-row:span 2
  }
  .step h3 {
    font-size:22px;
    margin:0
  }
  .step p {
    font-size:13px;
    line-height:2;
    max-width:none;
    grid-column:2
  }
  .has-motion [data-section-motion=approach-heading] {
    transform:translateX(-16px)
  }
  .has-motion [data-section-motion=approach-heading].is-visible {
    transform:none
  }
  .has-motion .approach-steps .step:nth-child(n) {
    --step-delay:.08s
  }
  .has-motion .approach-steps .step:before,
  .has-motion .approach-steps .step:first-child:before {
    content:'';
    top:-1px;
    left:0;
    width:100%;
    height:1px;
    transform:scaleX(0);
    transform-origin:left
  }
  .has-motion .approach-steps .step.is-visible:before {
    transform:scaleX(1)
  }
  .has-motion .portal-grid [data-section-motion=portal] {
    --portal-x:-18px
  }
  .has-motion .portal-grid [data-section-motion=portal]+article {
    --portal-x:18px;
    --portal-delay:0s
  }
  .contact-section {
    padding:65px 0
  }
  .contact-inner {
    display:block
  }
  .contact-content h2 {
    font-size:29px
  }
  .contact-content p {
    font-size:13px
  }
  .contact-sign {
    display:none
  }
  .button {
    padding:16px 24px;
    font-size:13px;
    gap:45px;
    margin-top:26px
  }
  .site-footer {
    padding-top:40px
  }
  .footer-main {
    display:grid;
    grid-template-columns:1fr auto;
    gap:28px;
    padding-bottom:30px
  }
  .footer-main>div {
    grid-column:span 2
  }
  .footer-brand {
    font-size:22px
  }
  .footer-main nav {
    font-size:11px;
    gap:18px 22px;
    max-width:250px
  }
  .back-top {
    align-self:start;
    gap:10px;
    font-size:10px
  }
  .footer-bottom {
    font-size:10px;
    padding-top:22px;
    gap:15px
  }
  .search-dialog {
    padding:24px;
    width:calc(100% - 28px);
    max-height:calc(100svh - 40px)
  }
  .search-dialog h2 {
    font-size:24px;
    line-height:1.6
  }
  .search-form input {
    font-size:13px
  }
  .search-form {
    margin-top:20px
  }
  .search-status {
    font-size:12px
  }
  .search-results strong {
    font-size:15px
  }
  .search-results a>span {
    font-size:12px
  }
}

@media(min-width:681px) and (max-width:1040px) {
  .contact-sign {
    width:70%
  }
}

@media(max-width:360px) {
  .header-inner {
    width:calc(100% - 28px);
    gap:7px
  }
  .brand {
    gap:10px
  }
  .hero-statement {
    font-size:26px
  }
  .about-content h2 {
    font-size:22px
  }
  .principles {
    font-size:13px
  }
  .contact-content h2 {
    font-size:26px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  .has-motion .reveal:not(.is-visible) {
    opacity:1;
    transform:none
  }
  /* Keep the explicitly requested short hero slides when Windows disables animation. */
  .hero.has-entrance.is-visible :is(h1,.hero-statement span,.hero-lead,.hero-link) {
    transition:opacity 1.1s ease var(--hero-delay),transform 1.1s cubic-bezier(.22,.61,.36,1) var(--hero-delay)!important
  }
  .hero.has-entrance.is-visible a.hero-link {
    transition:opacity 1.1s ease var(--hero-delay),transform 1.1s cubic-bezier(.22,.61,.36,1) var(--hero-delay),background-color .3s ease,border-color .3s ease!important
  }
  .hero-link:is(:hover,:focus-visible) .hero-link-arrow {
    transform:none
  }
  .hero.has-entrance .hero-art img {
    opacity:1;
    transform:none
  }
  /* Keep the explicitly requested short about-section reveals on this machine. */
  .about-section.has-about-motion .about-motion.is-visible {
    transition:opacity 1s ease var(--about-delay),transform 1s var(--about-ease) var(--about-delay)!important
  }
  .about-section.has-about-motion a.about-motion.is-visible {
    transition:opacity 1s ease var(--about-delay),transform 1s var(--about-ease) var(--about-delay),gap .45s var(--about-ease),color .45s ease!important
  }
  .about-content .inline-link>span:last-child {
    transition:transform .45s var(--about-ease)!important
  }
  .about-section.has-about-motion .about-photo.is-visible .photo-frame {
    transition:opacity 1.1s ease .18s,transform 1.1s var(--about-ease) .18s!important
  }
  /* Preserve the requested one-time practice entrance when Windows disables animation. */
  .has-motion .practice-section .reveal.is-visible {
    transition:opacity .9s ease var(--practice-delay),transform .9s var(--practice-ease) var(--practice-delay)!important
  }
  /* Keep the requested curtain reveal on this machine, with gentler rotation. */
  .has-motion .insights-section [data-guide-motion=heading].is-visible {
    transition:var(--guide-heading-transition)!important
  }
  .has-motion .insights-section [data-guide-motion=heading].is-visible>:is(h2,p) {
    transition:var(--guide-heading-transition)!important
  }
  .has-motion .guides-intro .editorial-number {
    transform:translateY(12px) rotate(-8deg) scale(.85)
  }
  .has-motion .guides-intro.is-visible .editorial-number {
    transform:none;
    transition:var(--guide-quote-transition)!important
  }
  .has-motion .guides-intro.is-visible>:is(h3,p,.inline-link) {
    transition:var(--guide-copy-transition)!important
  }
  .has-motion .guides-intro.is-visible>.inline-link {
    transition:var(--guide-copy-transition),gap .4s var(--guide-ease),color .4s ease!important
  }
  .has-motion .insights-section .guide-item {
    transform:translateY(16px)
  }
  .has-motion .insights-section .guide-item.is-visible {
    transform:none;
    transition:var(--guide-item-transition)!important
  }
  .has-motion .insights-section .guide-item.is-visible:before {
    animation:guide-line-sweep 1.6s var(--guide-ease) var(--guide-delay) both!important
  }
  .has-motion .insights-section :is(.guide-item,.guides-intro):focus-within,
  .has-motion .guides-intro:focus-within>:is(.editorial-number,h3,p,.inline-link) {
    opacity:1;
    clip-path:none;
    transform:none;
    transition:none!important
  }
  /* Keep the requested one-time homepage motion, with a smaller diamond movement. */
  .has-motion [data-section-motion=approach-heading].is-visible {
    transition:var(--approach-heading-transition)!important
  }
  .has-motion .approach-steps .step.is-visible>:is(.step-number,h3,p) {
    transition:var(--step-piece-transition)!important
  }
  .has-motion .approach-steps .step.is-visible:before {
    transition:var(--step-line-transition)!important
  }
  .has-motion .portal-grid [data-section-motion=portal].is-visible {
    transition:var(--portal-transition)!important
  }
  .has-motion .portal-grid [data-section-motion=portal].is-visible>.inline-link {
    transition:var(--portal-link-transition)!important
  }
  .has-motion .contact-content[data-section-motion].is-visible>:is(.section-label,h2,p,.button) {
    transition:var(--contact-piece-transition)!important
  }
  .has-motion .contact-content[data-section-motion].is-visible>.button {
    transition:var(--contact-piece-transition),background-color .4s ease!important
  }
  .has-motion .contact-sign[data-section-motion] {
    transform:rotate(-45deg) scale(.97)
  }
  .has-motion .contact-sign[data-section-motion].is-visible {
    transform:rotate(-45deg);
    transition:var(--contact-sign-transition)!important
  }
  .has-motion .contact-sign[data-section-motion].is-visible .contact-sign-outline rect {
    transition:var(--contact-outline-transition)!important
  }
  .has-motion .contact-sign[data-section-motion].is-visible>:is(span,small) {
    transition:var(--contact-sign-copy-transition)!important
  }
  .has-motion .portal-grid [data-section-motion]:focus-within,
  .has-motion .portal-grid [data-section-motion]:focus-within>.inline-link,
  .has-motion .contact-content[data-section-motion]:focus-within>:is(.section-label,h2,p,.button) {
    transition:none!important
  }
  .language-switcher button span {
    transition:var(--header-label-transition)!important
  }
  .language-switcher button:after {
    transition:var(--header-line-transition)!important
  }
  .primary-nav .nav-label {
    transition:var(--nav-label-transition)!important
  }
  .primary-nav>a:after,.nav-group-heading>a:after {
    transition:var(--nav-line-transition)!important
  }
  .submenu-toggle {
    transition:color .45s ease!important
  }
  .submenu-toggle .nav-chevron {
    transition:var(--nav-arrow-transition)!important
  }
  /* Keep the requested menu fade, without movement, when motion is reduced. */
  .nav-panel,.nav-group.is-expanded .nav-panel {
    transform:none;
    transition:opacity .3s linear,visibility 0s .3s!important
  }
  .nav-group.is-expanded .nav-panel {
    transition-delay:0s!important
  }
  .nav-panel-intro,.nav-panel-links a {
    transform:none
  }
  .nav-panel-links a {
    transition:color .25s,background-color .25s!important
  }
  .nav-panel-links a:is(:hover,:focus-visible) > span,
  .nav-panel-links a:is(:hover,:focus-visible)::after {
    transform:none
  }
}

/* Brand assets come from Application settings > Website Logo. Preserve supplied colors. */
.site-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  max-width: 100%;
}
.site-logo > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.site-logo-fallback { display: none; font-family: var(--serif); line-height: 1.5; }
.site-logo.is-unavailable > img { display: none; }
.site-logo.is-unavailable > .site-logo-fallback { display: block; }
.brand { gap: 14px; }
.site-logo--header { width: 50px; height: 56px; }
.site-logo--header.is-unavailable { display: none; }
.brand-names { display: flex; flex-direction: column; gap: 7px; white-space: nowrap; }
.brand-name { font-size: 23px; font-weight: 400; line-height: 1.25; letter-spacing: 1.3px; }
.brand-name-en { color: #fff; font-size: 13px; line-height: 1.3; letter-spacing: 1.85px; }
.site-logo--footer { width: 220px; height: 108px; }
.contact-sign { background: var(--ink); }
.site-logo--contact { width: 88%; height: 88%; transform: rotate(45deg); padding: 15px; color: #fff; }
@media (max-width: 680px) {
  .brand { gap: 9px; }
  .site-logo--header { width: 38px; height: 46px; }
  .brand-names { gap: 5px; }
  .brand-name { font-size: 18px; letter-spacing: .5px; }
  .brand-name-en { font-size: 11px; letter-spacing: .75px; }
  .site-logo--footer { width: 200px; height: 98px; }
}
