/* SafeStudy UK - publication editorial layer
   One deliberate finishing layer over the stable V5.6-compatible foundation.
   Goals: restrained typography, useful vertical space, consistent bilingual rhythm,
   and a cover-only dark/light text comparison control. */

:root{
  --editorial-ink:#17323d;
  --editorial-copy:#5b6f73;
  --editorial-soft:#728386;
  --editorial-accent:#42675f;
  --editorial-warm:#a17f54;
  --editorial-rule:#d8e0dc;
  --editorial-paper:#f8faf7;
  --editorial-serif:var(--serif);
  --editorial-sans:var(--sans);
  --editorial-zh-serif:"Songti SC","STSong","SimSun","Noto Serif CJK SC",serif;
  --editorial-zh-sans:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC","Noto Sans SC",sans-serif;
  --editorial-display:clamp(46px,3.75vw,64px);
  --editorial-lead:17.5px;
  --editorial-body:14.5px;
  --editorial-small:11px;
  --editorial-meta:10px;
}

/* ---------- Global typographic restraint ---------- */
.route-title,
.route-title em,
.introduction h1,
.introduction h1 em,
.node-label em,
blockquote,
.aside-quote,
.route-prompt p{
  font-style:normal!important;
}

.route-title,
.introduction h1,
.card-title,
.month-summary{
  color:var(--editorial-ink);
}

.route-title em{
  color:var(--editorial-accent)!important;
}

.route-lead,
.route-section p,
.proof-list-v51 p,
.aside-note-v51,
.method-v51 em,
.month-audience-teasers p,
.invite-inline>p,
.invite-path p{
  color:var(--editorial-copy)!important;
}

.route-kicker,
.aside-label,
.route-section h3,
.proof-list-v51 b,
.month-audience-teasers h3{
  color:var(--editorial-accent)!important;
}

/* Chinese: use a coherent Song + modern UI sans pairing, never synthetic italic. */
html.chinese .route-title,
html.chinese .route-title em,
html.chinese .introduction h1,
html.chinese .introduction h1 em,
html.chinese .card-title,
html.chinese .month-summary{
  font-family:var(--editorial-zh-serif)!important;
  font-style:normal!important;
  font-synthesis:none;
}
html.chinese .route-lead,
html.chinese .route-section,
html.chinese .route-section h3,
html.chinese .route-section p,
html.chinese .route-kicker,
html.chinese .proof-list-v51,
html.chinese .proof-list-v51 b,
html.chinese .proof-list-v51 p,
html.chinese .aside-label,
html.chinese .aside-note-v51,
html.chinese .method-v51,
html.chinese .method-v51 b,
html.chinese .method-v51 em,
html.chinese .month-audience-teasers,
html.chinese .support-link,
html.chinese .invite-inline,
html.chinese .request-form,
html.chinese .accept-form{
  font-family:var(--editorial-zh-sans)!important;
}

/* ---------- Page-two editorial hierarchy ---------- */
.route-title{
  font-size:var(--editorial-display)!important;
  line-height:.99!important;
  letter-spacing:-.045em!important;
  margin:0 0 20px!important;
  max-width:14ch!important;
  text-wrap:balance!important;
  font-weight:400!important;
}
.route-kicker{
  margin:0 0 17px!important;
  font:600 var(--editorial-meta)/1.25 var(--editorial-sans)!important;
  letter-spacing:.11em!important;
  text-transform:uppercase!important;
}
.route-kicker::before{
  width:22px!important;
  background:var(--editorial-warm)!important;
}
.route-lead{
  margin:0!important;
  max-width:780px!important;
  font:400 var(--editorial-lead)/1.62 var(--editorial-sans)!important;
  letter-spacing:-.008em!important;
  text-wrap:pretty!important;
}
.route-lead strong{font-weight:600!important;color:#2f4d53!important}

.route-sections{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0 34px!important;
  margin-top:34px!important;
  border-top:1px solid var(--editorial-rule)!important;
}
.route-section,
.route-section:nth-child(n+3){
  min-width:0!important;
  grid-column:auto!important;
  margin:0!important;
  padding:18px 0 0!important;
  border:0!important;
}
.route-section h3{
  display:block!important;
  margin:0 0 9px!important;
  font:600 var(--editorial-small)/1.35 var(--editorial-sans)!important;
  letter-spacing:.035em!important;
  text-transform:none!important;
}
.route-section h3::before{display:none!important;content:none!important}
.route-section p{
  margin:0!important;
  max-width:38ch!important;
  font:400 var(--editorial-body)/1.64 var(--editorial-sans)!important;
  letter-spacing:0!important;
}

/* The old prompt layer is redundant on the compact editorial pages. */
.route-prompt{display:none!important}

/* ---------- Right rail: same hierarchy, no miniature typography ---------- */
.route-aside .support-module{
  width:100%!important;
  max-width:500px!important;
}
.aside-label{
  margin:0 0 17px!important;
  font:600 var(--editorial-meta)/1.3 var(--editorial-sans)!important;
  letter-spacing:.09em!important;
  text-transform:uppercase!important;
}
.proof-list-v51{border-top:1px solid var(--editorial-rule)!important}
.proof-list-v51>div{
  grid-template-columns:minmax(100px,118px) minmax(0,1fr)!important;
  gap:22px!important;
  padding:17px 0!important;
  border-bottom:1px solid var(--editorial-rule)!important;
}
.proof-list-v51 b{
  font:600 var(--editorial-small)/1.35 var(--editorial-sans)!important;
  letter-spacing:.02em!important;
  text-transform:none!important;
}
.proof-list-v51 p,
.aside-note-v51{
  margin:0!important;
  font:400 var(--editorial-body)/1.62 var(--editorial-sans)!important;
  letter-spacing:0!important;
}
.support-link{
  min-height:48px!important;
  margin-top:22px!important;
  font:600 var(--editorial-small)/1.2 var(--editorial-sans)!important;
  letter-spacing:.035em!important;
  text-transform:none!important;
  color:var(--editorial-accent)!important;
}

/* Method rail: one family for all supporting content; numbers only where useful. */
.method-v51 button{
  min-height:66px!important;
  grid-template-columns:30px minmax(0,1fr)!important;
  gap:15px!important;
  padding:12px 0!important;
}
.method-v51 small{
  align-self:start!important;
  padding-top:3px!important;
  font:600 11px/1 var(--editorial-sans)!important;
  letter-spacing:0!important;
  color:var(--editorial-warm)!important;
}
.method-v51 b{
  display:block!important;
  margin:0 0 4px!important;
  font:600 15px/1.28 var(--editorial-sans)!important;
  letter-spacing:0!important;
  color:#2b4b52!important;
}
.method-v51 em{
  display:block!important;
  max-width:44ch!important;
  font:400 13.5px/1.5 var(--editorial-sans)!important;
  letter-spacing:0!important;
}
.aside-signoff{
  margin-top:18px!important;
  font:400 15px/1.5 var(--editorial-sans)!important;
  color:var(--editorial-copy)!important;
}

/* ---------- Deliberate use of vertical space ---------- */
@media(min-width:901px) and (min-height:790px){
  .explore-main{
    align-items:stretch!important;
    min-height:calc(100svh - var(--v31-bar-h) - 61px - 74px)!important;
  }
  .route-copy{
    align-self:stretch!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding-top:clamp(38px,5.4vh,62px)!important;
    padding-bottom:clamp(38px,5.4vh,62px)!important;
  }
  .route-aside{
    align-self:stretch!important;
    display:flex!important;
    align-items:center!important;
    padding-top:clamp(38px,5.4vh,62px)!important;
    padding-bottom:clamp(38px,5.4vh,62px)!important;
  }
  .route-aside:empty{display:none!important}
  .explore-main:has(.route-aside:empty){grid-template-columns:1fr!important;max-width:1180px!important}
}

/* Slightly tighter vertical treatment on laptop-height screens so nothing is forced. */
@media(min-width:901px) and (max-height:789px){
  .route-title{font-size:clamp(40px,3.4vw,56px)!important;margin-bottom:14px!important}
  .route-lead{font-size:16px!important;line-height:1.52!important}
  .route-sections{margin-top:23px!important;gap:0 26px!important}
  .route-section{padding-top:13px!important}
  .route-section p{font-size:13.5px!important;line-height:1.52!important}
  .proof-list-v51>div{padding:13px 0!important}
  .method-v51 button{min-height:55px!important;padding:8px 0!important}
}

/* Month is a denser editorial product; keep its own composition but use the same type roles. */
.explore-page[data-route="month"] .route-title{max-width:13ch!important}
.month-audience-teasers{
  margin-top:30px!important;
  padding-top:17px!important;
  border-top:1px solid var(--editorial-rule)!important;
}
.month-audience-teasers h3{
  margin-bottom:8px!important;
  font:600 var(--editorial-small)/1.3 var(--editorial-sans)!important;
  letter-spacing:.035em!important;
  text-transform:none!important;
}
.month-audience-teasers p{
  font:400 13.5px/1.58 var(--editorial-sans)!important;
}
.support-month-v51 .month-summary{
  font-size:16px!important;
  line-height:1.55!important;
}
.calendar-head p,
.support-month-v51 .month-meta strong,
.support-month-v51 .month-meta span{
  font-size:10px!important;
  letter-spacing:.08em!important;
}
.calendar-head span{font-size:12px!important;line-height:1.4!important}
.month-weekdays span{font-size:10px!important}
.month-day{font-size:12px!important}
.month-preview-key span{font-size:10px!important}
.month-preview-key p{font-size:12px!important;line-height:1.45!important}
.month-insight-meta{font-size:10px!important}
.month-insight h4{font-size:17px!important;line-height:1.25!important}
.month-insight>p:not(.month-insight-meta){font-size:13px!important;line-height:1.5!important}
.month-deeper,.month-essentials>span{font-size:10.5px!important}
.month-essentials>small{font-size:11px!important;line-height:1.4!important}

/* Invitation + forms: body readability should match the rest of the publication. */
.invite-inline>p{font-size:14.5px!important;line-height:1.58!important}
.invite-path p{font-size:13.5px!important;line-height:1.5!important}
.invite-origin span,.invite-journey span{font-size:12px!important;line-height:1.4!important}
.request-grid input,.request-grid select,.request-grid textarea,.code-row input,.accept-field input{
  font-size:14px!important;
}
.micro-button{font-size:11px!important}
.form-privacy-note{font-size:11.5px!important;line-height:1.5!important}

/* ---------- Cover: fewer voices, stronger editorial hierarchy ---------- */
html.v88 .introduction .eyebrow{
  font-family:var(--editorial-sans)!important;
  font-style:normal!important;
  font-weight:600!important;
  letter-spacing:.08em!important;
  text-transform:none!important;
}
html.v88 .introduction h1{
  letter-spacing:-.045em!important;
}
html.v88 .introduction h1 em{
  font-style:normal!important;
  letter-spacing:inherit!important;
}
html.v88 .introduction .intro-copy{
  font-family:var(--editorial-sans)!important;
  font-weight:400!important;
  letter-spacing:0!important;
  line-height:1.52!important;
}
html.v88 .introduction .intro-copy strong{
  font-weight:500!important;
}
html.v88 .introduction .text-link{
  font-family:var(--editorial-sans)!important;
  font-weight:600!important;
  letter-spacing:0!important;
}
html.v88 .introduction .text-link strong{font-weight:inherit!important}
html.v88 .node-label>span,
html.v88 .node-label em{
  font-family:var(--editorial-sans)!important;
  font-style:normal!important;
}
html.v88 blockquote{
  font-family:var(--editorial-serif)!important;
  font-style:normal!important;
  line-height:1.22!important;
}

html.chinese.v88 .introduction .eyebrow,
html.chinese.v88 .introduction .intro-copy,
html.chinese.v88 .introduction .text-link,
html.chinese.v88 .node-label>span,
html.chinese.v88 .node-label em{
  font-family:var(--editorial-zh-sans)!important;
}
html.chinese.v88 .introduction h1{
  font-family:var(--editorial-zh-serif)!important;
  font-weight:400!important;
  line-height:1.13!important;
  letter-spacing:-.025em!important;
}
html.chinese.v88 .introduction h1 em{
  font-family:inherit!important;
  color:var(--editorial-accent);
}
html.chinese.v88 .introduction .eyebrow strong,
html.chinese.v88 .introduction .intro-copy strong{
  font-weight:500!important;
}

/* Dark is the publication default. */
html:not(.hero-tone-light) .introduction h1{color:#102c37!important}
html:not(.hero-tone-light) .introduction h1 em{color:#365f58!important}
html:not(.hero-tone-light) .introduction .eyebrow,
html:not(.hero-tone-light) .introduction .intro-copy,
html:not(.hero-tone-light) .introduction .text-link{color:#17353f!important}
html:not(.hero-tone-light) .introduction .text-link{border-bottom-color:rgba(23,53,63,.62)!important}

/* Premium light comparison: warm ivory rather than harsh pure white. */
html.hero-tone-light .introduction h1,
html.hero-tone-light .introduction .eyebrow,
html.hero-tone-light .introduction .intro-copy,
html.hero-tone-light .introduction .text-link{
  color:#fffaf1!important;
  text-shadow:0 2px 18px rgba(5,24,32,.58),0 1px 3px rgba(5,24,32,.78)!important;
}
html.hero-tone-light .introduction h1 em{color:#f5dfbc!important}
html.hero-tone-light .introduction .eyebrow::before{background:#f0d7ae!important;box-shadow:0 0 8px rgba(255,248,230,.42)!important}
html.hero-tone-light .introduction .text-link{border-bottom-color:rgba(255,250,241,.76)!important}
html.hero-tone-light .introduction .text-link svg{filter:drop-shadow(0 1px 3px rgba(5,24,32,.72))!important}

/* Cover tone control: one quiet comparison control, hidden once the inner publication is reached. */
.hero-tone-toggle{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.52);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  box-shadow:0 10px 30px rgba(13,34,43,.07);
  backdrop-filter:blur(13px);
  -webkit-backdrop-filter:blur(13px);
  color:#17313c;
  transition:background .2s ease,transform .2s ease,border-color .2s ease;
}
.hero-tone-toggle:hover{transform:translateY(-1px);background:#fff}
.hero-tone-toggle__icon{
  width:16px;
  height:16px;
  border:1px solid currentColor;
  border-radius:50%;
  overflow:hidden;
  position:relative;
}
.hero-tone-toggle__icon::after{
  content:'';
  position:absolute;
  inset:0 0 0 50%;
  background:currentColor;
}
html.hero-tone-light .hero-tone-toggle__icon{transform:rotate(180deg)}
.v31-sitebar.is-solid .hero-tone-toggle{display:none}

/* Menu language control keeps both languages reachable on phones. */
.cover-menu__head{gap:14px!important}
.cover-menu__language{
  display:none;
  align-items:center;
  gap:2px;
  margin-left:auto;
  padding:2px;
  border:1px solid rgba(42,76,77,.14);
  border-radius:999px;
  background:rgba(255,255,255,.7);
}
.cover-menu__language button{
  min-width:38px;
  min-height:29px;
  padding:0 8px;
  border-radius:999px;
  font:600 9px/1 var(--editorial-sans);
  letter-spacing:.04em;
  color:#617578;
}
.cover-menu__language button[aria-pressed="true"]{
  color:#17323d;
  background:#fff;
  box-shadow:0 1px 4px rgba(15,44,53,.08);
}

/* ---------- Chinese desktop rhythm ---------- */
html.chinese .route-title{
  font-size:clamp(46px,3.55vw,60px)!important;
  line-height:1.13!important;
  letter-spacing:-.025em!important;
  max-width:15ch!important;
}
html.chinese .route-lead{
  font-size:17px!important;
  line-height:1.78!important;
  letter-spacing:.01em!important;
}
html.chinese .route-section p,
html.chinese .proof-list-v51 p,
html.chinese .aside-note-v51{
  font-size:14.5px!important;
  line-height:1.78!important;
  letter-spacing:.01em!important;
}
html.chinese .route-section h3,
html.chinese .proof-list-v51 b,
html.chinese .aside-label{
  letter-spacing:.04em!important;
}

/* ---------- Phone / tablet readability ---------- */
@media(max-width:900px){
  .route-copy{
    padding:31px 6.6vw 32px!important;
  }
  .route-aside{
    padding:29px 6.6vw 38px!important;
  }
  .route-title{
    font-size:clamp(34px,9.6vw,43px)!important;
    line-height:1.02!important;
    margin-bottom:16px!important;
    max-width:14ch!important;
  }
  .route-kicker{
    font-size:10px!important;
    margin-bottom:12px!important;
  }
  .route-lead{
    font-size:15.5px!important;
    line-height:1.62!important;
  }
  .route-sections{
    grid-template-columns:1fr!important;
    gap:0!important;
    margin-top:27px!important;
  }
  .route-section,
  .route-section:nth-child(n+3){
    padding:16px 0!important;
    border-bottom:1px solid var(--editorial-rule)!important;
  }
  .route-section:first-child{border-top:0!important}
  .route-section h3{font-size:11px!important;margin-bottom:7px!important}
  .route-section p{font-size:14px!important;line-height:1.64!important;max-width:none!important}
  .proof-list-v51>div{
    grid-template-columns:1fr!important;
    gap:6px!important;
    padding:16px 0!important;
  }
  .proof-list-v51 b{font-size:11px!important}
  .proof-list-v51 p,.aside-note-v51{font-size:14px!important;line-height:1.62!important}
  .support-link{font-size:11px!important;min-height:45px!important}
  .method-v51{grid-template-columns:1fr!important}
  .method-v51 li:last-child{grid-column:auto!important}
  .method-v51 button{
    grid-template-columns:26px minmax(0,1fr)!important;
    min-height:0!important;
    padding:14px 0!important;
  }
  .method-v51 small{font-size:10px!important}
  .method-v51 b{font-size:14px!important}
  .method-v51 em{font-size:13px!important;line-height:1.48!important}
  .aside-signoff{font-size:14px!important}

  .v31-sitebar__actions{gap:8px!important}
  .hero-tone-toggle{width:36px;height:36px;flex-basis:36px}
  .hero-tone-toggle__icon{width:14px;height:14px}
  .cover-menu__language{display:flex}

  .route-nav button b{font-size:11px!important}
  .route-nav [data-ui="navMonth"]{font-size:9.5px!important;line-height:1.08!important}
  .route-nav [data-ui="navMonth"] .v511-nav-month-accent{font-size:11.5px!important}

  .month-audience-teasers{margin-top:24px!important}
  .month-audience-teasers h3{font-size:11px!important}
  .month-audience-teasers p{font-size:13.5px!important;line-height:1.58!important}
  .calendar-head p{font-size:10px!important}
  .calendar-head span{font-size:11px!important}
  .month-weekdays span{font-size:9.5px!important}
  .month-day{font-size:11px!important}
  .month-preview-key{grid-template-columns:88px 1fr!important;gap:10px!important}
  .month-preview-key span{font-size:9.5px!important}
  .month-preview-key p{font-size:11px!important;line-height:1.42!important}
  .month-insight h4{font-size:16px!important}
  .month-insight>p:not(.month-insight-meta){font-size:12.5px!important;line-height:1.48!important}
  .month-insight.locked small{font-size:10.5px!important}
  .month-deeper,.month-essentials>span{font-size:10.5px!important}
  .month-essentials>small{font-size:10.5px!important}

  .invite-origin b,.invite-path-label,.code-form label,.request-grid label>span{font-size:10px!important}
  .invite-origin span{font-size:12px!important}
  .invite-inline>p{font-size:14px!important;line-height:1.58!important}
  .invite-path p{font-size:13px!important;line-height:1.5!important}
  .invite-journey span{font-size:11.5px!important}
  .request-grid input,.request-grid select,.request-grid textarea,.code-row input{font-size:14px!important}
  .micro-button{font-size:10.5px!important}
}

@media(max-width:760px) and (orientation:portrait){
  html.v88 .introduction{
    left:11.5vw!important;
    right:7vw!important;
    top:13.2%!important;
  }
  html.v88 .introduction .eyebrow{
    font-size:10px!important;
    line-height:1.3!important;
    margin-bottom:10px!important;
  }
  html.v88 .introduction h1{
    font-size:clamp(34px,9.2vw,39px)!important;
    line-height:1.06!important;
    margin-bottom:14px!important;
    max-width:310px!important;
  }
  html.v88 .intro-copy.mobile-copy{
    font-size:13.5px!important;
    line-height:1.52!important;
    max-width:265px!important;
    margin-bottom:16px!important;
  }
  html.v88 .text-link{font-size:14px!important;min-height:31px!important}

  html.chinese.v88 .introduction h1{
    font-size:clamp(34px,9vw,38px)!important;
    line-height:1.12!important;
    max-width:305px!important;
  }
  html.chinese.v88 .intro-copy.mobile-copy{
    font-family:var(--editorial-zh-sans)!important;
    font-size:13.5px!important;
    line-height:1.68!important;
  }

  html.chinese .route-title{
    font-size:clamp(34px,9vw,40px)!important;
    line-height:1.16!important;
  }
  html.chinese .route-lead{font-size:15px!important;line-height:1.74!important}
  html.chinese .route-section p,
  html.chinese .proof-list-v51 p,
  html.chinese .aside-note-v51{font-size:14px!important;line-height:1.74!important}
}

@media(max-width:380px) and (orientation:portrait){
  .route-title{font-size:33px!important}
  .route-lead{font-size:15px!important}
  .route-section p,.proof-list-v51 p{font-size:13.5px!important}
  .hero-tone-toggle{width:34px;height:34px;flex-basis:34px}
}

@media(prefers-reduced-motion:reduce){
  .hero-tone-toggle{transition:none!important}
}

/* Final optical corrections after 16:9 / 16:10 / phone review. */
:root{
  --editorial-copy:#53696d;
  --editorial-body:15px;
}
.route-title{max-width:19ch!important}
html.chinese .route-title{max-width:19ch!important}

/* Home support strip uses the same two-family system as the rest of the publication. */
.card-overline{
  font-family:var(--editorial-sans)!important;
  font-weight:600!important;
  letter-spacing:.08em!important;
}
.card-title{
  font-family:var(--editorial-serif)!important;
  font-style:normal!important;
  font-weight:400!important;
}
.card-caption{
  font-family:var(--editorial-sans)!important;
  font-size:clamp(12px,.82vw,14px)!important;
  line-height:1.42!important;
  letter-spacing:0!important;
  color:var(--editorial-copy)!important;
}
html.chinese .card-overline,
html.chinese .card-caption{font-family:var(--editorial-zh-sans)!important}
html.chinese .card-title{font-family:var(--editorial-zh-serif)!important}

@media(max-width:760px) and (orientation:portrait){
  html.chinese.v88 .introduction h1{
    font-size:clamp(32px,8.45vw,34px)!important;
    max-width:326px!important;
  }
  html.chinese .route-title{
    max-width:none!important;
    font-size:clamp(32px,8.25vw,34px)!important;
  }
  .card-caption{font-size:12px!important;line-height:1.4!important}
}

/* Publication-final cover copy: desktop and phone use the same complete message. */
@media(max-width:760px) and (orientation:portrait){
  html.v88 .intro-copy.mobile-copy{
    max-width:292px!important;
    font-size:12.7px!important;
    line-height:1.56!important;
    margin-bottom:14px!important;
    text-wrap:pretty!important;
  }
  html.chinese.v88 .intro-copy.mobile-copy{
    max-width:298px!important;
    font-size:12.8px!important;
    line-height:1.66!important;
    letter-spacing:.005em!important;
  }
  html.v88 .introduction .intro-copy strong{font-weight:500!important}
}
@media(max-width:380px) and (orientation:portrait){
  html.v88 .intro-copy.mobile-copy{max-width:275px!important;font-size:12.2px!important;line-height:1.52!important}
  html.chinese.v88 .intro-copy.mobile-copy{font-size:12.25px!important;line-height:1.62!important}
}

/* Phone line-break safeguard for the compact English approach title. */
@media(max-width:760px) and (orientation:portrait){
  html:not(.chinese) .explore-page[data-route="approach"] .route-title em{
    display:block!important;
  }
}

/* ================================================================
   Publication refinement - positioning, rhythm and homepage copy
   September 2026
   ================================================================ */

/* Empty cover labels should not reserve visual space. */
.introduction .eyebrow:empty,
.introduction .hero-subline:empty{display:none!important}

/* English cover only: return to the original editorial serif voice.
   The rest of the English site keeps the newer disciplined typography. */
html:not(.chinese).v88 .introduction h1{
  font-family:var(--serif)!important;
  font-size:clamp(48px,4.2vw,74px)!important;
  font-weight:400!important;
  font-style:normal!important;
  line-height:.94!important;
  letter-spacing:-.066em!important;
  white-space:normal!important;
  max-width:760px!important;
  margin-bottom:clamp(20px,2.5vh,28px)!important;
}
html:not(.chinese).v88 .introduction h1 em{
  font-family:inherit!important;
  font-weight:400!important;
  font-style:italic!important;
  letter-spacing:-.072em!important;
}
html:not(.chinese).v88 .introduction .intro-copy{
  font-family:var(--serif)!important;
  font-weight:400!important;
  font-size:clamp(17px,1.18vw,21px)!important;
  line-height:1.27!important;
  letter-spacing:-.025em!important;
  max-width:31vw!important;
}

/* Chinese cover keeps the newer Chinese type system. The purpose line is
   a separate editorial subline rather than simulated italic Chinese. */
.hero-subline{
  display:none;
  margin:0 0 16px;
}
html.chinese.v88 .hero-subline{
  display:block;
  max-width:31vw;
  font-family:var(--editorial-zh-serif)!important;
  font-size:clamp(18px,1.35vw,24px)!important;
  font-weight:400!important;
  font-style:normal!important;
  line-height:1.45!important;
  letter-spacing:.01em!important;
  color:var(--editorial-accent)!important;
}
html.hero-tone-light.chinese.v88 .hero-subline{
  color:#f5dfbc!important;
  text-shadow:0 2px 18px rgba(5,24,32,.58),0 1px 3px rgba(5,24,32,.78)!important;
}
html.chinese.v88 .introduction h1{
  white-space:normal!important;
  max-width:680px!important;
  margin-bottom:14px!important;
}
html.chinese.v88 .introduction .intro-copy{
  max-width:31vw!important;
}

/* Desktop editorial rhythm: more air while retaining the existing x-axis. */
@media(min-width:901px){
  .route-kicker{margin-bottom:20px!important}
  .route-title{margin-bottom:24px!important}
  .route-sections{margin-top:41px!important}
  .route-section,
  .route-section:nth-child(n+3){padding-top:22px!important}
  .route-section h3{margin-bottom:11px!important}

  .month-audience-teasers{
    margin-top:36px!important;
    padding-top:20px!important;
  }
  .month-audience-teasers h3{margin-bottom:10px!important}

  /* Right rail - approximately 25% more rhythm between major ideas. */
  .aside-label{margin-bottom:21px!important}
  .proof-list-v51>div{
    padding:21px 0!important;
    gap:24px!important;
  }
  .support-link{
    margin-top:28px!important;
    min-height:54px!important;
  }
  .method-v51 button{
    min-height:78px!important;
    gap:18px!important;
    padding:15px 0!important;
  }
  .method-v51 b{margin-bottom:5px!important}
  .aside-signoff{margin-top:23px!important}

  /* Invitation rail uses the same slower vertical cadence. */
  .invite-origin{
    margin-bottom:16px!important;
    padding-bottom:15px!important;
  }
  .invite-inline>h3{margin:10px 0 13px!important}
  .invite-path{padding-top:16px!important}
  .invite-path:first-of-type{margin-top:16px!important}
  .invite-path p{margin-bottom:13px!important}
  .invite-separator{margin:13px 0 0!important}
  .invite-journey{margin:15px 0 18px!important}
  .invite-journey li{padding-top:12px!important;padding-bottom:12px!important}
  .request-grid{margin:13px 0!important;gap:10px 12px!important}
  .code-form,.accept-form{margin-top:20px!important}
  .accept-form fieldset{margin-bottom:15px!important}

  /* Month rail: remove the redundant top/bottom rules marked in review and
     open the major sections up without increasing calendar-cell spacing. */
  .support-month-v51 .month-meta{margin-bottom:18px!important}
  .month-art-row{margin-bottom:18px!important}
  .month-calendar-wrap{
    border-top:0!important;
    padding-top:0!important;
  }
  .calendar-head{
    margin-bottom:10px!important;
    padding-bottom:13px!important;
  }
  .month-preview-key{
    margin:12px 0 13px!important;
    padding-bottom:13px!important;
  }
  .month-insight-host{
    margin-top:10px!important;
    padding-top:13px!important;
  }
  .month-essentials{
    margin-top:15px!important;
    min-height:54px!important;
    padding:10px 0!important;
    border-bottom:0!important;
  }
}

/* Phone/tablet: add about 10% more rhythm, not the full desktop expansion. */
@media(max-width:900px){
  .route-copy{padding-top:34px!important;padding-bottom:35px!important}
  .route-aside{padding-top:32px!important;padding-bottom:42px!important}
  .route-kicker{margin-bottom:13px!important}
  .route-title{margin-bottom:18px!important}
  .route-sections{margin-top:30px!important}
  .route-section,
  .route-section:nth-child(n+3){padding-top:18px!important;padding-bottom:18px!important}
  .route-section h3{margin-bottom:8px!important}

  .aside-label{margin-bottom:19px!important}
  .proof-list-v51>div{padding:18px 0!important;gap:7px!important}
  .support-link{margin-top:24px!important;min-height:49px!important}
  .method-v51 button{padding:15px 0!important}
  .aside-signoff{margin-top:20px!important}

  .month-audience-teasers{margin-top:27px!important;padding-top:19px!important}
  .support-month-v51 .month-meta{margin-bottom:15px!important}
  .month-art-row{margin-bottom:13px!important}
  .month-calendar-wrap{border-top:0!important;padding-top:0!important}
  .calendar-head{padding-bottom:11px!important;margin-bottom:8px!important}
  .month-preview-key{margin:8px 0 9px!important;padding-bottom:8px!important}
  .month-insight-host{margin-top:6px!important;padding-top:11px!important}
  .month-essentials{margin-top:8px!important;border-bottom:0!important}

  .invite-origin{margin-bottom:14px!important;padding-bottom:13px!important}
  .invite-path{padding-top:14px!important}
  .invite-path:first-of-type{margin-top:14px!important}
  .invite-path p{margin-bottom:11px!important}
  .invite-separator{margin:11px 0 0!important}
}

@media(max-width:760px) and (orientation:portrait){
  html:not(.chinese).v88 .introduction{
    top:12.6%!important;
  }
  html:not(.chinese).v88 .introduction h1{
    font-size:clamp(33px,8.8vw,38px)!important;
    line-height:.98!important;
    max-width:318px!important;
    margin-bottom:15px!important;
  }
  html:not(.chinese).v88 .intro-copy.mobile-copy{
    font-family:var(--serif)!important;
    max-width:300px!important;
    font-size:13.2px!important;
    line-height:1.36!important;
    letter-spacing:-.012em!important;
    margin-bottom:15px!important;
  }
  html.chinese.v88 .introduction{
    top:12.5%!important;
  }
  html.chinese.v88 .introduction h1{
    font-size:clamp(31px,8.15vw,34px)!important;
    line-height:1.14!important;
    max-width:316px!important;
    margin-bottom:9px!important;
  }
  html.chinese.v88 .hero-subline{
    max-width:300px!important;
    margin:0 0 12px!important;
    font-size:15px!important;
    line-height:1.45!important;
  }
  html.chinese.v88 .intro-copy.mobile-copy{
    max-width:300px!important;
    font-size:12.8px!important;
    line-height:1.66!important;
  }
}

@media(max-width:380px) and (orientation:portrait){
  html:not(.chinese).v88 .introduction h1{font-size:32px!important}
  html:not(.chinese).v88 .intro-copy.mobile-copy{font-size:12.6px!important;max-width:278px!important}
  html.chinese.v88 .hero-subline{font-size:14px!important;max-width:278px!important}
}

/* Final phone legibility for the restored English serif cover copy. */
@media(max-width:760px) and (orientation:portrait){
  html:not(.chinese).v88 .intro-copy.mobile-copy{
    font-size:13.5px!important;
    font-weight:500!important;
    line-height:1.38!important;
    color:#102f39!important;
    text-shadow:0 1px 0 rgba(255,255,255,.5),0 0 8px rgba(255,252,244,.28)!important;
  }
}


/* ================================================================
   V6.2 final publication polish - approved cover + stable month rail
   ================================================================ */

/* Restore the original lead thought in both languages. */
html.v88 .introduction .eyebrow{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin-bottom:clamp(12px,1.7vh,18px)!important;
}
html.v88 .introduction .eyebrow:empty{display:none!important}
html.v88 .introduction .eyebrow strong{font-weight:700!important}
html:not(.chinese).v88 .introduction .eyebrow{
  font-family:var(--editorial-sans)!important;
  font-size:clamp(10px,.72vw,12px)!important;
  font-weight:650!important;
  letter-spacing:.115em!important;
}
html.chinese.v88 .introduction .eyebrow{
  font-family:var(--editorial-zh-sans)!important;
  font-size:clamp(12px,.9vw,15px)!important;
  font-weight:700!important;
  letter-spacing:.045em!important;
}

/* Cover headline: one colour, deliberate two-line Chinese composition, no orphan glyph. */
html.v88 .introduction h1,
html.v88 .introduction h1 em,
html.v88 .introduction h1 .headline-second{color:#102c37!important}
html.hero-tone-light.v88 .introduction h1,
html.hero-tone-light.v88 .introduction h1 em,
html.hero-tone-light.v88 .introduction h1 .headline-second{color:#fffaf1!important}
html.chinese.v88 .introduction h1{
  font-size:clamp(48px,3.62vw,62px)!important;
  line-height:1.13!important;
  letter-spacing:-.035em!important;
  max-width:760px!important;
  margin-bottom:15px!important;
}
html.chinese.v88 .introduction h1 .headline-line{
  display:block!important;
  width:max-content;
  max-width:100%;
  white-space:nowrap!important;
}
html.chinese.v88 .introduction h1 .headline-second{
  margin-top:.04em;
}

/* The Chinese supporting proposition is intentionally stronger and quieter: one weight, one voice. */
html.chinese.v88 .hero-subline{
  font-family:var(--editorial-zh-sans)!important;
  font-weight:700!important;
  color:#17353f!important;
  letter-spacing:.01em!important;
}
html.chinese.v88 .introduction .intro-copy{
  font-family:var(--editorial-zh-sans)!important;
  font-weight:700!important;
  color:#17353f!important;
  line-height:1.58!important;
}
html.hero-tone-light.chinese.v88 .hero-subline,
html.hero-tone-light.chinese.v88 .introduction .intro-copy{
  color:#fffaf1!important;
  text-shadow:0 2px 18px rgba(5,24,32,.58),0 1px 3px rgba(5,24,32,.78)!important;
}

/* Month rail: visual structure without redundant rules or a duplicate bottom CTA. */
.explore-page[data-route="month"] .calendar-head{
  border-bottom:0!important;
}
.explore-page[data-route="month"] .month-preview-key{
  border-top:0!important;
  border-bottom:0!important;
}
.explore-page[data-route="month"] .month-insight-host{
  border-top:0!important;
}
.explore-page[data-route="month"] .month-essentials{display:none!important}
.explore-page[data-route="month"] .month-insight-measure{
  margin:0!important;
  padding-top:0!important;
  border:0!important;
}

@media(max-width:760px) and (orientation:portrait){
  html.v88 .introduction .eyebrow{margin-bottom:9px!important;gap:9px!important}
  html:not(.chinese).v88 .introduction .eyebrow{font-size:9.5px!important}
  html.chinese.v88 .introduction .eyebrow{font-size:11px!important}
  html.chinese.v88 .introduction h1{
    font-size:clamp(28px,7.55vw,31px)!important;
    line-height:1.14!important;
    letter-spacing:-.03em!important;
    max-width:304px!important;
    margin-bottom:10px!important;
  }
  html.chinese.v88 .introduction h1 .headline-line{max-width:304px!important}
  html.chinese.v88 .hero-subline{
    font-size:14px!important;
    line-height:1.5!important;
    max-width:300px!important;
    font-weight:700!important;
  }
  html.chinese.v88 .intro-copy.mobile-copy{
    max-width:300px!important;
    font-size:12.8px!important;
    line-height:1.66!important;
    font-weight:700!important;
  }
}

@media(max-width:380px) and (orientation:portrait){
  html.chinese.v88 .introduction h1{font-size:27.5px!important;max-width:280px!important}
  html.chinese.v88 .introduction h1 .headline-line{max-width:280px!important}
  html.chinese.v88 .hero-subline{font-size:13.5px!important;max-width:278px!important}
}

/* ================================================================
   V6.3 final consistency pass - canonical type roles + stable month card
   ================================================================ */

/* Equivalent editorial page titles use one scale. Route-specific legacy
   selectors must not silently make Overview / Approach smaller than Families,
   Students or Advisers. Width can vary for composition; type size cannot. */
@media(min-width:901px){
  .explore-page[data-route] .route-title{
    font-family:var(--editorial-serif)!important;
    font-size:var(--editorial-display)!important;
    font-weight:400!important;
    line-height:.99!important;
    letter-spacing:-.045em!important;
    max-width:19ch!important;
    margin-bottom:24px!important;
    text-wrap:balance!important;
  }
  html.chinese .explore-page[data-route] .route-title{
    font-family:var(--editorial-zh-serif)!important;
    font-size:clamp(46px,3.55vw,60px)!important;
    line-height:1.13!important;
    letter-spacing:-.025em!important;
    max-width:19ch!important;
  }
  .explore-page[data-route="month"] .route-title{
    font-size:var(--editorial-display)!important;
    max-width:13ch!important;
  }
  html.chinese .explore-page[data-route="month"] .route-title{
    font-size:clamp(46px,3.55vw,60px)!important;
    max-width:13ch!important;
  }
}

/* Laptop-height screens retain the same hierarchy, just one uniformly smaller
   scale rather than route-by-route exceptions. */
@media(min-width:901px) and (max-height:789px){
  .explore-page[data-route] .route-title{
    font-size:clamp(40px,3.4vw,56px)!important;
    margin-bottom:18px!important;
  }
  html.chinese .explore-page[data-route] .route-title{
    font-size:clamp(42px,3.4vw,56px)!important;
  }
}

/* Phone/tablet titles also share one role. */
@media(max-width:900px){
  .explore-page[data-route] .route-title{
    font-size:clamp(34px,9.6vw,43px)!important;
    line-height:1.02!important;
    max-width:14ch!important;
    margin-bottom:18px!important;
  }
  html.chinese .explore-page[data-route] .route-title{
    font-size:clamp(32px,8.25vw,34px)!important;
    line-height:1.13!important;
    max-width:none!important;
  }
  .explore-page[data-route="month"] .route-title{
    font-size:clamp(34px,9.6vw,43px)!important;
    max-width:13ch!important;
  }
  html.chinese .explore-page[data-route="month"] .route-title{
    font-size:clamp(32px,8.25vw,34px)!important;
    max-width:13ch!important;
  }
}

/* Canonical secondary roles: keep identical semantic roles visually identical. */
.explore-page[data-route] .route-kicker{
  font-family:var(--editorial-sans)!important;
  font-weight:600!important;
}
.explore-page[data-route] .route-lead{
  font-family:var(--editorial-sans)!important;
  font-weight:400!important;
}
.explore-page[data-route] .route-section h3,
.explore-page[data-route] .proof-list-v51 b,
.explore-page[data-route] .aside-label{
  font-family:var(--editorial-sans)!important;
  font-weight:600!important;
}
.explore-page[data-route] .route-section p,
.explore-page[data-route] .proof-list-v51 p,
.explore-page[data-route] .aside-note-v51{
  font-family:var(--editorial-sans)!important;
  font-weight:400!important;
}
html.chinese .explore-page[data-route] .route-kicker,
html.chinese .explore-page[data-route] .route-lead,
html.chinese .explore-page[data-route] .route-section h3,
html.chinese .explore-page[data-route] .route-section p,
html.chinese .explore-page[data-route] .proof-list-v51 b,
html.chinese .explore-page[data-route] .proof-list-v51 p,
html.chinese .explore-page[data-route] .aside-label,
html.chinese .explore-page[data-route] .aside-note-v51{
  font-family:var(--editorial-zh-sans)!important;
}

/* Month panel: every date state uses the same premium framed component.
   The current/next open date intentionally has no portal arrow; locked dates
   may still offer invitation access. The host remains sized to the longest
   state, so artwork and calendar do not move when a date is selected. */
.explore-page[data-route="month"] .calendar-head{
  border-top:0!important;
  border-bottom:0!important;
}
.explore-page[data-route="month"] .month-insight-host{
  box-sizing:border-box!important;
  align-items:stretch!important;
  padding-top:0!important;
  margin-top:18px!important;
}
.explore-page[data-route="month"] .month-insight,
.explore-page[data-route="month"] .month-insight.locked{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:100%!important;
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  padding:16px 18px!important;
  border:1px solid #dce5e0!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#fbfcfa 0%,#f8faf7 100%)!important;
  box-shadow:0 10px 26px -24px rgba(23,50,61,.28)!important;
}
.explore-page[data-route="month"] .month-insight h4,
.explore-page[data-route="month"] .month-insight.locked h4{
  color:#24444d!important;
}
.explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
.explore-page[data-route="month"] .month-insight.locked>p:not(.month-insight-meta){
  color:#5f7377!important;
}
.explore-page[data-route="month"] .month-insight .month-deeper{
  margin-top:10px!important;
}
.explore-page[data-route="month"] .month-insight.locked small{
  margin-top:6px!important;
}

@media(max-width:900px){
  .explore-page[data-route="month"] .month-insight-host{
    margin-top:12px!important;
    padding-top:0!important;
  }
  .explore-page[data-route="month"] .month-insight,
  .explore-page[data-route="month"] .month-insight.locked{
    padding:14px 15px!important;
    border-radius:12px!important;
  }
}

/* Final semantic-role lock: remove residual route-specific drift from legacy CSS. */
@media(min-width:901px){
  .explore-page[data-route]:not([data-route="month"]) .route-title{
    max-width:700px!important;
  }
  .explore-page[data-route] .route-lead{
    font-size:var(--editorial-lead)!important;
    line-height:1.62!important;
    letter-spacing:-.008em!important;
    color:var(--editorial-copy)!important;
  }
  html.chinese .explore-page[data-route] .route-lead{
    font-size:17px!important;
    line-height:1.78!important;
    letter-spacing:.01em!important;
  }
}
.explore-page[data-route] .aside-label,
.explore-page[data-route] .route-kicker,
.explore-page[data-route] .route-section h3,
.explore-page[data-route] .proof-list-v51 b{
  color:var(--editorial-accent)!important;
}
.explore-page[data-route] .route-lead,
.explore-page[data-route] .route-section p,
.explore-page[data-route] .proof-list-v51 p,
.explore-page[data-route] .aside-note-v51{
  color:var(--editorial-copy)!important;
}
@media(max-width:900px){
  .explore-page[data-route] .route-lead{
    font-size:15.5px!important;
    line-height:1.62!important;
  }
  html.chinese .explore-page[data-route] .route-lead{
    font-size:15px!important;
    line-height:1.74!important;
  }
}
@media(min-width:901px){
  html.chinese .explore-page[data-route]:not([data-route="month"]) .route-title{
    max-width:700px!important;
  }
}

/* ================================================================
   V6.4 publication lock - semantic typography + permanent month card
   This is the final authority over historical route-specific exceptions.
   ================================================================ */

/* One semantic title role across all editorial routes. The ID is intentional:
   legacy route rules contain !important declarations with route-specific
   specificity, so the publication layer must win deterministically. */
@media (min-width:901px){
  html:not(.chinese) body #explore-title.route-title{
    font-family:var(--editorial-serif)!important;
    font-size:clamp(50px,3.5vw,58px)!important;
    line-height:.99!important;
    letter-spacing:-.045em!important;
    font-weight:400!important;
    font-style:normal!important;
    max-width:700px!important;
    white-space:normal!important;
    text-wrap:balance!important;
    margin:0 0 24px!important;
    color:var(--editorial-ink)!important;
  }
  html:not(.chinese) body #explore-title.route-title em{
    font-family:inherit!important;
    font-size:inherit!important;
    line-height:inherit!important;
    font-weight:inherit!important;
    font-style:normal!important;
    color:inherit!important;
    background:none!important;
    -webkit-text-fill-color:currentColor!important;
    animation:none!important;
  }
  html.chinese body #explore-title.route-title{
    font-family:var(--editorial-zh-serif)!important;
    font-size:clamp(46px,3.35vw,54px)!important;
    line-height:1.12!important;
    letter-spacing:-.022em!important;
    font-weight:400!important;
    font-style:normal!important;
    max-width:700px!important;
    white-space:normal!important;
    text-wrap:balance!important;
    margin:0 0 24px!important;
    color:var(--editorial-ink)!important;
  }
  html.chinese body #explore-title.route-title em{
    font-family:inherit!important;
    font-size:inherit!important;
    line-height:inherit!important;
    font-weight:inherit!important;
    font-style:normal!important;
    color:inherit!important;
    background:none!important;
    -webkit-text-fill-color:currentColor!important;
    animation:none!important;
  }
  /* Month title is the same typographic role. Width changes, not scale. */
  body .explore-page[data-route="month"] #explore-title.route-title{
    max-width:13ch!important;
  }
}

@media (min-width:901px) and (max-height:789px){
  html:not(.chinese) body #explore-title.route-title{
    font-size:clamp(46px,3.25vw,54px)!important;
    margin-bottom:19px!important;
  }
  html.chinese body #explore-title.route-title{
    font-size:clamp(43px,3.1vw,50px)!important;
    margin-bottom:19px!important;
  }
}

@media (max-width:900px){
  html:not(.chinese) body #explore-title.route-title{
    font-family:var(--editorial-serif)!important;
    font-size:clamp(35px,9.5vw,41px)!important;
    line-height:1.02!important;
    letter-spacing:-.04em!important;
    font-weight:400!important;
    font-style:normal!important;
    max-width:14ch!important;
    white-space:normal!important;
    text-wrap:balance!important;
    margin:0 0 18px!important;
    color:var(--editorial-ink)!important;
  }
  html:not(.chinese) body #explore-title.route-title em{
    font:inherit!important;
    color:inherit!important;
    background:none!important;
    -webkit-text-fill-color:currentColor!important;
  }
  html.chinese body #explore-title.route-title{
    font-family:var(--editorial-zh-serif)!important;
    font-size:clamp(31px,8vw,34px)!important;
    line-height:1.15!important;
    letter-spacing:-.015em!important;
    font-weight:400!important;
    font-style:normal!important;
    max-width:none!important;
    white-space:normal!important;
    text-wrap:balance!important;
    margin:0 0 18px!important;
    color:var(--editorial-ink)!important;
  }
  html.chinese body #explore-title.route-title em{
    font:inherit!important;
    color:inherit!important;
    background:none!important;
    -webkit-text-fill-color:currentColor!important;
  }
  body .explore-page[data-route="month"] #explore-title.route-title{max-width:13ch!important}
}

/* Secondary typography is deliberately limited to a handful of roles. */
body .explore-page .route-kicker,
body .explore-page .aside-label,
body .explore-page .route-section h3,
body .explore-page .proof-list-v51 b{
  font-family:var(--editorial-sans)!important;
  font-size:11px!important;
  line-height:1.35!important;
  font-weight:600!important;
  font-style:normal!important;
  letter-spacing:.045em!important;
  color:var(--editorial-accent)!important;
}
body .explore-page .route-kicker,
body .explore-page .aside-label{
  font-size:10px!important;
  letter-spacing:.09em!important;
}
body .explore-page .route-lead{
  font-family:var(--editorial-sans)!important;
  font-size:17.5px!important;
  line-height:1.62!important;
  font-weight:400!important;
  font-style:normal!important;
  letter-spacing:-.008em!important;
  color:var(--editorial-copy)!important;
}
body .explore-page .route-section p,
body .explore-page .proof-list-v51 p,
body .explore-page .aside-note-v51{
  font-family:var(--editorial-sans)!important;
  font-size:15px!important;
  line-height:1.64!important;
  font-weight:400!important;
  font-style:normal!important;
  letter-spacing:0!important;
  color:var(--editorial-copy)!important;
}
html.chinese body .explore-page .route-kicker,
html.chinese body .explore-page .aside-label,
html.chinese body .explore-page .route-section h3,
html.chinese body .explore-page .proof-list-v51 b,
html.chinese body .explore-page .route-lead,
html.chinese body .explore-page .route-section p,
html.chinese body .explore-page .proof-list-v51 p,
html.chinese body .explore-page .aside-note-v51{
  font-family:var(--editorial-zh-sans)!important;
}
html.chinese body .explore-page .route-lead{
  font-size:17px!important;
  line-height:1.78!important;
  letter-spacing:.01em!important;
}
@media(max-width:900px){
  body .explore-page .route-kicker,
  body .explore-page .aside-label{font-size:9.5px!important}
  body .explore-page .route-section h3,
  body .explore-page .proof-list-v51 b{font-size:10.5px!important}
  body .explore-page .route-lead{font-size:15.5px!important;line-height:1.62!important}
  html.chinese body .explore-page .route-lead{font-size:15px!important;line-height:1.74!important}
  body .explore-page .route-section p,
  body .explore-page .proof-list-v51 p,
  body .explore-page .aside-note-v51{font-size:14px!important;line-height:1.62!important}
}

/* Month: the insight frame exists in every state, including the initial open
   perspective. The container's measured height is fixed by JS to the longest
   possible state, so the artwork/calendar do not shift when dates change. */
body .explore-page[data-route="month"] #month-insight-host{
  box-sizing:border-box!important;
  margin-top:18px!important;
  padding:0!important;
  border:0!important;
}
body .explore-page[data-route="month"] #month-insight-host > .month-insight,
body .explore-page[data-route="month"] #month-insight-host > .month-insight.locked,
body .explore-page[data-route="month"] #month-insight-host > .month-insight-empty{
  box-sizing:border-box!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:flex-start!important;
  padding:16px 18px!important;
  border:1px solid #dce5e0!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#fbfcfa 0%,#f8faf7 100%)!important;
  box-shadow:0 10px 26px -24px rgba(23,50,61,.28)!important;
}
body .explore-page[data-route="month"] .calendar-head{
  border-top:0!important;
  border-bottom:0!important;
}
body .explore-page[data-route="month"] .month-preview-key{
  border-bottom:0!important;
}
@media(max-width:900px){
  body .explore-page[data-route="month"] #month-insight-host{margin-top:14px!important}
  body .explore-page[data-route="month"] #month-insight-host > .month-insight,
  body .explore-page[data-route="month"] #month-insight-host > .month-insight.locked,
  body .explore-page[data-route="month"] #month-insight-host > .month-insight-empty{
    padding:14px 15px!important;
    border-radius:12px!important;
  }
}

/* The monthly rail is a reference instrument, not a moving panel. Keep it
   optically anchored from the first frame so an immediate date click cannot
   coincide with the generic route entrance translate. */
body .explore-page[data-route="month"] #route-aside.route-transition{
  animation:none!important;
  transform:none!important;
}
body .explore-page[data-route="month"] #route-aside.route-transition .support-module{
  animation:none!important;
  transform:none!important;
}

/* V6.5 calendar interaction polish
   - today keeps the only persistent outline and remains clickable
   - next important date is bold, not boxed
   - event dates keep dots without boxes
   - only a user-selected non-today date receives the neutral selection box */
.explore-page[data-route="month"] .month-day{
  border-color:transparent!important;
  background:transparent!important;
  border-radius:0!important;
  transform:none!important;
  font-weight:500!important;
  opacity:1!important;
}
.explore-page[data-route="month"] .month-day.today{
  border:2px solid #315e56!important;
  border-radius:10px!important;
  color:#173b3b!important;
  font-weight:700!important;
  background:#f7faf7!important;
}
.explore-page[data-route="month"] .month-day.next-important:not(.today){
  border-color:transparent!important;
  border-radius:0!important;
  background:transparent!important;
  color:#1f3f45!important;
  font-weight:800!important;
}
.explore-page[data-route="month"] button.month-day:not(.today):hover{
  border-color:transparent!important;
  border-radius:0!important;
  background:rgba(49,94,86,.045)!important;
}
.explore-page[data-route="month"] .month-day.selected:not(.today){
  border:1px solid #bcc5c3!important;
  border-radius:10px!important;
  background:#f1f3f2!important;
  color:#263f44!important;
  font-weight:600!important;
}
.explore-page[data-route="month"] .month-day[data-state="preview"]{
  opacity:1!important;
}

/* ============================================================
   V6.6 - final brand/header polish
   One stable masthead scale, one stable language control,
   actual SafeStudy favicon, and no cover tone toggle.
   ============================================================ */

/* Dark editorial cover is the single publication treatment. */
html .introduction h1,
html .introduction h1 em,
html .introduction h1 .headline-second{color:#102c37!important}
html .introduction .eyebrow,
html .introduction .intro-copy,
html .introduction .text-link{color:#17353f!important;text-shadow:none!important}
html .introduction .text-link{border-bottom-color:rgba(23,53,63,.62)!important}
.hero-tone-toggle{display:none!important}

/* Give the masthead lockup the authority shown in the brand reference. */
@media(min-width:1101px){
  :root{--v31-bar-h:82px}
  .v31-sitebar{height:var(--v31-bar-h)!important}
  .v31-brand-lockup{gap:13px!important}
  .v31-brand-mark{width:48px!important;height:56px!important}
  .v31-sitebar .v31-brand-lockup .wordmark{font-size:44px!important;line-height:.96!important}
  .v31-sitebar__brand{gap:29px!important}
  .v31-sitebar__brand .brand-note{
    display:block!important;
    margin:0!important;
    padding-left:25px!important;
    font-size:11px!important;
    line-height:1.55!important;
    letter-spacing:.16em!important;
  }
  html.chinese .v31-sitebar__brand .brand-note{display:block!important}
  html.chinese .v31-sitebar .brand-zh{gap:10px!important}
  html.chinese .v31-sitebar .brand-zh-name{font-size:.86em!important}
  html.chinese .v31-sitebar .brand-zh-latin{font-size:9px!important;padding:4px 5px 3px!important}
}

/* Fixed geometry: language control never changes position between EN / 中文.
   The invitation cell is fixed too, so translated button copy cannot push it. */
.v31-sitebar__actions{display:grid!important;grid-template-columns:96px 176px 44px!important;gap:14px!important;align-items:center!important}
.v31-sitebar__language{
  width:96px!important;
  min-width:96px!important;
  max-width:96px!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:0!important;
  padding:4px!important;
}
.v31-sitebar__language button{
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  text-align:center!important;
}
.v31-sitebar__invite{
  width:176px!important;
  min-width:176px!important;
  max-width:176px!important;
  justify-content:center!important;
  padding-left:16px!important;
  padding-right:16px!important;
}
.v31-sitebar__menu{justify-self:end!important}

/* Same fixed two-cell control everywhere it appears. */
.explore-language.language-switch,
.cover-menu__language{
  width:94px!important;
  min-width:94px!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:0!important;
}
.explore-language.language-switch button,
.cover-menu__language button{width:100%!important;min-width:0!important;padding-left:0!important;padding-right:0!important;text-align:center!important}

/* Footer brand should read as a sign-off, not micro-copy. */
.explore-footer b{
  font-size:22px!important;
  line-height:1!important;
  font-weight:400!important;
  letter-spacing:-.035em!important;
}
html.chinese .explore-footer b{gap:9px!important}
html.chinese .explore-footer .brand-zh-name{font-size:1.12em!important}
html.chinese .explore-footer .brand-zh-latin{font-size:8px!important;padding:3px 4px!important}

@media(max-width:1100px) and (min-width:901px){
  .v31-brand-mark{width:42px!important;height:50px!important}
  .v31-sitebar .v31-brand-lockup .wordmark{font-size:35px!important}
  .v31-sitebar__actions{grid-template-columns:92px 160px 42px!important;gap:10px!important}
  .v31-sitebar__language{width:92px!important;min-width:92px!important;max-width:92px!important}
  .v31-sitebar__invite{width:160px!important;min-width:160px!important;max-width:160px!important}
}

@media(max-width:900px){
  .v31-sitebar__actions{display:flex!important;gap:10px!important}
  .v31-sitebar__invite{width:auto!important;min-width:0!important;max-width:none!important}
  .explore-footer b{font-size:19px!important}
}

@media(max-width:760px) and (orientation:portrait){
  /* When the language control is surfaced on compact cover/menu contexts,
     its outer capsule remains a fixed width; only the active inner pill changes. */
  .language-switch{width:86px!important;min-width:86px!important;max-width:86px!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important}
  .language-switch button{width:100%!important;min-width:0!important;padding-left:0!important;padding-right:0!important;text-align:center!important}
  .explore-footer b{font-size:18px!important}
}

/* V6.6.1 - fixed language capsule with a moving inner selector. */
.v31-sitebar__language,
.explore-language.language-switch,
.cover-menu__language{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
}
.v31-sitebar__language::before,
.explore-language.language-switch::before,
.cover-menu__language::before{
  content:'';
  position:absolute;
  z-index:-1;
  top:4px;
  bottom:4px;
  left:4px;
  width:calc((100% - 8px)/2);
  border-radius:999px;
  background:#fff;
  box-shadow:0 1px 3px rgba(13,34,43,.10);
  transform:translateX(0);
  transition:transform .24s cubic-bezier(.22,.78,.24,1);
}
.v31-sitebar__language:has(button[data-lang="zh"][aria-pressed="true"])::before,
.explore-language.language-switch:has(button[data-lang="zh"][aria-pressed="true"])::before,
.cover-menu__language:has(button[data-lang="zh"][aria-pressed="true"])::before{
  transform:translateX(100%);
}
.v31-sitebar__language button[aria-pressed=true],
.explore-language.language-switch button[aria-pressed=true],
.cover-menu__language button[aria-pressed=true]{background:transparent!important;box-shadow:none!important}
.v31-sitebar__language button,
.explore-language.language-switch button,
.cover-menu__language button{position:relative!important;z-index:1!important}

@media(max-width:900px){
  .v31-sitebar__language{width:86px!important;min-width:86px!important;max-width:86px!important;display:grid!important}
  .v31-sitebar__invite{width:86px!important;min-width:86px!important;max-width:86px!important;justify-content:center!important}
  .v31-sitebar__menu{width:40px!important;height:40px!important;flex:0 0 40px!important}
}
@media(max-width:520px){
  .v31-sitebar{padding-left:12px!important;padding-right:12px!important}
  .v31-brand-lockup{gap:7px!important}
  .v31-brand-mark{width:27px!important;height:32px!important}
  .v31-sitebar .v31-brand-lockup .wordmark{font-size:21px!important}
  html.chinese .v31-sitebar .brand-zh{gap:5px!important}
  html.chinese .v31-sitebar .brand-zh-name{font-size:.90em!important}
  html.chinese .v31-sitebar .brand-zh-latin{font-size:6.5px!important;padding:2px 3px!important}
  .v31-sitebar__actions{gap:6px!important}
  .v31-sitebar__language{width:80px!important;min-width:80px!important;max-width:80px!important}
  .v31-sitebar__invite{width:72px!important;min-width:72px!important;max-width:72px!important;padding-left:7px!important;padding-right:7px!important}
  .v31-sitebar__menu{width:36px!important;height:36px!important;flex:0 0 36px!important}
}


/* ============================================================
   V6.7 - brand lockup calibration + route-load robustness
   ============================================================ */

/* Inner pages must never depend on an entrance animation to be visible. */
.route-copy.route-transition > *,
.route-aside.route-transition .support-module{
  opacity:1!important;
  transform:none!important;
  animation:none!important;
}

/* Balanced masthead lockup: the mark and the company name share one optical centre. */
.v31-sitebar__brand{align-items:center!important}
.v31-brand-lockup{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  min-height:52px!important;
}
.v31-brand-mark{
  display:block!important;
  width:38px!important;
  height:45px!important;
  object-fit:contain!important;
  flex:0 0 38px!important;
  margin:0!important;
  transform:none!important;
}
.v31-sitebar .v31-brand-lockup .wordmark{
  display:flex!important;
  align-items:center!important;
  font-size:initial!important;
  line-height:1!important;
  letter-spacing:0!important;
  margin:0!important;
  transform:none!important;
}
.v31-sitebar .brand-en{
  display:inline-flex!important;
  align-items:flex-start!important;
  font-family:var(--serif)!important;
  font-size:27px!important;
  line-height:1!important;
  letter-spacing:-.045em!important;
  vertical-align:baseline!important;
  margin:0!important;
}
.v31-sitebar .brand-en-uk{
  font-family:var(--sans)!important;
  font-size:7px!important;
  line-height:1!important;
  letter-spacing:.035em!important;
  margin-left:4px!important;
  top:-.55em!important;
}
html.chinese .v31-sitebar .brand-en{display:none!important}
html.chinese .v31-sitebar .brand-zh{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  line-height:1!important;
  margin:0!important;
}
html.chinese .v31-sitebar .brand-zh-name{
  font-family:'Songti SC',STSong,SimSun,'Noto Serif CJK SC',serif!important;
  font-size:25px!important;
  line-height:1!important;
  letter-spacing:.015em!important;
  margin:0!important;
}
html.chinese .v31-sitebar .brand-zh-latin{
  display:inline-flex!important;
  align-items:center!important;
  font-family:var(--sans)!important;
  font-size:7.5px!important;
  line-height:1!important;
  letter-spacing:.055em!important;
  padding:3px 4px!important;
  margin:0!important;
}
.v31-sitebar__brand .brand-note{
  display:block!important;
  margin:0!important;
  padding-left:22px!important;
  min-height:34px!important;
  border-left:1px solid rgba(34,63,72,.32)!important;
  font:600 10px/1.5 var(--sans)!important;
  letter-spacing:.155em!important;
  color:#35515a!important;
  text-transform:uppercase!important;
}
html.chinese .v31-sitebar__brand .brand-note{
  display:block!important;
  font-family:var(--sans)!important;
  font-size:10px!important;
  line-height:1.5!important;
  letter-spacing:.10em!important;
  text-transform:none!important;
}

/* Footer sign-off should be legible, while staying secondary to page content. */
.explore-footer p{align-items:center!important;gap:17px!important}
.explore-footer b{
  display:inline-flex!important;
  align-items:center!important;
  min-height:24px!important;
  font-size:initial!important;
  line-height:1!important;
  letter-spacing:0!important;
}
.explore-footer .brand-en{
  display:inline-flex!important;
  align-items:flex-start!important;
  font-family:var(--serif)!important;
  font-size:18px!important;
  line-height:1!important;
  letter-spacing:-.045em!important;
  vertical-align:baseline!important;
  margin:0!important;
}
.explore-footer .brand-en-uk{
  font-family:var(--sans)!important;
  font-size:5.5px!important;
  line-height:1!important;
  margin-left:3px!important;
  top:-.52em!important;
}
html.chinese .explore-footer .brand-en{display:none!important}
html.chinese .explore-footer .brand-zh{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  line-height:1!important;
}
html.chinese .explore-footer .brand-zh-name{
  font-family:'Songti SC',STSong,SimSun,'Noto Serif CJK SC',serif!important;
  font-size:17px!important;
  line-height:1!important;
  letter-spacing:.015em!important;
  vertical-align:baseline!important;
  margin:0!important;
}
html.chinese .explore-footer .brand-zh-latin{
  display:inline-flex!important;
  align-items:center!important;
  font-family:var(--sans)!important;
  font-size:6px!important;
  line-height:1!important;
  letter-spacing:.04em!important;
  padding:2px 3px!important;
  margin:0!important;
  vertical-align:baseline!important;
}

@media(min-width:1101px){
  .v31-sitebar{height:78px!important}
  .v31-sitebar__brand{gap:25px!important}
}
@media(max-width:1100px) and (min-width:901px){
  .v31-brand-mark{width:35px!important;height:41px!important;flex-basis:35px!important}
  .v31-sitebar .brand-en{font-size:24px!important}
  html.chinese .v31-sitebar .brand-zh-name{font-size:23px!important}
  .v31-sitebar__brand .brand-note{font-size:9px!important;padding-left:18px!important}
}
@media(max-width:900px){
  .v31-brand-mark{width:31px!important;height:36px!important;flex-basis:31px!important}
  .v31-sitebar .brand-en{font-size:22px!important}
  html.chinese .v31-sitebar .brand-zh-name{font-size:21px!important}
  html.chinese .v31-sitebar .brand-zh-latin{font-size:6.5px!important}
  .v31-sitebar__brand .brand-note{display:none!important}
  .explore-footer .brand-en{font-size:17px!important}
  html.chinese .explore-footer .brand-zh-name{font-size:16px!important}
}
@media(max-width:520px){
  .v31-brand-lockup{gap:7px!important;min-height:38px!important}
  .v31-brand-mark{width:27px!important;height:32px!important;flex-basis:27px!important}
  .v31-sitebar .brand-en{font-size:20px!important}
  html.chinese .v31-sitebar .brand-zh-name{font-size:19px!important}
  html.chinese .v31-sitebar .brand-zh-latin{font-size:5.8px!important;padding:2px 3px!important}
  .explore-footer .brand-en{font-size:16px!important}
  html.chinese .explore-footer .brand-zh-name{font-size:15px!important}
}

/* V6.7.1 - defeat the old generic `.wordmark > span` scale specifically.
   The English name should carry the same optical authority as 安睿达. */
.v31-sitebar .v31-brand-lockup .wordmark > .brand-en{
  display:inline-flex!important;
  align-items:flex-start!important;
  font-family:var(--serif)!important;
  font-size:27px!important;
  line-height:1!important;
  letter-spacing:-.045em!important;
  vertical-align:baseline!important;
  margin-left:0!important;
}
.v31-sitebar .v31-brand-lockup .wordmark > .brand-en > .brand-en-uk{
  font-family:var(--sans)!important;
  font-size:7px!important;
  line-height:1!important;
  letter-spacing:.035em!important;
  margin-left:4px!important;
  vertical-align:baseline!important;
  top:-.55em!important;
}
html.chinese .v31-sitebar .v31-brand-lockup .wordmark > .brand-en{display:none!important}

@media(max-width:1100px) and (min-width:901px){
  .v31-sitebar .v31-brand-lockup .wordmark > .brand-en{font-size:24px!important}
}
@media(max-width:900px){
  .v31-sitebar .v31-brand-lockup .wordmark > .brand-en{font-size:22px!important}
}
@media(max-width:520px){
  .v31-sitebar .v31-brand-lockup .wordmark > .brand-en{font-size:20px!important}
}

/* ============================================================
   V6.8 - publication close: single header/nav seam, readable
   support typography, and compact mobile toolbar calibration.
   ============================================================ */

/* The masthead descriptor is separated by space, not a decorative rule. */
.v31-sitebar__brand .brand-note{
  border-left:0!important;
  padding-left:0!important;
}

/* One physical seam between toolbar and route index. The route cells are
   slightly taller so the index reads as a deliberate band, not a second rule. */
@media(min-width:901px){
  :root{--v51-nav:62px!important}
  .v31-sitebar.is-solid{
    border-bottom:1px solid rgba(27,58,68,.12)!important;
  }
  .route-nav{
    height:var(--v51-nav)!important;
    min-height:var(--v51-nav)!important;
    border-top:0!important;
  }
  .route-nav button{
    height:var(--v51-nav)!important;
    min-height:var(--v51-nav)!important;
    padding-top:10px!important;
    padding-bottom:9px!important;
  }
}

/* Small editorial roles are still secondary, but never microscopic. */
@media(min-width:901px){
  body .explore-page .route-kicker,
  body .explore-page .aside-label{
    font-size:10.75px!important;
    line-height:1.35!important;
  }
  body .explore-page .route-section h3,
  body .explore-page .proof-list-v51 b{
    font-size:11.5px!important;
  }
  body .explore-page .support-link{
    font-size:11.5px!important;
  }

  /* Invitation rail uses the same readable scale as the rest of the site. */
  body .explore-page[data-route="invitation"] .invite-kicker,
  body .explore-page[data-route="invitation"] .invite-path-label,
  body .explore-page[data-route="invitation"] .code-form label,
  body .explore-page[data-route="invitation"] .request-grid label>span,
  body .explore-page[data-route="invitation"] .invite-origin b{
    font-size:10.75px!important;
    line-height:1.35!important;
    letter-spacing:.085em!important;
  }
  body .explore-page[data-route="invitation"] .invite-inline>p{
    font-size:15.5px!important;
    line-height:1.6!important;
    max-width:50ch!important;
  }
  body .explore-page[data-route="invitation"] .invite-path{
    padding-top:19px!important;
  }
  body .explore-page[data-route="invitation"] .invite-path p{
    font-size:14.5px!important;
    line-height:1.58!important;
    margin-bottom:13px!important;
  }
  body .explore-page[data-route="invitation"] .invite-origin span{
    font-size:13.5px!important;
    line-height:1.5!important;
  }
  body .explore-page[data-route="invitation"] .code-row input,
  body .explore-page[data-route="invitation"] .request-grid input,
  body .explore-page[data-route="invitation"] .request-grid select,
  body .explore-page[data-route="invitation"] .request-grid textarea{
    font-size:14px!important;
  }
  body .explore-page[data-route="invitation"] .micro-button{
    font-size:11.25px!important;
    letter-spacing:.035em!important;
  }
  body .explore-page[data-route="invitation"] .invite-separator{
    font-size:9.5px!important;
  }
}

/* Mobile toolbar: one row, no occlusion. The descriptor belongs to desktop;
   the compact header keeps only mark + company name + three actions. */
@media(max-width:760px) and (orientation:portrait){
  :root{--v31-bar-h:60px!important}
  .v31-sitebar{
    height:var(--v31-bar-h)!important;
    padding-left:10px!important;
    padding-right:10px!important;
    gap:8px!important;
  }
  .v31-sitebar__brand{
    flex:0 1 auto!important;
    min-width:0!important;
    gap:0!important;
  }
  .v31-sitebar__brand .brand-note,
  html.chinese .v31-sitebar__brand .brand-note{
    display:none!important;
  }
  .v31-brand-lockup{
    gap:6px!important;
    min-height:36px!important;
    min-width:0!important;
  }
  .v31-brand-mark{
    width:25px!important;
    height:30px!important;
    flex:0 0 25px!important;
  }
  .v31-sitebar .v31-brand-lockup .wordmark{
    min-width:0!important;
  }
  .v31-sitebar .v31-brand-lockup .wordmark > .brand-en{
    font-size:18.5px!important;
    letter-spacing:-.04em!important;
  }
  .v31-sitebar .v31-brand-lockup .wordmark > .brand-en > .brand-en-uk{
    font-size:5.7px!important;
    margin-left:3px!important;
  }
  html.chinese .v31-sitebar .brand-zh{
    gap:5px!important;
  }
  html.chinese .v31-sitebar .brand-zh-name{
    font-size:18px!important;
    letter-spacing:.01em!important;
  }
  html.chinese .v31-sitebar .brand-zh-latin{
    font-size:5.5px!important;
    padding:2px 3px!important;
    letter-spacing:.035em!important;
  }

  .v31-sitebar__actions{
    flex:0 0 auto!important;
    display:flex!important;
    gap:5px!important;
    margin-left:auto!important;
  }
  .v31-sitebar__language{
    width:72px!important;
    min-width:72px!important;
    max-width:72px!important;
    min-height:36px!important;
    padding:3px!important;
  }
  .v31-sitebar__language button{
    min-height:28px!important;
    font-size:8.5px!important;
    letter-spacing:.035em!important;
  }
  .v31-sitebar__invite{
    width:88px!important;
    min-width:88px!important;
    max-width:88px!important;
    min-height:36px!important;
    height:36px!important;
    padding:0 8px!important;
    gap:5px!important;
    justify-content:center!important;
    overflow:visible!important;
  }
  .v31-sitebar__invite span{display:none!important}
  html.v88 .v31-sitebar__invite.invitation::before{
    content:'Invitation'!important;
    display:inline-block!important;
    position:static!important;
    inset:auto!important;
    width:auto!important;
    height:auto!important;
    background:none!important;
    transform:none!important;
    font:650 8.7px/1 var(--sans)!important;
    letter-spacing:.02em!important;
    color:inherit!important;
    white-space:nowrap!important;
  }
  html.chinese.v88 .v31-sitebar__invite.invitation::before{
    content:'邀请'!important;
    font-size:9px!important;
    letter-spacing:.04em!important;
  }
  .v31-sitebar__invite svg{
    width:13px!important;
    height:13px!important;
    flex:0 0 13px!important;
  }
  .v31-sitebar__menu{
    width:34px!important;
    height:34px!important;
    flex:0 0 34px!important;
  }
  .v31-sitebar__menu span,
  .v31-sitebar__menu::after{
    width:18px!important;
  }

  /* Route-page metadata remains readable on phones as well. */
  body .explore-page .route-kicker,
  body .explore-page .aside-label{font-size:10.25px!important}
  body .explore-page .route-section h3,
  body .explore-page .proof-list-v51 b{font-size:11px!important}
  body .explore-page[data-route="invitation"] .invite-kicker,
  body .explore-page[data-route="invitation"] .invite-path-label,
  body .explore-page[data-route="invitation"] .code-form label,
  body .explore-page[data-route="invitation"] .request-grid label>span,
  body .explore-page[data-route="invitation"] .invite-origin b{
    font-size:10.25px!important;
  }
  body .explore-page[data-route="invitation"] .invite-inline>p{
    font-size:13.5px!important;
    line-height:1.55!important;
  }
  body .explore-page[data-route="invitation"] .invite-path p{
    font-size:13px!important;
    line-height:1.52!important;
  }

  /* Chinese cards need optical, not literal, equivalence to the English set. */
  html.chinese.v88 .card-overline{
    font-size:9px!important;
    letter-spacing:.06em!important;
  }
  html.chinese.v88 .card-title{
    font-size:15.5px!important;
    line-height:1.18!important;
    letter-spacing:-.02em!important;
  }
  html.chinese.v88 .audience-card,
  html.chinese.v88 .audience-card:first-child{
    gap:10px!important;
  }
}

/* Extra-small phones keep the brand readable by dropping only the tiny Latin
   badge in the Chinese lockup; the primary 安睿达 name remains. */
@media(max-width:350px) and (orientation:portrait){
  .v31-sitebar{padding-left:8px!important;padding-right:8px!important;gap:5px!important}
  .v31-brand-mark{width:23px!important;height:28px!important;flex-basis:23px!important}
  .v31-sitebar .v31-brand-lockup .wordmark > .brand-en{font-size:17px!important}
  html.chinese .v31-sitebar .brand-zh-name{font-size:17px!important}
  html.chinese .v31-sitebar .brand-zh-latin{display:none!important}
  .v31-sitebar__actions{gap:4px!important}
  .v31-sitebar__language{width:66px!important;min-width:66px!important;max-width:66px!important}
  .v31-sitebar__invite{width:78px!important;min-width:78px!important;max-width:78px!important;padding-left:6px!important;padding-right:6px!important}
  .v31-sitebar__menu{width:32px!important;height:32px!important;flex-basis:32px!important}
  html.v88 .v31-sitebar__invite.invitation::before{font-size:8.2px!important}
}

/* Invitation explanatory copy belongs to the body-text system, not the serif
   display system. This keeps the right rail calm and avoids a third voice. */
body .explore-page[data-route="invitation"] .invite-path p,
body .explore-page[data-route="invitation"] .invite-origin span{
  font-family:var(--editorial-sans)!important;
  color:#4e666b!important;
}
html.chinese body .explore-page[data-route="invitation"] .invite-path p,
html.chinese body .explore-page[data-route="invitation"] .invite-origin span{
  font-family:var(--editorial-zh-sans)!important;
}

/* ============================================================
   V6.9 - final micro-polish: active route joins the masthead seam,
   masthead hairline restored, and full mobile invitation wording.
   ============================================================ */

/* Restore the fine divider as part of the brand lockup in both languages. */
.v31-sitebar__brand{
  gap:20px!important;
}
.v31-sitebar__brand .brand-note,
html.chinese .v31-sitebar__brand .brand-note{
  border-left:1px solid rgba(42,72,80,.32)!important;
  padding-left:20px!important;
  margin-left:0!important;
}

/* Let the active route cell meet the single toolbar/navigation hairline.
   The one-pixel overlap prevents the selected background from looking inset. */
@media(min-width:901px){
  .route-nav button{
    position:relative!important;
  }
  .route-nav button[aria-current="page"]{
    margin-top:-1px!important;
    height:calc(var(--v51-nav) + 1px)!important;
    min-height:calc(var(--v51-nav) + 1px)!important;
    padding-top:11px!important;
  }
}

/* Mobile: spell out Invitation Access while keeping one stable toolbar row. */
@media(max-width:760px) and (orientation:portrait){
  .v31-sitebar__brand .brand-note,
  html.chinese .v31-sitebar__brand .brand-note{
    display:none!important;
  }
  .v31-sitebar__invite{
    width:106px!important;
    min-width:106px!important;
    max-width:106px!important;
    padding-left:7px!important;
    padding-right:7px!important;
    gap:4px!important;
  }
  html.v88 .v31-sitebar__invite.invitation::before{
    content:'Invitation Access'!important;
    font-size:8.2px!important;
    letter-spacing:.005em!important;
  }
  html.chinese.v88 .v31-sitebar__invite.invitation::before{
    content:'邀请'!important;
    font-size:9px!important;
    letter-spacing:.035em!important;
  }
}

/* On narrow phones retain the full label by compacting the surrounding
   controls rather than abbreviating the invitation action. */
@media(max-width:350px) and (orientation:portrait){
  .v31-sitebar{padding-left:7px!important;padding-right:7px!important;gap:4px!important}
  .v31-brand-lockup{gap:5px!important}
  .v31-brand-mark{width:21px!important;height:26px!important;flex-basis:21px!important}
  .v31-sitebar .v31-brand-lockup .wordmark > .brand-en{font-size:15.5px!important}
  html.chinese .v31-sitebar .brand-zh-name{font-size:15.5px!important}
  html.chinese .v31-sitebar .brand-zh-latin{display:none!important}
  .v31-sitebar__actions{gap:3px!important}
  .v31-sitebar__language{width:60px!important;min-width:60px!important;max-width:60px!important}
  .v31-sitebar__language button{font-size:7.7px!important}
  .v31-sitebar__invite{width:96px!important;min-width:96px!important;max-width:96px!important;padding-left:5px!important;padding-right:5px!important}
  html.v88 .v31-sitebar__invite.invitation::before{font-size:7.5px!important}
  .v31-sitebar__invite svg{width:11px!important;height:11px!important;flex-basis:11px!important}
  .v31-sitebar__menu{width:30px!important;height:30px!important;flex-basis:30px!important}
}

/* ============================================================
   V7.1 - navigation cells are true full-height rectangles.
   The grid itself draws the separators, so there can be no inset
   gap caused by button padding/height/position.
   ============================================================ */
@media (min-width:901px){
  .route-nav{
    position:relative!important;
    top:auto!important;
    margin-top:-1px!important;
    box-sizing:border-box!important;
    height:var(--v51-nav)!important;
    min-height:var(--v51-nav)!important;
    align-items:stretch!important;
    border-top:1px solid var(--v31-rule)!important;
    border-bottom:1px solid var(--v31-rule)!important;
    background-color:rgba(251,252,249,.94)!important;
    background-image:
      repeating-linear-gradient(
        to right,
        transparent 0,
        transparent calc(14.2857142857% - 1px),
        var(--v31-rule) calc(14.2857142857% - 1px),
        var(--v31-rule) 14.2857142857%
      )!important;
    background-size:100% 100%!important;
    background-position:0 0!important;
    background-repeat:no-repeat!important;
    overflow:hidden!important;
  }
  .route-nav button{
    position:relative!important;
    top:auto!important;
    margin:0!important;
    height:100%!important;
    min-height:100%!important;
    align-self:stretch!important;
    box-sizing:border-box!important;
    border:0!important;
    background:transparent!important;
    padding:10px 16px 9px!important;
  }
  .route-nav button::before,
  .route-nav button::after{
    content:none!important;
    display:none!important;
  }
  .route-nav button[aria-current="page"]{
    margin:0!important;
    height:100%!important;
    min-height:100%!important;
    border:0!important;
    background:#f1f5f1!important;
    box-shadow:none!important;
    padding-top:10px!important;
  }
  /* redraw the active cell's right boundary, which its opaque fill covers */
  .route-nav button[aria-current="page"]{
    background-image:linear-gradient(var(--v31-rule),var(--v31-rule))!important;
    background-size:1px 100%!important;
    background-position:right top!important;
    background-repeat:no-repeat!important;
  }
  .route-nav button[aria-current="page"]:last-of-type{
    background-image:none!important;
  }
}

/* ============================================================
   V7.2 - definitive full-rectangle navigation grid.
   All grid rules are drawn by one overlay spanning the full nav box,
   eliminating any dependency on individual button geometry.
   ============================================================ */
@media (min-width:901px){
  .route-nav{
    position:relative!important;
    isolation:isolate!important;
    margin-top:-1px!important;
    border:0!important;
    overflow:hidden!important;
    background:rgba(251,252,249,.94)!important;
  }
  .route-nav::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    inset:0!important;
    z-index:20!important;
    pointer-events:none!important;
    background:
      linear-gradient(var(--v31-rule),var(--v31-rule)) 0 0/100% 1px no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 0 100%/100% 1px no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 0 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 14.2857142857% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 28.5714285714% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 42.8571428571% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 57.1428571429% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 71.4285714286% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 85.7142857143% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 100% 0/1px 100% no-repeat!important;
  }
  .route-nav button{
    z-index:1!important;
    top:auto!important;
    margin:0!important;
    height:100%!important;
    min-height:100%!important;
    border:0!important;
    box-sizing:border-box!important;
    background:transparent!important;
  }
  .route-nav button::before,
  .route-nav button::after{
    display:none!important;
    content:none!important;
  }
  .route-nav button[aria-current="page"]{
    margin:0!important;
    height:100%!important;
    min-height:100%!important;
    border:0!important;
    background:#f1f5f1!important;
    background-image:none!important;
    box-shadow:none!important;
  }
}

/* ============================================================
   V7.4 - V7.3 mobile polish retained; Chinese copy refresh applied,
   with a single desktop masthead/navigation seam.
   ============================================================ */

/* The route navigator now has a dedicated shell so mobile scroll controls can
   sit above the horizontal strip without becoming part of its scroll content. */
.route-nav-shell{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  height:var(--v51-nav)!important;
  min-height:var(--v51-nav)!important;
  align-self:stretch!important;
  overflow:visible!important;
  isolation:isolate;
}
.route-nav-scroll-controls{display:none}

/* Desktop: make the cells a touch taller, stretch them one physical pixel up
   into the masthead seam, and let the masthead hairline be the only top rule. */
@media(min-width:1101px){
  :root{--v31-bar-h:78px!important}
}
@media(min-width:901px){
  :root{--v51-nav:64px!important}
  .route-nav-shell{
    height:var(--v51-nav)!important;
    min-height:var(--v51-nav)!important;
  }
  .route-nav{
    transform:translateY(-1px)!important;
    margin:0!important;
    height:calc(100% + 1px)!important;
    min-height:calc(100% + 1px)!important;
  }
  .route-nav button,
  .route-nav button[aria-current="page"]{
    height:100%!important;
    min-height:100%!important;
    padding-top:11px!important;
    padding-bottom:10px!important;
  }
  /* No second horizontal line at the top: the persistent masthead already
     supplies it. Vertical cell rules now meet that line cleanly. */
  .route-nav::before{
    background:
      linear-gradient(var(--v31-rule),var(--v31-rule)) 0 100%/100% 1px no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 0 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 14.2857142857% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 28.5714285714% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 42.8571428571% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 57.1428571429% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 71.4285714286% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 85.7142857143% 0/1px 100% no-repeat,
      linear-gradient(var(--v31-rule),var(--v31-rule)) 100% 0/1px 100% no-repeat!important;
  }
}

/* Mobile homepage cards: scale the typographic system with the device rather
   than stepping between fixed sizes. This also gives Chinese titles enough
   measure to preserve their intended two-part phrasing. */
@media(max-width:760px) and (orientation:portrait){
  .audience-card,
  html.v88 .audience-card:first-child{
    gap:clamp(5px,1.9vw,9px)!important;
  }
  .audience-card .icon-frame{
    width:clamp(27px,8.4vw,35px)!important;
    height:clamp(27px,8.4vw,35px)!important;
    flex:0 0 clamp(27px,8.4vw,35px)!important;
  }
  .audience-card .icon-frame svg{
    width:clamp(14px,4.5vw,18px)!important;
    height:clamp(14px,4.5vw,18px)!important;
  }
  .card-overline{
    font-size:clamp(7.5px,2.2vw,9px)!important;
    line-height:1.16!important;
    letter-spacing:.085em!important;
    margin-bottom:clamp(4px,1.3vw,6px)!important;
  }
  .card-title{
    font-size:clamp(13.5px,3.95vw,17.25px)!important;
    line-height:1.14!important;
    letter-spacing:-.025em!important;
    padding-right:clamp(4px,1.5vw,8px)!important;
    text-wrap:balance!important;
    overflow-wrap:normal!important;
  }
  html.chinese.v88 .card-title{
    font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC","Noto Sans SC",sans-serif!important;
    font-size:clamp(12.8px,3.65vw,15px)!important;
    font-weight:500!important;
    line-height:1.34!important;
    letter-spacing:.01em!important;
    padding-right:0!important;
    font-style:normal!important;
    font-synthesis:none!important;
    line-break:strict!important;
    word-break:normal!important;
    text-wrap:balance!important;
  }
  html.chinese.v88 .card-overline{
    font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC","Noto Sans SC",sans-serif!important;
    font-size:clamp(7.5px,2.15vw,8.8px)!important;
    font-weight:600!important;
    letter-spacing:.07em!important;
  }
}

/* Mobile route strip: genuine horizontal overflow, snap-to-cell behaviour and
   calm circular controls. Drag/swipe still works; the arrows make it obvious. */
@media(max-width:900px){
  .route-nav-shell{
    height:var(--v51-nav)!important;
    min-height:var(--v51-nav)!important;
    background:rgba(251,252,249,.96)!important;
  }
  .route-nav{
    transform:none!important;
    display:flex!important;
    grid-template-columns:none!important;
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    margin:0!important;
    padding:0 42px 0 0!important;
    box-sizing:border-box!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain!important;
    scroll-snap-type:x proximity!important;
    scroll-padding-inline:42px 46px!important;
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
    -webkit-overflow-scrolling:touch;
  }
  .route-nav::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  .route-nav::before{display:none!important;content:none!important}
  .route-nav button,
  .route-nav button[aria-current="page"]{
    flex:0 0 clamp(106px,31.5vw,138px)!important;
    width:auto!important;
    min-width:clamp(106px,31.5vw,138px)!important;
    max-width:none!important;
    height:100%!important;
    min-height:100%!important;
    padding:8px 13px!important;
    border:0!important;
    border-right:1px solid var(--v51-line)!important;
    box-sizing:border-box!important;
    scroll-snap-align:start!important;
    background:transparent!important;
  }
  .route-nav button[aria-current="page"]{
    background:#f1f5f1!important;
  }
  .route-nav button:last-of-type{border-right:1px solid var(--v51-line)!important}
  .route-nav button b{
    font-size:clamp(10.5px,2.95vw,12px)!important;
    line-height:1.18!important;
    text-wrap:balance!important;
  }
  html.chinese .route-nav button b{
    font-family:var(--editorial-zh-sans)!important;
    letter-spacing:.035em!important;
  }

  .route-nav-scroll-controls{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    z-index:160!important;
    pointer-events:none!important;
  }
  .route-nav-scroll{
    position:absolute!important;
    top:50%!important;
    width:31px!important;
    height:31px!important;
    min-width:31px!important;
    min-height:31px!important;
    padding:0!important;
    margin:0!important;
    display:grid!important;
    place-items:center!important;
    border:1px solid rgba(50,79,84,.24)!important;
    border-radius:50%!important;
    background:rgba(252,253,250,.94)!important;
    color:#244650!important;
    box-shadow:0 5px 16px rgba(22,48,56,.11),inset 0 1px 0 rgba(255,255,255,.9)!important;
    backdrop-filter:blur(9px)!important;
    -webkit-backdrop-filter:blur(9px)!important;
    opacity:0!important;
    pointer-events:none!important;
    transition:opacity .2s ease,transform .22s ease,box-shadow .22s ease!important;
    -webkit-tap-highlight-color:transparent;
  }
  .route-nav-scroll--prev{left:7px!important;transform:translateY(-50%)!important}
  .route-nav-scroll--next{right:7px!important;transform:translateY(-50%)!important}
  .route-nav-scroll svg{width:15px!important;height:15px!important;stroke-width:1.65!important}
  .route-nav-scroll--prev svg{transform:rotate(180deg)!important}
  .route-nav-shell.can-scroll-left .route-nav-scroll--prev,
  .route-nav-shell.can-scroll-right .route-nav-scroll--next{
    opacity:1!important;
    pointer-events:auto!important;
  }
  .route-nav-shell.can-scroll-left .route-nav-scroll--prev:active,
  .route-nav-shell.can-scroll-right .route-nav-scroll--next:active{
    transform:translateY(-50%) scale(.94)!important;
    box-shadow:0 2px 9px rgba(22,48,56,.1)!important;
  }
  .route-nav-shell::before,
  .route-nav-shell::after{
    content:"";
    position:absolute;
    top:1px;
    bottom:1px;
    z-index:145;
    width:48px;
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
  }
  .route-nav-shell::before{
    left:0;
    background:linear-gradient(90deg,rgba(251,252,249,.98) 0%,rgba(251,252,249,.76) 43%,rgba(251,252,249,0) 100%);
  }
  .route-nav-shell::after{
    right:0;
    background:linear-gradient(270deg,rgba(251,252,249,.98) 0%,rgba(251,252,249,.76) 43%,rgba(251,252,249,0) 100%);
  }
  .route-nav-shell.can-scroll-left::before{opacity:1}
  .route-nav-shell.can-scroll-right::after{opacity:1}
}

@media(prefers-reduced-motion:reduce){
  .route-nav-scroll{transition:none!important}
}


/* ================================================================
   V7.9.1d integration repair
   Long-form propositions must be composed for their content rather than
   forced through the generic short-page grid. The homepage audience row
   also keeps each card to the same visual density.
   ================================================================ */

/* Homepage audience cards: equal visual rhythm at desktop sizes. */
@media(min-width:761px){
  html.v88 .audience-card[data-open="advisers"] .card-title{
    max-width:18ch!important;
  }
  html.v88 .audience-card[data-open="advisers"] .card-caption{
    max-width:34ch!important;
  }
}

/* Adviser page: deliberate 2 x 2 editorial structure, with collaboration
   modes held in the rail instead of repeating them as seven body sections. */
@media(min-width:901px){
  body .explore-page[data-route="advisers"] .explore-main{
    grid-template-columns:minmax(0,5fr) minmax(360px,2fr)!important;
    align-items:start!important;
    overflow:visible!important;
  }
  body .explore-page[data-route="advisers"] .route-copy,
  body .explore-page[data-route="advisers"] .route-aside{
    justify-content:flex-start!important;
    align-items:flex-start!important;
    overflow:visible!important;
    max-height:none!important;
  }
  body .explore-page[data-route="advisers"] .route-copy{
    padding-top:clamp(30px,4.1vh,48px)!important;
    padding-bottom:clamp(36px,5vh,58px)!important;
  }
  body .explore-page[data-route="advisers"] .route-aside{
    padding-top:clamp(32px,4.2vh,50px)!important;
    padding-bottom:clamp(36px,5vh,58px)!important;
  }
  body .explore-page[data-route="advisers"] #explore-title.route-title{
    max-width:15ch!important;
  }
  body .explore-page[data-route="advisers"] .route-lead{
    max-width:760px!important;
  }
  body .explore-page[data-route="advisers"] .route-sections{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0 38px!important;
    margin-top:27px!important;
    max-width:900px!important;
  }
  body .explore-page[data-route="advisers"] .route-section,
  body .explore-page[data-route="advisers"] .route-section:nth-child(n+3){
    padding-top:16px!important;
    padding-bottom:4px!important;
    margin-top:0!important;
    border-top:0!important;
  }
  body .explore-page[data-route="advisers"] .route-section:nth-child(n+3){
    margin-top:18px!important;
    padding-top:18px!important;
    border-top:1px solid var(--editorial-rule)!important;
  }
  body .explore-page[data-route="advisers"] .route-section p{
    max-width:none!important;
    font-size:14.5px!important;
    line-height:1.58!important;
  }
  body .explore-page[data-route="advisers"] .proof-list-v51>div{
    grid-template-columns:minmax(116px,136px) minmax(0,1fr)!important;
    gap:20px!important;
    padding:15px 0!important;
  }
  body .explore-page[data-route="advisers"] .aside-action-stack{
    margin-top:14px!important;
  }
}

@media(min-width:901px) and (max-height:800px){
  body .explore-page[data-route="advisers"] .route-copy,
  body .explore-page[data-route="advisers"] .route-aside{
    padding-top:24px!important;
    padding-bottom:32px!important;
  }
  body .explore-page[data-route="advisers"] .route-sections{
    margin-top:20px!important;
    gap:0 30px!important;
  }
  body .explore-page[data-route="advisers"] .route-section,
  body .explore-page[data-route="advisers"] .route-section:nth-child(n+3){
    padding-top:13px!important;
  }
  body .explore-page[data-route="advisers"] .route-section:nth-child(n+3){
    margin-top:13px!important;
  }
  body .explore-page[data-route="advisers"] .route-section p{
    font-size:13.5px!important;
    line-height:1.5!important;
  }
  body .explore-page[data-route="advisers"] .proof-list-v51>div{
    padding:11px 0!important;
  }
}

/* Invitation and Contact carry materially more information than the short
   audience pages. Keep the existing site grid, but start at the top and let
   the document grow naturally instead of vertically centring long content. */
@media(min-width:901px){
  body .explore-page[data-route="invitation"] .route-copy,
  body .explore-page[data-route="invitation"] .route-aside,
  body .explore-page[data-route="contact"] .route-copy,
  body .explore-page[data-route="contact"] .route-aside{
    justify-content:flex-start!important;
    align-items:flex-start!important;
    overflow:visible!important;
    max-height:none!important;
  }
  body .explore-page[data-route="invitation"] .route-copy,
  body .explore-page[data-route="contact"] .route-copy{
    padding-top:clamp(30px,4vh,48px)!important;
    padding-bottom:clamp(38px,5vh,62px)!important;
  }
  body .explore-page[data-route="invitation"] .route-aside,
  body .explore-page[data-route="contact"] .route-aside{
    padding-top:clamp(32px,4.2vh,50px)!important;
    padding-bottom:clamp(38px,5vh,62px)!important;
  }
  body .explore-page[data-route="invitation"] .route-sections{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0 38px!important;
  }
  body .explore-page[data-route="invitation"] .route-section:nth-child(n+3){
    margin-top:20px!important;
    padding-top:18px!important;
    border-top:1px solid var(--editorial-rule)!important;
  }
  body .explore-page[data-route="invitation"] .route-section p{
    max-width:none!important;
  }
}

/* Mobile remains natural document flow, but adviser sections should read as
   individual blocks rather than inherit any desktop grouping. */
@media(max-width:900px){
  body .explore-page[data-route="advisers"] .route-sections{
    grid-template-columns:1fr!important;
  }
  body .explore-page[data-route="advisers"] .route-section + .route-section{
    border-top:1px solid var(--editorial-rule)!important;
    margin-top:17px!important;
    padding-top:17px!important;
  }
  body .explore-page[data-route="advisers"] .route-section p{
    max-width:none!important;
  }
}

/* Content-heavy public routes use normal document height on desktop. This
   prevents the rail or later body sections from being trapped behind the
   footer on shorter laptop viewports. */
@media(min-width:901px){
  body .explore-page:is([data-route="advisers"],[data-route="invitation"],[data-route="contact"],[data-route="month"]){
    height:auto!important;
    min-height:100svh!important;
    max-height:none!important;
    overflow:visible!important;
    grid-template-rows:auto auto auto!important;
    align-content:start!important;
  }
  body .explore-page:is([data-route="advisers"],[data-route="invitation"],[data-route="contact"],[data-route="month"]) .explore-main{
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    align-items:start!important;
  }
  body .explore-page:is([data-route="advisers"],[data-route="invitation"],[data-route="contact"],[data-route="month"]) .route-copy,
  body .explore-page:is([data-route="advisers"],[data-route="invitation"],[data-route="contact"],[data-route="month"]) .route-aside{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }
  body .explore-page:is([data-route="advisers"],[data-route="invitation"],[data-route="contact"],[data-route="month"]) .explore-footer{
    position:relative!important;
    z-index:1!important;
  }
}

/* V7.9.1d adviser mobile rail repair. The generic mobile proof module was
   designed for three very short facts; adviser collaboration has four
   substantive modes and therefore needs a readable vertical treatment. */
@media(max-width:900px){
  body .explore-page[data-route="advisers"] .proof-list-v51{
    display:block!important;
    grid-template-columns:none!important;
    border-top:1px solid var(--editorial-rule)!important;
  }
  body .explore-page[data-route="advisers"] .proof-list-v51>div,
  body .explore-page[data-route="advisers"] .proof-list-v51>div+div{
    display:grid!important;
    grid-template-columns:minmax(88px,104px) minmax(0,1fr)!important;
    gap:12px!important;
    padding:12px 0!important;
    border-right:0!important;
    border-bottom:1px solid var(--editorial-rule)!important;
  }
  body .explore-page[data-route="advisers"] .proof-list-v51 b{
    font-size:9.7px!important;
    line-height:1.35!important;
  }
  body .explore-page[data-route="advisers"] .proof-list-v51 p{
    margin-top:0!important;
    font-size:13px!important;
    line-height:1.45!important;
  }
  body .explore-page[data-route="advisers"] .aside-action-stack{
    margin-top:10px!important;
  }
  body .explore-page[data-route="advisers"] .support-link{
    min-height:42px!important;
    font-size:10.5px!important;
  }
}

/* V7.9.1d invitation composition. The fifth section is a concluding band,
   rather than an orphaned half-row after the two-by-two explanation above. */
@media(min-width:1101px){
  body .explore-page[data-route="invitation"] .route-section:nth-child(5){
    grid-column:1 / -1!important;
    display:grid!important;
    grid-template-columns:minmax(150px,.72fr) minmax(0,1.8fr)!important;
    column-gap:34px!important;
    align-items:start!important;
  }
  body .explore-page[data-route="invitation"] .route-section:nth-child(5) h3{
    margin:0!important;
  }
  body .explore-page[data-route="invitation"] .route-section:nth-child(5) p{
    margin:0!important;
    max-width:64ch!important;
  }
}

/* ================================================================
   V7.9.1da focused visual correction
   Scope is intentionally limited to the homepage adviser teaser,
   Month and Invitation. All other V7.9.1d route compositions remain intact.
   ================================================================ */

/* Homepage: all four editorial teasers should read as one balanced row.
   Keep the two longest English headings on a single line by using the space
   more efficiently, rather than adding more copy or increasing card height. */
@media(min-width:901px){
  html.v88 .audience-card .card-title{
    white-space:nowrap!important;
    text-wrap:nowrap!important;
  }
  html.v88 .audience-card[data-open="families"] .card-title,
  html.v88 .audience-card[data-open="advisers"] .card-title{
    font-size:clamp(17px,1.08vw,19.5px)!important;
    letter-spacing:-.04em!important;
    max-width:none!important;
  }
  html.v88 .audience-card[data-open="advisers"] .card-caption{
    max-width:30ch!important;
    font-size:clamp(11.5px,.76vw,12.8px)!important;
    line-height:1.35!important;
  }
  html.chinese.v88 .audience-card .card-title{
    white-space:normal!important;
    text-wrap:balance!important;
  }
}
@media(min-width:901px) and (max-width:1280px){
  html.v88 .audience-card[data-open="families"] .card-title,
  html.v88 .audience-card[data-open="advisers"] .card-title{
    font-size:16.2px!important;
  }
}

/* Month and Invitation return to the established page-two viewport.
   V7.9.1d's long-document rule remains untouched for every other route. */
@media(min-width:901px){
  body .explore-page:is([data-route="month"],[data-route="invitation"]){
    box-sizing:border-box!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:100vh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
    align-content:stretch!important;
  }
  body .explore-page:is([data-route="month"],[data-route="invitation"]) .explore-main{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    grid-template-columns:minmax(0,5fr) minmax(330px,2fr)!important;
    align-items:stretch!important;
    overflow:hidden!important;
  }
  body .explore-page:is([data-route="month"],[data-route="invitation"]) .route-copy,
  body .explore-page:is([data-route="month"],[data-route="invitation"]) .route-aside{
    box-sizing:border-box!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
  }
  body .explore-page:is([data-route="month"],[data-route="invitation"]) .explore-footer{
    position:relative!important;
    z-index:1!important;
  }
}

/* Month: rich editorial information on the left, interactive calendar on the
   right. Public/full explanations appear once, not three times. */
@media(min-width:901px){
  body .explore-page[data-route="month"] .route-copy,
  body .explore-page[data-route="month"] .route-aside{
    justify-content:flex-start!important;
    align-items:flex-start!important;
    overflow:hidden!important;
    padding-top:clamp(18px,2.5vh,28px)!important;
    padding-bottom:clamp(16px,2.2vh,24px)!important;
  }
  body .explore-page[data-route="month"] .route-copy{
    padding-left:clamp(52px,6.4vw,118px)!important;
    padding-right:clamp(42px,5.2vw,88px)!important;
  }
  body .explore-page[data-route="month"] .route-aside{
    border-left:1px solid var(--editorial-rule)!important;
    background:#fafbf8!important;
    padding-left:clamp(26px,2.6vw,44px)!important;
    padding-right:clamp(28px,3.3vw,56px)!important;
  }
  body .explore-page[data-route="month"] #explore-title.route-title{
    max-width:12ch!important;
    margin-bottom:11px!important;
    font-size:clamp(40px,3.15vw,53px)!important;
    line-height:.96!important;
  }
  body .explore-page[data-route="month"] .route-kicker{margin-bottom:9px!important}
  body .explore-page[data-route="month"] .route-lead{
    max-width:760px!important;
    font-size:15.2px!important;
    line-height:1.47!important;
  }
  body .explore-page[data-route="month"] .month-audience-teasers{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:0!important;
    max-width:none!important;
    margin-top:20px!important;
    padding-top:13px!important;
    border-top:1px solid var(--editorial-rule)!important;
  }
  body .explore-page[data-route="month"] .month-audience-teasers section{
    min-width:0!important;
    padding:0 17px 13px!important;
  }
  body .explore-page[data-route="month"] .month-audience-teasers section:first-child{padding-left:0!important}
  body .explore-page[data-route="month"] .month-audience-teasers section:last-child{padding-right:0!important}
  body .explore-page[data-route="month"] .month-audience-teasers section + section{border-left:1px solid var(--editorial-rule)!important}
  body .explore-page[data-route="month"] .month-audience-teasers h3{margin-bottom:6px!important}
  body .explore-page[data-route="month"] .month-audience-teasers p{
    font-size:12.55px!important;
    line-height:1.45!important;
  }
  body .explore-page[data-route="month"] .month-view-explainer{
    display:grid!important;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
    gap:0!important;
    max-width:none!important;
    margin-top:16px!important;
    border-top:1px solid var(--editorial-rule)!important;
    border-bottom:1px solid var(--editorial-rule)!important;
  }
  body .explore-page[data-route="month"] .month-view-explainer .route-section,
  body .explore-page[data-route="month"] .month-view-explainer .route-section:nth-child(n+3){
    margin:0!important;
    padding:12px 18px 13px!important;
    border-top:0!important;
  }
  body .explore-page[data-route="month"] .month-view-explainer .route-section:first-child{padding-left:0!important}
  body .explore-page[data-route="month"] .month-view-explainer .route-section:last-child{padding-right:0!important;border-left:1px solid var(--editorial-rule)!important}
  body .explore-page[data-route="month"] .month-view-explainer .route-section h3{margin-bottom:5px!important}
  body .explore-page[data-route="month"] .month-view-explainer .route-section p{
    max-width:none!important;
    font-size:12.4px!important;
    line-height:1.43!important;
  }
  body .explore-page[data-route="month"] .month-main-cta{
    margin-top:7px!important;
    min-height:27px!important;
    font-size:10.5px!important;
  }
  body .explore-page[data-route="month"] .support-month-v51{width:100%!important;max-width:none!important;padding-top:0!important}
  body .explore-page[data-route="month"] .month-meta{margin-bottom:5px!important}
  body .explore-page[data-route="month"] .month-art-compact{
    height:34px!important;
    margin:0 0 5px!important;
    overflow:hidden!important;
  }
  body .explore-page[data-route="month"] .month-art-compact .month-art{
    width:112px!important;
    height:34px!important;
    max-height:34px!important;
    object-fit:contain!important;
    object-position:left center!important;
  }
  body .explore-page[data-route="month"] .calendar-head{display:block!important;margin:0 0 4px!important}
  body .explore-page[data-route="month"] .calendar-head span,
  body .explore-page[data-route="month"] .month-preview-key{display:none!important}
  body .explore-page[data-route="month"] .month-weekdays{margin:6px 0 5px!important}
  body .explore-page[data-route="month"] .month-calendar{gap:3px!important;margin-bottom:6px!important}
  body .explore-page[data-route="month"] .month-day{min-height:30px!important;font-size:10.8px!important;border-radius:9px!important}
  body .explore-page[data-route="month"] .month-day.has-event::after{top:4px!important;right:5px!important;width:6px!important;height:6px!important}
  body .explore-page[data-route="month"] #month-insight-host{
    min-height:0!important;
    max-height:none!important;
    margin-top:7px!important;
  }
  body .explore-page[data-route="month"] #month-insight-host > .month-insight,
  body .explore-page[data-route="month"] #month-insight-host > .month-insight.locked,
  body .explore-page[data-route="month"] #month-insight-host > .month-insight-empty{
    padding:10px 12px!important;
    border-radius:11px!important;
  }
  body .explore-page[data-route="month"] .month-insight-meta{margin-bottom:4px!important;font-size:8.8px!important}
  body .explore-page[data-route="month"] .month-insight h4,
  body .explore-page[data-route="month"] .month-insight-empty h4{
    margin-bottom:5px!important;
    font-size:15px!important;
    line-height:1.22!important;
  }
  body .explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
  body .explore-page[data-route="month"] .month-insight-empty p{
    font-size:11.45px!important;
    line-height:1.4!important;
  }
  body .explore-page[data-route="month"] .month-current-bridge{
    margin-top:7px!important;
    padding-top:7px!important;
  }
  body .explore-page[data-route="month"] .month-current-bridge h5{
    margin-bottom:3px!important;
    font-size:9.4px!important;
  }
  body .explore-page[data-route="month"] .month-current-bridge p{
    font-size:11.15px!important;
    line-height:1.38!important;
  }
  body .explore-page[data-route="month"] .month-deeper{
    margin-top:6px!important;
    min-height:26px!important;
    font-size:9.4px!important;
  }
}

/* Invitation: retain V7.9.1d's complete meaning, but consolidate five repeated
   sections into three designed ideas. Entry actions stay permanently visible. */
@media(min-width:901px){
  body .explore-page[data-route="invitation"] .route-copy,
  body .explore-page[data-route="invitation"] .route-aside{
    justify-content:center!important;
    align-items:center!important;
    overflow:hidden!important;
    padding-top:clamp(18px,2.4vh,26px)!important;
    padding-bottom:clamp(18px,2.4vh,26px)!important;
  }
  body .explore-page[data-route="invitation"] .route-copy{
    padding-left:clamp(52px,6.4vw,118px)!important;
    padding-right:clamp(42px,5.2vw,88px)!important;
  }
  body .explore-page[data-route="invitation"] .route-aside{
    border-left:1px solid var(--editorial-rule)!important;
    background:#fafbf8!important;
    padding-left:clamp(28px,3vw,50px)!important;
    padding-right:clamp(30px,3.5vw,58px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
  }
  body .explore-page[data-route="invitation"] #explore-title.route-title{
    max-width:14.5ch!important;
    margin-bottom:11px!important;
    font-size:clamp(39px,3.15vw,52px)!important;
  }
  body .explore-page[data-route="invitation"] .route-kicker{margin-bottom:9px!important}
  body .explore-page[data-route="invitation"] .route-lead{
    max-width:790px!important;
    font-size:13.8px!important;
    line-height:1.47!important;
  }
  body .explore-page[data-route="invitation"] .route-sections{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:0!important;
    max-width:none!important;
    margin-top:18px!important;
    border-top:1px solid var(--editorial-rule)!important;
    border-bottom:1px solid var(--editorial-rule)!important;
  }
  body .explore-page[data-route="invitation"] .route-section,
  body .explore-page[data-route="invitation"] .route-section:nth-child(n+3),
  body .explore-page[data-route="invitation"] .route-section:nth-child(5){
    display:block!important;
    grid-column:auto!important;
    margin:0!important;
    padding:12px 16px 13px!important;
    border-top:0!important;
  }
  body .explore-page[data-route="invitation"] .route-section:first-child{padding-left:0!important}
  body .explore-page[data-route="invitation"] .route-section:last-child{padding-right:0!important}
  body .explore-page[data-route="invitation"] .route-section + .route-section{border-left:1px solid var(--editorial-rule)!important}
  body .explore-page[data-route="invitation"] .route-section h3{
    margin-bottom:6px!important;
    font-size:10.9px!important;
  }
  body .explore-page[data-route="invitation"] .route-section p{
    max-width:none!important;
    font-size:12.25px!important;
    line-height:1.42!important;
  }
  body .explore-page[data-route="invitation"] .invite-inline>p,
  body .explore-page[data-route="invitation"] .invite-path p{
    font-size:12.2px!important;
    line-height:1.42!important;
  }
  body .explore-page[data-route="invitation"] .invite-path{padding-top:14px!important}
  body .explore-page[data-route="invitation"] .invite-separator{margin:10px 0!important}
  body .explore-page[data-route="invitation"] .micro-button{min-height:37px!important}
}

/* Laptop-height calibration: save vertical space through rhythm, not by
   turning explanatory text into microcopy. */
@media(min-width:901px) and (max-height:820px){
  body .explore-page[data-route="month"] .route-copy,
  body .explore-page[data-route="month"] .route-aside,
  body .explore-page[data-route="invitation"] .route-copy,
  body .explore-page[data-route="invitation"] .route-aside{
    padding-top:13px!important;
    padding-bottom:13px!important;
  }
  body .explore-page[data-route="month"] #explore-title.route-title,
  body .explore-page[data-route="invitation"] #explore-title.route-title{
    font-size:clamp(35px,2.75vw,44px)!important;
  }
  body .explore-page[data-route="month"] .route-lead{font-size:13.5px!important;line-height:1.4!important}
  body .explore-page[data-route="month"] .month-audience-teasers{margin-top:13px!important;padding-top:9px!important}
  body .explore-page[data-route="month"] .month-audience-teasers section{padding-bottom:9px!important}
  body .explore-page[data-route="month"] .month-audience-teasers p{font-size:11.3px!important;line-height:1.38!important}
  body .explore-page[data-route="month"] .month-view-explainer{margin-top:10px!important}
  body .explore-page[data-route="month"] .month-view-explainer .route-section{padding-top:8px!important;padding-bottom:8px!important}
  body .explore-page[data-route="month"] .month-view-explainer .route-section p{font-size:11px!important;line-height:1.36!important}
  body .explore-page[data-route="month"] .month-art-compact{height:23px!important;margin-bottom:2px!important}
  body .explore-page[data-route="month"] .month-art-compact .month-art{height:23px!important;max-height:23px!important;width:88px!important}
  body .explore-page[data-route="month"] .month-day{min-height:25px!important;font-size:9.7px!important}
  body .explore-page[data-route="month"] #month-insight-host > .month-insight,
  body .explore-page[data-route="month"] #month-insight-host > .month-insight.locked,
  body .explore-page[data-route="month"] #month-insight-host > .month-insight-empty{padding:8px 10px!important}
  body .explore-page[data-route="month"] .month-insight h4,
  body .explore-page[data-route="month"] .month-insight-empty h4{font-size:13.8px!important}
  body .explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
  body .explore-page[data-route="month"] .month-insight-empty p,
  body .explore-page[data-route="month"] .month-current-bridge p{font-size:10.25px!important;line-height:1.34!important}
  body .explore-page[data-route="month"] .month-current-bridge{margin-top:5px!important;padding-top:5px!important}
  body .explore-page[data-route="month"] .month-deeper{margin-top:4px!important;min-height:22px!important;font-size:8.8px!important}

  body .explore-page[data-route="invitation"] .route-lead{font-size:12.4px!important;line-height:1.39!important}
  body .explore-page[data-route="invitation"] .route-sections{margin-top:12px!important}
  body .explore-page[data-route="invitation"] .route-section{padding-top:9px!important;padding-bottom:9px!important}
  body .explore-page[data-route="invitation"] .route-section p{font-size:11.25px!important;line-height:1.36!important}
  body .explore-page[data-route="invitation"] .invite-inline>p,
  body .explore-page[data-route="invitation"] .invite-path p{font-size:11.1px!important;line-height:1.34!important}
}

/* Mobile stays in V7.9.1d's natural document flow. */
@media(max-width:900px){
  html.v88 .audience-card .card-title{white-space:normal!important;text-wrap:balance!important}
  body .explore-page[data-route="month"] .month-view-explainer{display:grid!important}
}

/* V7.9.1da final calibration: retain the richer V7.9.1d meaning while keeping
   the three approved surfaces composed within the original visual system. */
@media(min-width:901px){
  /* Homepage: use horizontal space before reducing type. */
  html.v88 .audience-card{
    gap:clamp(11px,.9vw,16px)!important;
    padding-left:clamp(12px,1.05vw,18px)!important;
    padding-right:clamp(12px,1.05vw,18px)!important;
  }
  html.v88 .audience-card[data-open="families"] .card-title,
  html.v88 .audience-card[data-open="advisers"] .card-title{
    font-size:clamp(15.5px,1.0vw,18.2px)!important;
    letter-spacing:-.045em!important;
    white-space:nowrap!important;
  }
  html.v88 .audience-card[data-open="families"] .card-caption,
  html.v88 .audience-card[data-open="advisers"] .card-caption{
    max-width:31ch!important;
  }
  html.chinese.v88 .audience-card{
    gap:clamp(13px,1vw,18px)!important;
  }
  html.chinese.v88 .audience-card .card-title{
    white-space:normal!important;
    letter-spacing:normal!important;
  }

  /* The active Month card changes with the clicked day. Let it use its actual
     height instead of reserving the tallest possible card and creating hidden
     route overflow at laptop widths. */
  body .explore-page[data-route="month"] #month-insight-host{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
}

@media(min-width:901px) and (max-width:1180px){
  html.v88 .audience-card[data-open="families"] .card-title,
  html.v88 .audience-card[data-open="advisers"] .card-title{
    font-size:14.9px!important;
    letter-spacing:-.055em!important;
  }
}
@media(min-width:901px) and (max-width:1180px){
  body .explore-page[data-route="invitation"] .code-row{
    grid-template-columns:1fr!important;
  }
  body .explore-page[data-route="invitation"] .code-row .micro-button{
    width:100%!important;
  }
}
@media(min-width:901px) and (max-width:1180px) and (max-height:820px){
  html.chinese body .explore-page[data-route="invitation"] .route-sections{
    margin-top:6px!important;
  }
  html.chinese body .explore-page[data-route="invitation"] .route-section{
    padding-top:7px!important;
    padding-bottom:7px!important;
  }
}
/* At compact desktop widths, protect card boundaries rather than forcing
   desktop-wide single-line headings into neighbouring cells. The premium
   one-line composition is retained at the normal 1366+ desktop widths. */
@media(min-width:901px) and (max-width:1180px){
  html.v88 .audience-card .card-title,
  html.v88 .audience-card[data-open="families"] .card-title,
  html.v88 .audience-card[data-open="advisers"] .card-title{
    white-space:normal!important;
    text-wrap:balance!important;
    letter-spacing:-.035em!important;
  }
}
