@font-face{font-family:"Study Serif";src:url("../fonts/study-1.woff") format("woff");font-style:normal;font-weight:400;font-display:block}
@font-face{font-family:"Study Serif";src:url("../fonts/study-2.woff") format("woff");font-style:italic;font-weight:400;font-display:block}
@font-face{font-family:"Study Sans";src:url("../fonts/study-3.woff") format("woff");font-style:normal;font-weight:400;font-display:block}




/* SafeStudy UK · final viewport composition
   The 9.5 palette, embedded type, photographs, copy and link destinations are retained.
   Page height is an allocation, never a content-driven minimum. */
:root {
  --pub-ink:#0d2b36; --pub-ink-soft:#31515b; --pub-paper:#f4f5f1; --pub-gold:#b89560;
  --pub-ivory:#fff9ee; --pub-serif:"Study Serif","Songti SC","STSong","SimSun",Georgia,serif;
  --pub-sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI Variable Text","Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  --pub-ease:cubic-bezier(.2,.75,.25,1);
  --pub-viewport-h:100vh; --pub-viewport-w:100vw;
  --pub-safe-t:env(safe-area-inset-top,0px); --pub-safe-b:env(safe-area-inset-bottom,0px);
  --pub-safe-l:env(safe-area-inset-left,0px); --pub-safe-r:env(safe-area-inset-right,0px);
  --pub-gutter:clamp(20px,4.4vw,76px); --pub-bar-h:80px; --pub-dock-h:174px;
  --pub-title-size:66px; --pub-body-size:16px; --pub-intro-top:116px; --pub-intro-width:590px;
  --pub-intro-gap:14px; --pub-eyebrow-size:10px; --pub-label-small:10px; --pub-label-main:20px;
  --pub-card-size:26px; --pub-kicker-size:10px; --pub-card-pad:24px;
}
@supports(height:100svh){:root{--pub-viewport-h:100svh}}
@supports(height:100dvh){:root{--pub-viewport-h:100dvh}}
*{box-sizing:border-box}

html{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;font-synthesis:none}

:where(.pub-site-shell,.pub-sitebar,.pub-menu-backdrop) :is(a){color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
:where(.pub-site-shell,.pub-sitebar,.pub-menu-backdrop) :is(button){font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0;-webkit-tap-highlight-color:transparent}
:where(.pub-site-shell,.pub-sitebar,.pub-menu-backdrop) :is(button,a){touch-action:manipulation}
:where(.pub-site-shell,.pub-sitebar,.pub-menu-backdrop) :is(button:focus-visible,a:focus-visible){outline:2px solid var(--pub-gold);outline-offset:5px}
.pub-hero button:focus-visible,.pub-hero a:focus-visible{outline-color:var(--pub-ivory)}
[hidden]{display:none!important}
:where(.pub-site-shell,.pub-sitebar,.pub-menu-backdrop) :is(svg){display:block;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.pub-site-shell{position:relative;width:100%;height:var(--pub-viewport-h);display:grid;grid-template-rows:minmax(0,1fr) var(--pub-dock-h);overflow:hidden;isolation:isolate}
.pub-hero{position:relative;min-width:0;min-height:0;overflow:hidden;isolation:isolate;color:#fff;background:#293e47}
.pub-hero-photo{position:absolute;inset:0;z-index:-3;overflow:hidden;pointer-events:none}
.pub-hero-photo img{position:absolute;display:block;max-width:none;width:var(--pub-photo-width,100%);height:var(--pub-photo-height,100%);left:var(--pub-photo-left,0);top:var(--pub-photo-top,0);object-fit:var(--pub-photo-object-fit,cover);object-position:left 52%;filter:saturate(.96) contrast(1.01) brightness(1.095)}
.pub-hero::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(90deg,rgba(3,23,32,.33) 0%,rgba(4,25,34,.235) 30%,rgba(4,25,34,.04) 60%,rgba(4,25,34,.095) 100%),linear-gradient(180deg,rgba(3,19,27,.095) 0%,rgba(4,25,35,.005) 39%,rgba(2,18,26,.05) 64%,rgba(2,18,26,.245))}
.pub-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.15)),radial-gradient(ellipse at 61% 46%,rgba(240,215,178,.045),transparent 52%)}
/* Transparent, integrated toolbar. The invitation is always text-led. */
.pub-sitebar{position:absolute;inset:0 0 auto;height:calc(var(--pub-bar-h) + var(--pub-safe-t));padding:var(--pub-safe-t) max(var(--pub-gutter),var(--pub-safe-r)) 0 max(var(--pub-gutter),var(--pub-safe-l));display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:10}
.pub-sitebar::after{content:"";position:absolute;left:max(var(--pub-gutter),var(--pub-safe-l));right:max(var(--pub-gutter),var(--pub-safe-r));bottom:0;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.48),rgba(255,255,255,.20) 60%,transparent)}
.pub-brand{display:flex;align-items:center;gap:10px;flex:none;min-height:44px;color:#fff}
.pub-brand-mark{width:26px;height:28px;object-fit:contain;filter:brightness(0) invert(1)}
.pub-brand-copy{display:flex;align-items:center;gap:20px}
.pub-wordmark{display:flex;align-items:baseline;gap:8px;white-space:nowrap;font:400 36px/.95 var(--pub-serif);letter-spacing:-.055em}
.pub-wordmark small{font:400 9px/1 var(--pub-sans);letter-spacing:.04em;white-space:nowrap;opacity:.9}
.pub-brand-note{padding-left:19px;border-left:1px solid #ffffff42;font:500 10px/1.45 var(--pub-sans);letter-spacing:.09em;text-transform:uppercase;color:#ffffffe2}
.pub-actions{display:flex;align-items:center;gap:10px;flex:none}
.pub-lang-switch{display:flex;align-items:center;padding:3px;border:1px solid #ffffff50;border-radius:40px;background:#071f4030;font:400 11px/1 var(--pub-sans)}
.pub-lang-switch button{position:relative;min-width:38px;height:34px;padding:0 7px;border-radius:40px;transition:background .2s,color .2s;color:#ffffffe6}
.pub-lang-switch button[aria-pressed="true"]{background:var(--pub-paper);color:var(--pub-ink)}
.pub-invite{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #ffffff66;border-radius:40px;min-height:42px;padding:0 16px;background:#09273630;font:400 12px/1.2 var(--pub-sans);white-space:nowrap}
.pub-invite svg{width:19px;height:19px}
.pub-menu-toggle{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid #ffffff66;border-radius:50%;background:#09273630}
.pub-menu-lines{display:grid;gap:5px;width:18px}
.pub-menu-lines i{height:1px;background:currentColor}
@media(hover:hover){.pub-invite:hover,.pub-menu-toggle:hover{background:#ffffff20;border-color:#ffffffb3}.pub-lang-switch button:hover:not([aria-pressed="true"]){background:#ffffff18}}
/* The copy is measured at its actual rendered font metrics before the route is laid out. */
.pub-intro{position:absolute;z-index:3;left:max(var(--pub-gutter),var(--pub-safe-l));top:calc(var(--pub-intro-top) + var(--pub-safe-t));width:var(--pub-intro-width);text-shadow:0 2px 18px #02121a4d}
.pub-eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 var(--pub-intro-gap);font:400 var(--pub-eyebrow-size)/1.2 var(--pub-sans);letter-spacing:.18em;text-transform:uppercase;color:#fffffff0}
.pub-eyebrow::before{content:"";width:25px;height:1px;flex:none;background:#d8c39d}
.pub-headline{margin:0 0 var(--pub-intro-gap);font:400 var(--pub-title-size)/.97 var(--pub-serif);letter-spacing:-.046em}
.pub-headline .pub-title-line{display:block;width:max-content;max-width:100%}
.pub-headline .pub-second{display:block;margin-top:.05em;font-style:italic}
.pub-hero-copy{max-width:600px;margin:0 0 calc(var(--pub-intro-gap) * .55);font:400 var(--pub-body-size)/1.47 var(--pub-sans);color:#fffffff0;letter-spacing:.005em;text-wrap:pretty}
.pub-cta-link{display:flex;align-items:center;gap:18px;min-height:36px;width:max-content;max-width:100%;font:400 calc(var(--pub-body-size) * .95)/1.2 var(--pub-sans);border-bottom:1px solid #ffffff9c}
.pub-cta-link svg{width:18px;height:18px;flex:none}
@media(hover:hover){.pub-cta-link:hover{border-color:var(--pub-ivory)}.pub-cta-link:hover svg{transform:translateX(3px)}}
.pub-cta-link svg{transition:transform .2s var(--pub-ease)}
/* A single path in CSS-pixel coordinates supplies route, nodes, flight and tangent. */
.pub-journey{position:absolute;inset:0;z-index:2;pointer-events:none;visibility:hidden}
.pub-ready .pub-journey{visibility:visible}
.pub-journey-svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.pub-route-shadow{fill:none;stroke:#051b2680;stroke-width:4;vector-effect:non-scaling-stroke}
.pub-route-line{fill:none;stroke:var(--pub-ivory);stroke-opacity:.82;stroke-width:1.35;vector-effect:non-scaling-stroke}
.pub-route-progress{fill:none;stroke:#fffdf5;stroke-opacity:0;stroke-width:2.05;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px rgba(255,248,228,.22));pointer-events:none}
.pub-stages{margin:0;padding:0;list-style:none}
.pub-stage{position:absolute;width:0;height:0}
.pub-journey-node{position:absolute;left:-22px;top:-22px;width:44px;height:44px;border-radius:50%;pointer-events:auto;color:var(--pub-ivory)}
.pub-marker{position:absolute;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);border:2px solid var(--pub-ivory);border-radius:50%;background:#32525bd9;box-shadow:0 1px 7px #04171a88;transition:box-shadow .2s,background .2s}
.pub-journey-label{position:absolute;display:flex;flex-direction:column;width:max-content;gap:2px;line-height:1;white-space:nowrap;text-shadow:0 1px 3px #02131afa,0 2px 12px #02131ae0}
.pub-journey-label>span{font:400 var(--pub-label-small)/1.2 var(--pub-sans);letter-spacing:.12em;text-transform:uppercase;color:#fff9eff0}
.pub-journey-label em{font:400 var(--pub-label-main)/1.08 var(--pub-serif);letter-spacing:-.018em;color:#fff}
@media(hover:hover){.pub-journey-node:hover .pub-marker{background:#ac8d5d;box-shadow:0 0 0 5px #fff9ee20}.pub-journey-node:hover .pub-journey-label{color:#fff}}
.pub-journey-node:focus-visible .pub-journey-label{text-decoration:underline;text-underline-offset:4px}
.pub-continuation{opacity:0;stroke:var(--pub-ivory);stroke-width:1.35;fill:#16313c38;pointer-events:none}
.pub-quote{position:absolute;right:max(var(--pub-gutter),var(--pub-safe-r));bottom:48px;z-index:3;margin:0;width:260px;text-align:right;font:italic clamp(16px,1.02vw,20px)/1.43 var(--pub-serif);color:#ffffffe6;text-shadow:0 2px 12px #051923}
.pub-quote::before{content:"";display:block;margin:0 0 12px auto;width:30px;height:1px;background:#d8c39d99}
.pub-photo-credit{position:absolute;right:max(var(--pub-gutter),var(--pub-safe-r));bottom:22px;font:400 9px/1 var(--pub-sans);letter-spacing:.18em;text-transform:uppercase;color:#ffffffb8}
/* Pale-paper audience dock. The safe area is INSIDE its allocated height. */
.pub-dock{position:relative;z-index:5;min-width:0;min-height:0;padding:0 max(var(--pub-safe-r),0px) var(--pub-safe-b) max(var(--pub-safe-l),0px);background:linear-gradient(125deg,#fafbf8,#f1f3ee);box-shadow:0 -8px 35px #061e2820;border-top:1px solid #ffffffcc}
.pub-audience-grid{height:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:14px max(12px,calc(var(--pub-gutter) - var(--pub-card-pad)));min-width:0;min-height:0}
.pub-audience-card{position:relative;min-width:0;min-height:0;display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:9px var(--pub-card-pad);transition:background .2s}
.pub-audience-card+.pub-audience-card{border-left:1px solid #13374026}
.pub-icon-ring{width:38px;height:38px;border:1px solid #1a444e33;border-radius:50%;display:grid;place-items:center;color:#254955}
.pub-icon-ring svg{width:20px;height:20px;stroke-width:1.28}
.pub-card-copy{display:block;min-width:0}
.pub-card-kicker{display:block;margin:0 0 9px;font:400 var(--pub-kicker-size)/1.2 var(--pub-sans);letter-spacing:.12em;text-transform:uppercase;color:#274751}
.pub-card-title{display:block;font:400 var(--pub-card-size)/1.08 var(--pub-serif);letter-spacing:-.031em;text-wrap:pretty}
.pub-card-caption{display:block;margin-top:9px;padding-right:24px;font:400 12px/1.4 var(--pub-sans);color:#48616a}
.pub-card-arrow{position:absolute;right:var(--pub-card-pad);bottom:5px;width:27px;height:27px;display:grid;place-items:center;border:1px solid #a18251a6;border-radius:50%;color:#947747}
.pub-card-arrow svg{width:13px;height:13px;stroke-width:1.4}
@media(hover:hover){.pub-audience-card:hover{background:#ffffff70}.pub-audience-card:hover .pub-card-arrow{background:#ece6da}.pub-audience-card:hover .pub-card-title{color:#446370}}
.pub-audience-card:focus-visible{outline-offset:-4px}
/* Chinese is composed independently; no faux-italic CJK. */
html[data-lang="zh"] .pub-wordmark{font-size:32px;letter-spacing:.075em}
html[data-lang="zh"] .pub-wordmark small{letter-spacing:0}
html[data-lang="zh"] .pub-headline{font-size:calc(var(--pub-title-size) * .88);line-height:1.22;letter-spacing:.015em}
html[data-lang="zh"] .pub-headline .pub-second{font-style:normal;margin-top:.18em}
html[data-lang="zh"] .pub-eyebrow{letter-spacing:.18em}
html[data-lang="zh"] .pub-hero-copy{line-height:1.65;letter-spacing:.03em}
html[data-lang="zh"] .pub-journey-label>span{letter-spacing:.12em}
html[data-lang="zh"] .pub-journey-label em{font-size:calc(var(--pub-label-main) * .94);line-height:1.18;letter-spacing:.03em}
html[data-lang="zh"] .pub-card-title{font-size:calc(var(--pub-card-size) * .88);line-height:1.35;letter-spacing:.01em}
@media(max-width:1100px){.pub-brand-note{display:none}}
/* Portrait composition: typography and dock allocation are continuously height-aware. */
html[data-layout="portrait"] .pub-hero::before{background:linear-gradient(90deg,rgba(3,26,35,.43) 0%,rgba(4,25,35,.29) 42%,rgba(4,25,35,.08) 76%,rgba(4,25,35,.12)),linear-gradient(180deg,rgba(3,19,27,.12) 0%,rgba(4,25,35,.025) 42%,rgba(3,25,35,.08) 66%,rgba(2,18,26,.29))}
html[data-layout="portrait"] .pub-sitebar{gap:8px}
html[data-layout="portrait"] .pub-brand{gap:5px}
html[data-layout="portrait"] .pub-brand-mark{width:19px;height:23px}
html[data-layout="portrait"] .pub-wordmark{font-size:25px;display:block;position:relative}
html[data-layout="portrait"] .pub-wordmark small{display:block;margin-top:4px;font-size:7px;letter-spacing:.05em}
html[data-layout="portrait"] .pub-brand-note{display:none}
html[data-layout="portrait"] .pub-actions{gap:5px}
html[data-layout="portrait"] .pub-lang-switch{padding:2px;font-size:10px}
html[data-layout="portrait"] .pub-lang-switch button{min-width:28px;height:33px;padding:0 4px}
html[data-layout="portrait"] .pub-invite{min-height:39px;padding:0 10px;font-size:10.5px;gap:0}
html[data-layout="portrait"] .pub-invite svg{display:none}
html[data-layout="portrait"] .pub-menu-toggle{width:35px;height:39px;border:0;background:transparent;border-radius:6px}
html[data-layout="portrait"] .pub-menu-lines{width:20px;gap:6px}
html[data-layout="portrait"] .pub-eyebrow{gap:9px}
html[data-layout="portrait"] .pub-eyebrow::before{width:20px}
html[data-layout="portrait"] .pub-hero-copy{max-width:100%;line-height:1.40}
html[data-layout="portrait"] .pub-cta-link{min-height:32px}
html[data-layout="portrait"] .pub-quote,html[data-layout="portrait"] .pub-photo-credit{display:none}
html[data-layout="portrait"] .pub-marker{width:11px;height:11px;border-width:1.8px}
html[data-layout="portrait"] .pub-journey-label{gap:2px}
html[data-layout="portrait"] .pub-audience-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));padding:0 10px}
html[data-layout="portrait"] .pub-audience-card{padding:var(--pub-card-pad) 10px;grid-template-columns:29px minmax(0,1fr);gap:10px;align-content:start}
html[data-layout="portrait"] .pub-audience-card+.pub-audience-card{border-left:0}
html[data-layout="portrait"] .pub-audience-card:nth-child(even){border-left:1px solid #13374026}
html[data-layout="portrait"] .pub-audience-card:nth-child(n+3){border-top:1px solid #13374026}
html[data-layout="portrait"] .pub-icon-ring{width:27px;height:27px}
html[data-layout="portrait"] .pub-icon-ring svg{width:15px;height:15px}
html[data-layout="portrait"] .pub-card-kicker{margin-bottom:5px;letter-spacing:.09em}
html[data-layout="portrait"] .pub-card-title{line-height:1.08}
html[data-layout="portrait"] .pub-card-caption{display:none}
html[data-layout="portrait"] .pub-card-arrow{left:15px;right:auto;bottom:9px;width:20px;height:20px}
html[data-layout="portrait"] .pub-card-arrow svg{width:10px;height:10px}
html[data-layout="portrait"][data-lang="zh"] .pub-wordmark{font-size:24px}
html[data-layout="portrait"][data-lang="zh"] .pub-hero-copy{line-height:1.62}
html[data-layout="portrait"][data-lang="zh"] .pub-card-title{line-height:1.35}
html[data-narrow="true"] .pub-sitebar{gap:5px}
html[data-narrow="true"] .pub-wordmark{font-size:23px}
html[data-narrow="true"] .pub-lang-switch:not(.pub-menu-language) button[aria-pressed="true"]{display:none}
html[data-narrow="true"] .pub-lang-switch:not(.pub-menu-language) button{min-width:28px}
html[data-narrow="true"] .pub-invite{padding:0 9px;font-size:10px}
html[data-narrow="true"] .pub-audience-grid{padding:0 7px}
html[data-narrow="true"] .pub-audience-card{grid-template-columns:24px minmax(0,1fr);gap:7px;padding-left:7px;padding-right:7px}
html[data-narrow="true"] .pub-icon-ring{width:24px;height:24px}
html[data-narrow="true"] .pub-card-arrow{left:10px;bottom:7px}
/* Low-height wide screens use a genuine compact composition, not a clipped desktop. */
html[data-compact="true"] .pub-brand-note,html[data-compact="true"] .pub-card-caption,html[data-compact="true"] .pub-quote,html[data-compact="true"] .pub-photo-credit{display:none}
html[data-compact="true"] .pub-sitebar{gap:9px}
html[data-compact="true"] .pub-wordmark{font-size:28px}
html[data-compact="true"] .pub-wordmark small{display:none}
html[data-compact="true"] .pub-brand-mark{width:22px;height:24px}
html[data-compact="true"] .pub-lang-switch button{height:30px;min-width:32px}
html[data-compact="true"] .pub-invite{min-height:38px;font-size:11px;padding:0 12px}
html[data-compact="true"] .pub-menu-toggle{width:38px;height:38px}
html[data-compact="true"] .pub-hero-copy{line-height:1.33}
html[data-compact="true"] .pub-cta-link{min-height:27px}
html[data-compact="true"] .pub-audience-grid{padding:5px 9px}
html[data-compact="true"] .pub-audience-card{padding:4px var(--pub-card-pad);grid-template-columns:20px minmax(0,1fr);grid-template-rows:auto 1fr;gap:3px 7px;align-content:start}
html[data-compact="true"] .pub-card-copy{display:contents}
html[data-compact="true"] .pub-card-title{grid-column:1/-1;align-self:start}
html[data-compact="true"] .pub-icon-ring{width:22px;height:22px}
html[data-compact="true"] .pub-icon-ring svg{width:14px;height:14px}
html[data-compact="true"] .pub-card-kicker{margin:0;padding-right:0;align-self:center;letter-spacing:.06em}
html[data-compact="true"] .pub-card-arrow{width:16px;height:16px;left:auto;right:5px;bottom:3px}
html[data-compact="true"] .pub-card-arrow svg{width:10px;height:10px}
html[data-captions="false"] .pub-card-caption{display:none}
html[data-compact="true"][data-lang="zh"] .pub-wordmark{font-size:25px}
/* Editorial navigation; only this overlay can scroll internally. */
.pub-menu-backdrop{position:fixed;inset:0;width:100%;height:var(--pub-viewport-h);z-index:100;background:#03131ab0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;justify-content:flex-end;padding:18px}
.pub-menu-panel{width:min(480px,100%);max-height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:linear-gradient(145deg,#f9faf6,#eaf0e9);color:var(--pub-ink);border:1px solid #ffffff9c;box-shadow:0 24px 100px #03151a80}
.pub-menu-head{display:flex;align-items:center;justify-content:space-between;padding:21px 28px 17px;border-bottom:1px solid #23455226}
.pub-menu-brand{display:flex;align-items:center;gap:10px;font:400 30px/1 var(--pub-serif);letter-spacing:-.035em}
.pub-menu-brand .pub-brand-mark{width:23px;height:25px;filter:none}
.pub-menu-close{width:40px;height:40px;border:1px solid #173c4a33;border-radius:50%;display:grid;place-items:center}
.pub-menu-close svg{width:19px;height:19px}
.pub-menu-content{padding:20px 28px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#b7c4bb transparent}
.pub-menu-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:12px}
.pub-menu-label{font:400 10px/1.3 var(--pub-sans);letter-spacing:.15em;text-transform:uppercase}
.pub-menu-language{border-color:#23455240;background:#17354107;font-size:11px}
.pub-menu-language button{color:var(--pub-ink);min-width:40px}
.pub-menu-language button[aria-pressed="true"]{background:var(--pub-ink);color:#fff}
.pub-menu-nav{display:grid}
.pub-menu-nav a{display:flex;gap:18px;align-items:center;min-height:52px;border-bottom:1px solid #23455220}
.pub-menu-nav small{width:18px;font:400 10px/1 var(--pub-sans);color:#73857d}
.pub-menu-nav b{font:400 27px/1.3 var(--pub-serif);letter-spacing:-.03em}
.pub-menu-nav svg{width:18px;height:18px;margin-left:auto}
.pub-menu-foot{padding:17px 28px 21px;border-top:1px solid #23455226}
.pub-menu-links{display:flex;flex-wrap:wrap;gap:8px 19px;font:400 11px/1.4 var(--pub-sans)}
.pub-menu-links a{display:flex;align-items:center;min-height:28px}
.pub-menu-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.pub-menu-signoff{font:italic 14px/1.5 var(--pub-serif);color:#566e63}
.pub-motion-control{display:flex;gap:7px;align-items:center;min-height:32px;font:400 11px/1.25 var(--pub-sans);border-bottom:1px solid #23455250}
.pub-motion-control svg{width:13px;height:13px}
html[data-lang="zh"] .pub-menu-nav b{font-size:23px;letter-spacing:.03em}
@media(max-width:600px){.pub-menu-backdrop{padding:0}.pub-menu-panel{width:100%;border:0;padding:var(--pub-safe-t) var(--pub-safe-r) var(--pub-safe-b) var(--pub-safe-l)}.pub-menu-head{padding:15px 22px}.pub-menu-content{padding:17px 22px}.pub-menu-foot{padding:12px 22px}.pub-menu-nav a{min-height:50px}.pub-menu-signoff{font-size:12px}}
/* Entrance uses compositing-only text/marker effects; route drawing runs once. */
@keyframes settle{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes revealStage{from{opacity:0}to{opacity:1}}
@keyframes routeDraw{from{stroke-dashoffset:var(--pub-route-length)}to{stroke-dashoffset:0}}
.pub-entering .pub-intro{animation:settle .75s var(--pub-ease) both .08s}
.pub-entering .pub-route-stroke{stroke-dasharray:var(--pub-route-length);animation:routeDraw 1.45s var(--pub-ease) both .45s}
.pub-entering .pub-stage{animation:revealStage .42s var(--pub-ease) both;animation-delay:calc(1.95s + var(--pub-stage-index) * .16s)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.pub-continuation{display:none}}
html[data-split="true"] .pub-intro{width:calc(100% - max(var(--pub-gutter),var(--pub-safe-l)) - max(var(--pub-gutter),var(--pub-safe-r)))}
html[data-split="true"] .pub-eyebrow,html[data-split="true"] .pub-headline{width:49%}
html[data-split="true"] .pub-headline .pub-title-line{display:inline;width:auto;max-width:none}
html[data-split="true"] .pub-headline .pub-first{display:block}
html[data-split="true"] .pub-hero-copy{position:absolute;left:55%;top:1px;width:45%;max-width:none}
html[data-split="true"] .pub-intro .pub-cta-link{position:absolute;left:55%;top:calc(var(--pub-support-height,50px) + 7px)}
html[data-split="true"] .pub-eyebrow{letter-spacing:.09em;gap:6px}
html[data-split="true"] .pub-eyebrow::before{width:15px}
html[data-split="true"][data-lang="zh"] .pub-headline .pub-title-line{display:block}
html[data-split="true"][data-lang="zh"] .pub-headline{font-size:calc(var(--pub-title-size) * .83);line-height:1.2}

/* Browser chrome can leave less than 275px in phone landscape. Move the same
   primary link into the toolbar; use two editorial columns above the route. */
html[data-ultra="true"] .pub-sitebar{gap:9px}
html[data-ultra="true"] .pub-brand{gap:6px;min-height:32px}
html[data-ultra="true"] .pub-brand-mark{width:18px;height:21px}
html[data-ultra="true"] .pub-wordmark{font-size:22px;line-height:1.2}
html[data-ultra="true"][data-lang="zh"] .pub-wordmark{font-size:21px}
html[data-ultra="true"] .pub-lang-switch:not(.pub-menu-language) button[aria-pressed="true"]{display:none}
html[data-ultra="true"] .pub-lang-switch button{height:26px;min-width:28px;padding:0 4px}
html[data-ultra="true"] .pub-invite{font-size:10px;min-height:32px;padding:0 9px;gap:0}
html[data-ultra="true"] .pub-invite svg{display:none}
html[data-ultra="true"] .pub-menu-toggle{width:32px;height:32px}
html[data-ultra="true"] .pub-actions{gap:6px}
html[data-ultra="true"] .pub-sitebar>.pub-cta-link{position:static;flex:none;min-height:28px;font-size:10px;gap:7px}
html[data-ultra="true"] .pub-sitebar>.pub-cta-link svg{width:13px;height:13px}
html[data-ultra="true"] .pub-intro .pub-eyebrow,html[data-ultra="true"] .pub-headline{width:53%}
html[data-ultra="true"] .pub-hero-copy{left:57%;width:43%}
html[data-ultra="true"] .pub-audience-grid{padding-top:3px;padding-bottom:3px}
html[data-ultra="true"] .pub-audience-card{padding-top:2px;padding-bottom:2px;grid-template-columns:18px minmax(0,1fr)}
html[data-ultra="true"] .pub-icon-ring{width:20px;height:20px}
html[data-ultra="true"][data-lang="zh"] .pub-headline .pub-title-line{display:inline}
html[data-ultra="true"][data-lang="zh"] .pub-headline .pub-first{display:block}

/* Short portrait: preserve copy size by using three natural headline lines and
   sharing the eyebrow row with the primary link instead of adding another row. */
html[data-small-portrait="true"] .pub-headline .pub-title-line{display:inline;width:auto;max-width:none}
html[data-small-portrait="true"] .pub-headline .pub-first{display:block}
html[data-small-portrait="true"] .pub-eyebrow{min-height:22px;padding-right:114px;font-size:8px;letter-spacing:.08em}
html[data-small-portrait="true"] .pub-eyebrow::before{display:none}
html[data-small-portrait="true"] .pub-intro .pub-cta-link{position:absolute;right:0;top:0;min-height:22px;font-size:10px;gap:8px}
html[data-small-portrait="true"] .pub-intro .pub-cta-link svg{width:13px;height:13px}
html[data-micro-portrait="true"] .pub-card-kicker{margin-bottom:3px}
html[data-micro-portrait="true"] .pub-card-arrow{bottom:5px;width:17px;height:17px}

html[data-tiny-portrait="true"] .pub-audience-card{grid-template-columns:20px minmax(0,1fr);gap:3px 6px;padding-top:7px;padding-bottom:5px}
html[data-tiny-portrait="true"] .pub-card-copy{display:contents}
html[data-tiny-portrait="true"] .pub-card-title{grid-column:1/-1}
html[data-tiny-portrait="true"] .pub-card-kicker{margin:0;align-self:center}
html[data-tiny-portrait="true"] .pub-icon-ring{width:21px;height:21px}
html[data-tiny-portrait="true"] .pub-card-arrow{left:auto;right:5px;bottom:5px;width:17px;height:17px}


/* -------------------------------------------------------------------------
   PREMIUM PUBLICATION PASS — 2026-09
   Retains the Final edition's darker colour treatment while migrating the
   stronger typography, graph character and sequential motion from Standalone.
   ------------------------------------------------------------------------- */
.pub-brand-copy{gap:22px}
.pub-wordmark{display:block;line-height:.9;letter-spacing:-.058em}
.pub-brand-lockup{display:none;grid-template-rows:auto auto;align-items:start;justify-items:start;line-height:.9;white-space:nowrap}
html[data-lang="zh"] .pub-brand-lockup-zh,html[data-lang="en"] .pub-brand-lockup-en{display:inline-grid}
.pub-brand-primary{display:inline-flex;align-items:flex-start;white-space:nowrap}
.pub-brand-primary .pub-brand-uk{font-family:var(--pub-sans);font-size:.39em;font-weight:650;line-height:1;letter-spacing:.055em;margin-left:.20em;position:relative;top:-.46em}
.pub-brand-secondary{display:inline-flex;align-items:flex-start;margin-top:.22em;font:600 clamp(9.5px,.28em,12px)/1 var(--pub-sans);letter-spacing:.075em;color:#ffffffe6}
.pub-brand-secondary .pub-brand-uk{font-size:.68em;line-height:1;letter-spacing:.05em;margin-left:.16em;position:relative;top:-.31em}
html[data-lang="zh"] .pub-wordmark{font-size:33px;letter-spacing:.065em}
html[data-lang="zh"] .pub-brand-secondary{letter-spacing:.055em}

/* One language button: it always names the language the visitor can switch to. */
:is(button,a).pub-lang-switch.pub-language-toggle{display:grid;place-items:center;min-width:48px;height:40px;padding:0 13px;border:1px solid #ffffff59;border-radius:999px;background:#071f4030;color:#fffffff2;font:600 10.5px/1 var(--pub-sans);letter-spacing:.055em;transition:background .25s,border-color .25s,transform .25s}
:is(button,a).pub-lang-switch.pub-language-toggle:hover{background:#ffffff18;border-color:#ffffffa6;transform:translateY(-1px)}
:is(button,a).pub-menu-language.pub-language-toggle{min-width:48px;height:34px;border-color:#23455240;background:#1735410a;color:var(--pub-ink)}
:is(button,a).pub-menu-language.pub-language-toggle:hover{background:#17354110;border-color:#23455270}

/* More deliberate editorial measure. */
.pub-headline{text-wrap:balance}
.pub-hero-copy{letter-spacing:0;text-wrap:pretty}
.pub-hero-copy .pub-copy-line{display:inline}
html[data-lang="zh"] .pub-hero-copy{letter-spacing:.018em}

/* Standalone-style graph markers with a quieter premium halo. */
.pub-marker{width:15px;height:15px;border:4px solid #fffef5;background:#2f4750;box-shadow:0 1px 6px rgba(11,39,52,.42),0 0 0 3px rgba(255,255,255,.08);transition:transform .25s var(--pub-ease),box-shadow .25s var(--pub-ease),background .25s var(--pub-ease)}
.pub-marker::after{content:"";position:absolute;inset:-8px;border:1px solid rgba(255,252,242,.64);border-radius:50%;opacity:0;transform:scale(.62);pointer-events:none}
@media(hover:hover){.pub-journey-node:hover .pub-marker{transform:translate(-50%,-50%) scale(1.12);background:#36545c;box-shadow:0 0 0 6px rgba(184,149,96,.16),0 0 0 8px rgba(255,255,255,.76)}}
.pub-journey-label>span{font-weight:650;letter-spacing:.095em}

/* Restore the more generous editorial typography of Standalone's audience dock. */
.pub-card-kicker{font-family:var(--pub-sans);font-weight:700;letter-spacing:.06em;font-feature-settings:"kern" 1,"liga" 1}
.pub-card-title{line-height:1.07;letter-spacing:-.035em}
.pub-card-caption{margin-top:9px;padding-right:30px;max-width:none;font:400 clamp(15.8px,1.0vw,18px)/1.46 var(--pub-sans);letter-spacing:.002em;color:#52686c;text-wrap:wrap;overflow-wrap:normal;word-break:normal}
.pub-card-caption::before{content:"";display:block;width:23px;height:1px;background:#66807880;margin-bottom:7px}
.pub-card-arrow{transition:background .25s,color .25s,transform .25s,border-color .25s}
@media(hover:hover){.pub-audience-card:hover .pub-card-arrow{transform:translate(2px,-1px);border-color:#947747;background:#eee8dc}}
html[data-lang="zh"] .pub-card-title{font-size:var(--pub-card-size);line-height:1.30;letter-spacing:.01em}

/* Portrait: two-line Chinese headline, balanced explanatory copy, labels below
   the graph where possible, larger cards, and arrows on the right. */
html[data-layout="portrait"] .pub-wordmark{font-size:26px;line-height:.92}
html[data-layout="portrait"][data-lang="zh"] .pub-wordmark{font-size:27px}
html[data-layout="portrait"] .pub-brand-secondary{font-size:9px;margin-top:.38em}
html[data-layout="portrait"] :is(button,a).pub-lang-switch.pub-language-toggle{min-width:41px;height:35px;padding:0 9px;font-size:9.5px}
html[data-layout="portrait"] .pub-intro{left:max(calc(var(--pub-gutter) + 14px),38px)}
html[data-layout="portrait"] .pub-headline .pub-title-line{display:block!important;width:max-content!important;max-width:100%!important}
html[data-layout="portrait"][data-lang="zh"] .pub-headline{font-size:calc(var(--pub-title-size) * .90);line-height:1.16;letter-spacing:.012em}
html[data-layout="portrait"][data-lang="zh"] .pub-headline .pub-second{margin-top:.11em}
html[data-layout="portrait"] .pub-hero-copy{max-width:min(94%,34em);line-height:1.46}
html[data-layout="portrait"][data-lang="zh"] .pub-hero-copy{max-width:23em;line-height:1.58}
html[data-layout="portrait"] .pub-hero-copy .pub-copy-line{display:block}
html[data-layout="portrait"][data-lang="en"] .pub-headline{letter-spacing:-.052em}
html[data-layout="portrait"][data-lang="en"] .pub-hero-copy{max-width:100%;line-height:1.42}
html[data-layout="portrait"][data-lang="en"] .pub-hero-copy .pub-copy-line{display:block}
html[data-layout="portrait"] .pub-marker{width:12px;height:12px;border-width:2.5px}
html[data-layout="portrait"] .pub-journey-label{gap:4px}
html[data-layout="portrait"] .pub-journey-label>span{font-weight:650;letter-spacing:.095em}
html[data-layout="portrait"] .pub-audience-card{grid-template-columns:27px minmax(0,1fr);gap:7px;padding:9px 26px 11px 9px}
html[data-layout="portrait"] .pub-card-kicker{margin-bottom:5px;font-size:calc(var(--pub-kicker-size) * .98);line-height:1.08;letter-spacing:.045em}
html[data-layout="portrait"] .pub-card-title{font-size:var(--pub-card-size);line-height:1.12;overflow-wrap:normal;word-break:normal}
html[data-layout="portrait"][data-lang="zh"] .pub-card-title{font-size:var(--pub-card-size);line-height:1.17}
html[data-layout="portrait"] .pub-card-arrow{left:auto;right:7px;bottom:8px;width:20px;height:20px}
html[data-layout="portrait"] .pub-card-arrow svg{width:11px;height:11px}
html[data-layout="portrait"] .pub-icon-ring{width:27px;height:27px}
html[data-layout="portrait"] .pub-icon-ring svg{width:15px;height:15px}
html[data-layout="portrait"] .pub-card-copy{padding-right:0;min-width:0}
html[data-narrow="true"] .pub-wordmark{font-size:25px}
html[data-narrow="true"] .pub-card-arrow{left:auto;right:6px;bottom:7px}
html[data-narrow="true"] .pub-audience-card{padding-right:24px}
html[data-small-portrait="true"] .pub-headline .pub-title-line{display:block!important;width:max-content!important;max-width:100%!important}
html[data-small-portrait="true"] .pub-headline .pub-first{display:block}
html[data-small-portrait="true"][data-lang="zh"] .pub-headline .pub-second{display:block}

/* Original Standalone motion language: one entrance, then a subtle sequential halo loop. */
@keyframes premiumRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes originalNodeIn{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}
@keyframes originalHalo{0%,74%,100%{transform:scale(.64);opacity:0}8%{opacity:.62}29%{transform:scale(1.56);opacity:0}}
.pub-entering .pub-intro{animation:none}
.pub-entering .pub-intro>*{animation:premiumRise 1.08s var(--pub-ease) both}
.pub-entering .pub-intro>:nth-child(1){animation-delay:.30s}
.pub-entering .pub-intro>:nth-child(2){animation-delay:.44s}
.pub-entering .pub-intro>:nth-child(3){animation-delay:.61s}
.pub-entering .pub-intro>:nth-child(4){animation-delay:.80s}
.pub-entering .pub-route-stroke{stroke-dasharray:var(--pub-route-length);animation:routeDraw 2.48s .16s var(--pub-ease) both}
.pub-entering .pub-stage{animation:none}
.pub-entering .pub-journey-node{opacity:0;transform-origin:center;animation:originalNodeIn .56s var(--pub-ease) forwards;animation-delay:calc(.43s + var(--pub-stage-index) * .37s)}
.pub-journey-node::before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,252,242,.70);border-radius:50%;opacity:0;pointer-events:none;transform-origin:center}
.pub-journey-loop .pub-journey-node::before{animation:originalHalo 6.15s cubic-bezier(.22,.78,.24,1) infinite;animation-delay:calc(2.18s + var(--pub-stage-index) * .82s)}
.pub-journey-loop .pub-route-progress{display:none}
.pub-journey-loop .pub-marker,.pub-journey-loop .pub-marker::after,.pub-journey-loop .pub-journey-label{animation:none!important}
@media(hover:hover){.pub-journey-node:hover::before{animation-play-state:paused!important;opacity:0!important}}

/* Short-viewport mobile compression: preserve the premium hierarchy while
   preventing the lower cards from clipping on iPhone SE-class screens. */
@media (max-width:430px) and (max-height:690px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-audience-card{grid-template-columns:25px minmax(0,1fr);padding-top:6px;padding-bottom:5px;gap:7px}
  html[data-layout="portrait"] .pub-card-kicker{font-size:9.2px!important;line-height:1.05;letter-spacing:.045em;margin-bottom:3px}
  html[data-layout="portrait"] .pub-card-title{font-size:14.4px!important;line-height:1.1}
  html[data-layout="portrait"][data-lang="zh"] .pub-card-title{font-size:14.4px!important;line-height:1.12}
  html[data-layout="portrait"] .pub-icon-ring{width:25px;height:25px}
  html[data-layout="portrait"] .pub-icon-ring svg{width:15px;height:15px}
  html[data-layout="portrait"] .pub-card-arrow{width:20px;height:20px;right:8px;bottom:6px}
  html[data-layout="portrait"] .pub-card-arrow svg{width:10px;height:10px}
}
@media (max-width:340px) and (max-height:600px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-audience-card{grid-template-columns:25px minmax(0,1fr);padding-top:5px;padding-bottom:4px;gap:6px}
  html[data-layout="portrait"] .pub-card-kicker{font-size:9px!important;margin-bottom:2px}
  html[data-layout="portrait"] .pub-card-title,
  html[data-layout="portrait"][data-lang="zh"] .pub-card-title{font-size:13.6px!important;line-height:1.1}
  html[data-layout="portrait"] .pub-icon-ring{width:27px;height:27px}
}


/* Final mobile art-direction pass. */
html[data-layout="portrait"] .pub-sitebar{
  padding-left:max(16px,var(--pub-safe-l));
  padding-right:max(14px,var(--pub-safe-r));
}
html[data-layout="portrait"] .pub-sitebar::after{
  left:max(16px,var(--pub-safe-l));
  right:max(16px,var(--pub-safe-r));
}
html[data-layout="portrait"] .pub-brand{margin-left:0}
html[data-layout="portrait"] .pub-card-kicker{font-size:calc(var(--pub-kicker-size) * 1.03)}


@media (min-width:1000px){
  html[data-lang="en"] .pub-headline{line-height:.945;letter-spacing:-.049em}
  html[data-lang="en"] .pub-headline .pub-first,
  html[data-lang="en"] .pub-headline .pub-second{display:block;white-space:nowrap;width:max-content;max-width:100%}
  html[data-lang="en"] .pub-headline .pub-second{margin-top:.07em}
  html[data-lang="en"] .pub-hero-copy{max-width:650px;line-height:1.48}
  html[data-lang="zh"] .pub-hero-copy{max-width:650px}
}


@media (min-width:1000px){
  .pub-brand-note{font-size:10px;line-height:1.45}
  :is(button,a).pub-lang-switch.pub-language-toggle{min-width:52px;height:42px;font-size:11.25px}
  .pub-invite{min-height:44px;padding-left:18px;padding-right:18px;font-size:12.5px}
  .pub-menu-toggle{width:44px;height:44px}
  .pub-route-line{stroke-width:1.42}
}
@media (min-width:1100px) and (max-height:820px){
  .pub-audience-grid{padding-top:11px;padding-bottom:11px}
  .pub-audience-card{padding-top:7px;padding-bottom:7px}
  .pub-card-caption{font-size:15.6px;line-height:1.42;margin-top:7px}
  .pub-card-caption::before{margin-bottom:5px}
}

@media(prefers-reduced-motion:reduce){.pub-marker::after{display:none}.pub-journey-node::before{display:none!important}}


/* -------------------------------------------------------------------------
   v12.1 RELEASE CALIBRATION — deliberately conservative.
   Reverts v12's geometry/flow rewrites and keeps the v10 art direction intact.
   ------------------------------------------------------------------------- */
/* Chinese identity: match the breathing room of the English SafeStudy / Anruida lock-up. */
html[data-lang="zh"] .pub-brand-lockup-zh .pub-brand-secondary{margin-top:.92em}
html[data-layout="portrait"][data-lang="zh"] .pub-brand-lockup-zh .pub-brand-secondary{margin-top:1em}

/* The menu is the persistent navigation affordance. On genuinely narrow portrait
   screens, invitation copy yields before language or menu; the action remains. */
@media (max-width:350px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-sitebar{padding-left:max(14px,var(--pub-safe-l));padding-right:max(8px,var(--pub-safe-r));gap:5px}
  html[data-layout="portrait"] .pub-sitebar::after{left:max(14px,var(--pub-safe-l));right:max(10px,var(--pub-safe-r))}
  html[data-layout="portrait"] .pub-brand{min-width:0;flex:1 1 auto;gap:4px}
  html[data-layout="portrait"] .pub-brand-mark{width:17px;height:20px}
  html[data-layout="portrait"] .pub-brand-copy{gap:0;min-width:0}
  html[data-layout="portrait"] .pub-wordmark{font-size:22px}
  html[data-layout="portrait"][data-lang="zh"] .pub-wordmark{font-size:23px}
  html[data-layout="portrait"] .pub-actions{flex:0 0 auto;gap:4px}
  html[data-layout="portrait"] :is(button,a).pub-lang-switch.pub-language-toggle{display:grid!important;flex:0 0 35px;width:35px;min-width:35px;height:35px;padding:0;font-size:9px}
  html[data-layout="portrait"] .pub-invite{display:grid;place-items:center;flex:0 0 35px;width:35px;min-width:35px;height:35px;min-height:35px;padding:0;border-radius:50%}
  html[data-layout="portrait"] .pub-invite-text{display:none}
  html[data-layout="portrait"] .pub-invite svg{display:block;width:18px;height:18px}
  html[data-layout="portrait"] .pub-menu-toggle{display:grid!important;flex:0 0 35px;width:35px;height:35px}
}
@media (max-width:285px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-sitebar{padding-left:max(9px,var(--pub-safe-l));padding-right:max(5px,var(--pub-safe-r));gap:3px}
  html[data-layout="portrait"] .pub-brand-mark{width:15px;height:18px}
  html[data-layout="portrait"] .pub-wordmark{font-size:20px}
  html[data-layout="portrait"][data-lang="zh"] .pub-wordmark{font-size:21px}
  html[data-layout="portrait"] .pub-actions{gap:3px}
  html[data-layout="portrait"] :is(button,a).pub-lang-switch.pub-language-toggle,
  html[data-layout="portrait"] .pub-invite,
  html[data-layout="portrait"] .pub-menu-toggle{flex-basis:32px;width:32px;min-width:32px;height:32px;min-height:32px}
}

/* At sub-310px widths the education-adviser kicker is the only card label that
   approaches the available measure. Tighten just that adversarial tier rather
   than globally shrinking the publication typography. */
@media (max-width:310px) and (min-height:620px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-audience-card{grid-template-columns:24px minmax(0,1fr);gap:5px;padding-left:7px;padding-right:22px}
  html[data-layout="portrait"] .pub-icon-ring{width:24px;height:24px}
  html[data-layout="portrait"] .pub-icon-ring svg{width:14px;height:14px}
  html[data-layout="portrait"] .pub-card-kicker{font-size:8.5px!important;line-height:1.06;letter-spacing:.025em;margin-bottom:3px}
  html[data-layout="portrait"] .pub-card-title,
  html[data-layout="portrait"][data-lang="zh"] .pub-card-title{font-size:13.5px!important;line-height:1.10}
  html[data-layout="portrait"] .pub-card-arrow{width:18px;height:18px;right:6px;bottom:6px}
}


@media (min-width:311px) and (max-width:340px) and (min-height:620px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-audience-card{grid-template-columns:25px minmax(0,1fr);gap:6px;padding-left:8px;padding-right:23px;padding-top:7px;padding-bottom:7px}
  html[data-layout="portrait"] .pub-icon-ring{width:25px;height:25px}
  html[data-layout="portrait"] .pub-icon-ring svg{width:14px;height:14px}
  html[data-layout="portrait"] .pub-card-kicker{font-size:9px!important;line-height:1.06;letter-spacing:.035em;margin-bottom:3px}
  html[data-layout="portrait"] .pub-card-title,
  html[data-layout="portrait"][data-lang="zh"] .pub-card-title{font-size:13.8px!important;line-height:1.10}
  html[data-layout="portrait"] .pub-card-arrow{width:19px;height:19px;right:6px;bottom:6px}
}

/* Optical polish: maintain a quiet, consistent utility hierarchy. */
@media (min-width:1000px){
  .pub-sitebar::after{opacity:.92}
  .pub-brand-secondary{opacity:.96}
  .pub-card-arrow{background:rgba(250,248,240,.10)}
}

/* v12.2 final micro-polish: English support line cadence + utility grouping. */
.pub-mobile-next{display:inline}
@media (max-width:999px) and (orientation:portrait){
  html[data-lang="en"] .pub-hero-copy .pub-mobile-next{display:block}
  html[data-layout="portrait"] .pub-actions{align-items:center}
  html[data-layout="portrait"] .pub-menu-toggle{margin-left:1px}
}
@media (max-width:350px) and (orientation:portrait){
  html[data-lang="zh"] .pub-brand-lockup-zh .pub-brand-secondary{margin-top:.88em}
}


/* -------------------------------------------------------------------------
   v12.3 OPTICAL MICROTYPE CALIBRATION
   Only the specifically under-scaled phone microcopy is adjusted on the cover.
   Menu microcopy is calibrated in both desktop and mobile; menu indices removed.
   ------------------------------------------------------------------------- */
/* With numeric indices removed, the menu titles own the left edge cleanly. */
.pub-menu-nav a{gap:0}
.pub-menu-nav small{display:none!important}

/* Menu microcopy — English needs a light optical lift; Chinese a little more. */
html[data-lang="en"] .pub-menu-label{font-size:10.8px;letter-spacing:.145em}
html[data-lang="zh"] .pub-menu-label{font-size:11.2px;letter-spacing:.10em;text-transform:none;font-weight:500}
html[data-lang="en"] :is(button,a).pub-menu-language.pub-language-toggle{font-size:11.35px}
html[data-lang="zh"] :is(button,a).pub-menu-language.pub-language-toggle{font-size:11.75px}
html[data-lang="en"] .pub-menu-links{font-size:11.9px}
html[data-lang="zh"] .pub-menu-links{font-size:12.3px}
html[data-lang="en"] .pub-menu-signoff{font-size:15.1px}
html[data-lang="zh"] .pub-menu-signoff{font-size:15.7px;letter-spacing:.015em}
html[data-lang="en"] .pub-motion-control{font-size:11.9px}
html[data-lang="zh"] .pub-motion-control{font-size:12.3px}

/* Cover microtype: PHONE ONLY. Desktop cover typography remains v12.2. */
@media (max-width:999px) and (orientation:portrait){
  /* English: +8% where marked. */
  html[data-lang="en"][data-layout="portrait"] .pub-eyebrow{
    font-size:calc(var(--pub-eyebrow-size) * 1.08);
    letter-spacing:.17em;
  }
  html[data-lang="en"][data-layout="portrait"] .pub-hero-copy{
    font-size:calc(var(--pub-body-size) * 1.08);
    line-height:1.45;
  }
  html[data-lang="en"][data-layout="portrait"] .pub-cta-link{
    font-size:calc(var(--pub-body-size) * 1.026);
  }
  html[data-lang="en"][data-layout="portrait"] .pub-journey-label>span{
    font-size:calc(var(--pub-label-small) * 1.08);
    letter-spacing:.085em;
  }
  html[data-lang="en"][data-layout="portrait"] .pub-journey-label em{
    font-size:calc(var(--pub-label-main) * 1.08);
    line-height:1.08;
  }

  /* Chinese: +12% on the marked eyebrow + journey labels only. */
  html[data-lang="zh"][data-layout="portrait"] .pub-eyebrow{
    font-size:calc(var(--pub-eyebrow-size) * 1.12);
    letter-spacing:.13em;
    font-weight:500;
  }
  html[data-lang="zh"][data-layout="portrait"] .pub-journey-label>span{
    font-size:calc(var(--pub-label-small) * 1.12);
    letter-spacing:.075em;
    font-weight:650;
  }
  html[data-lang="zh"][data-layout="portrait"] .pub-journey-label em{
    font-size:calc(var(--pub-label-main) * 1.12);
    line-height:1.13;
    letter-spacing:.02em;
  }
}

/* Mobile menu footer inherits the same optical increments from its smaller base. */
@media(max-width:600px){
  html[data-lang="en"] .pub-menu-label{font-size:10.8px}
  html[data-lang="zh"] .pub-menu-label{font-size:11.2px}
  html[data-lang="en"] .pub-menu-links{font-size:11.9px;gap:8px 18px}
  html[data-lang="zh"] .pub-menu-links{font-size:12.3px;gap:8px 18px}
  html[data-lang="en"] .pub-menu-signoff{font-size:13px}
  html[data-lang="zh"] .pub-menu-signoff{font-size:13.45px}
  html[data-lang="en"] .pub-motion-control{font-size:11.9px}
  html[data-lang="zh"] .pub-motion-control{font-size:12.3px}
}


/* Extreme narrow-phone safeguard: preserve the requested optical lift without
   letting the cover microcopy crowd the rising journey. */
@media (max-width:340px) and (orientation:portrait){
  html[data-lang="en"][data-layout="portrait"] .pub-eyebrow{font-size:calc(var(--pub-eyebrow-size) * 1.04)}
  html[data-lang="en"][data-layout="portrait"] .pub-hero-copy{font-size:calc(var(--pub-body-size) * 1.03);line-height:1.43}
  html[data-lang="en"][data-layout="portrait"] .pub-cta-link{font-size:calc(var(--pub-body-size) * .988)}
  html[data-lang="en"][data-layout="portrait"] .pub-journey-label>span{font-size:calc(var(--pub-label-small) * 1.04)}
  html[data-lang="en"][data-layout="portrait"] .pub-journey-label em{font-size:calc(var(--pub-label-main) * 1.04)}

  html[data-lang="zh"][data-layout="portrait"] .pub-eyebrow{font-size:calc(var(--pub-eyebrow-size) * 1.08)}
  html[data-lang="zh"][data-layout="portrait"] .pub-journey-label>span{font-size:calc(var(--pub-label-small) * 1.08)}
  html[data-lang="zh"][data-layout="portrait"] .pub-journey-label em{font-size:calc(var(--pub-label-main) * 1.08)}
}


/* -------------------------------------------------------------------------
   v12.3a — narrow-phone protection without disturbing the v12.3 composition.
   ------------------------------------------------------------------------- */
/* A white vector key is used instead of the Unicode key emoji because emoji
   colour/rendering varies by OS and cannot be reliably styled white. */
.pub-invite svg{width:22px;height:22px;stroke-width:2;color:#fff;opacity:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.22))}

/* Normal phones: keep the invitation text-led and show a clear key alongside. */
@media (max-width:999px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-invite{gap:6px}
  html[data-layout="portrait"] .pub-invite svg{display:block;width:20px;height:20px}
}

/* 331–350px: retain the invitation wording a little longer by trimming only
   its own padding/type, while preserving language + menu at full priority. */
@media (min-width:331px) and (max-width:350px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-sitebar{padding-right:max(7px,var(--pub-safe-r));gap:4px}
  html[data-layout="portrait"] .pub-actions{gap:3px}
  html[data-layout="portrait"] .pub-invite{display:flex!important;place-items:initial;flex:0 0 auto;width:auto;min-width:0;height:35px;min-height:35px;padding:0 7px 0 9px;border-radius:40px;font-size:9.2px;gap:4px}
  html[data-layout="portrait"] .pub-invite-text{display:inline!important}
  html[data-layout="portrait"] .pub-invite svg{display:block!important;width:20px;height:20px}
}

/* <=330px: collapse cleanly to a high-contrast, unmistakable key. */
@media (max-width:330px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-invite{display:grid!important;place-items:center;flex:0 0 35px;width:35px;min-width:35px;height:35px;min-height:35px;padding:0;border-radius:50%;gap:0}
  html[data-layout="portrait"] .pub-invite-text{display:none!important}
  html[data-layout="portrait"] .pub-invite svg{display:block!important;width:24px;height:24px;stroke-width:2.1}
}
@media (max-width:285px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-invite{flex-basis:32px;width:32px;min-width:32px;height:32px;min-height:32px}
  html[data-layout="portrait"] .pub-invite svg{width:23px;height:23px}
}

/* A tiny amount of extra separation between late-stage labels and the rising
   line on adversarial widths; title/body/card measures remain exactly v12.3. */
@media (max-width:380px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-journey-label{text-shadow:0 1px 4px #02131aff,0 2px 14px #02131af2}
}

/* English header width protection between compact and normal phone tiers.
   Keep the invitation wording instead of clipping the menu offscreen. */
@media (min-width:351px) and (max-width:380px) and (orientation:portrait){
  html[data-lang="en"][data-layout="portrait"] .pub-sitebar{padding-left:max(14px,var(--pub-safe-l));padding-right:max(8px,var(--pub-safe-r));gap:4px}
  html[data-lang="en"][data-layout="portrait"] .pub-brand{gap:4px}
  html[data-lang="en"][data-layout="portrait"] .pub-brand-mark{width:17px;height:20px}
  html[data-lang="en"][data-layout="portrait"] .pub-brand-copy{gap:0}
  html[data-lang="en"][data-layout="portrait"] .pub-wordmark{font-size:23px}
  html[data-lang="en"][data-layout="portrait"] .pub-actions{gap:3px}
  html[data-lang="en"][data-layout="portrait"] .pub-invite{min-height:35px;height:35px;padding:0 6px 0 8px;font-size:9px;gap:4px}
  html[data-lang="en"][data-layout="portrait"] .pub-invite svg{width:19px;height:19px}
  html[data-lang="en"][data-layout="portrait"] :is(button,a).pub-lang-switch.pub-language-toggle{min-width:37px;width:37px;height:35px;padding:0 5px;font-size:9.2px}
  html[data-lang="en"][data-layout="portrait"] .pub-menu-toggle{width:35px;height:35px}
}


/* -------------------------------------------------------------------------
   v12.3c CARD ICON SCALE — confident but still editorial.
   Desktop: ~52px rings / 28px glyphs.
   Portrait: ~34px rings / 20px glyphs, with a restrained narrow-phone tier.
   ------------------------------------------------------------------------- */
@media (min-width:1000px){
  .pub-audience-card{grid-template-columns:52px minmax(0,1fr);gap:15px}
  .pub-icon-ring{width:52px;height:52px}
  .pub-icon-ring svg{width:28px;height:28px;stroke-width:1.22}
}
@media (max-width:999px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-audience-card{grid-template-columns:34px minmax(0,1fr);gap:8px}
  html[data-layout="portrait"] .pub-icon-ring{width:34px;height:34px}
  html[data-layout="portrait"] .pub-icon-ring svg{width:20px;height:20px;stroke-width:1.22}
}
@media (max-width:340px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-audience-card{grid-template-columns:32px minmax(0,1fr);gap:6px}
  html[data-layout="portrait"] .pub-icon-ring{width:32px;height:32px}
  html[data-layout="portrait"] .pub-icon-ring svg{width:18px;height:18px;stroke-width:1.22}
}
@media (max-width:310px) and (orientation:portrait){
  html[data-layout="portrait"] .pub-audience-card{grid-template-columns:31px minmax(0,1fr);gap:5px}
  html[data-layout="portrait"] .pub-icon-ring{width:31px;height:31px}
  html[data-layout="portrait"] .pub-icon-ring svg{width:17px;height:17px}
}


/* -------------------------------------------------------------------------
   v12.3d DESKTOP CARD-TITLE CALIBRATION
   Families is the longest English title and is used as the width gauge.
   The scale below is the measured single-line fit minus ~5% breathing room
   from 1280px through full-HD/16:10 desktop widths. All four cards and both
   languages share the same title scale. Mobile remains untouched.
   ------------------------------------------------------------------------- */
@media (min-width:1280px){
  .pub-audience-card .pub-card-title,
  html[data-lang="zh"] .pub-audience-card .pub-card-title{
    font-size:clamp(15.8px,calc(1.515vw - 3.57px),25.55px);
    line-height:1.08;
    white-space:nowrap;
    text-wrap:nowrap;
  }
}


/* V7.23: keep each language's line lengths deliberate. */
@media(min-width:901px) {
 html[data-lang="en"] .pub-quote {width:320px!important;max-width:36vw!important;}
 html[data-lang="zh"] .pub-audience-card .pub-card-title {letter-spacing:0!important;font-size:clamp(18px,1.34vw,23px)!important;line-height:1.25!important;white-space:normal!important;overflow-wrap:normal!important;}
}
.pub-audience-card {min-width:0!important;}
.pub-card-copy,.pub-card-content {min-width:0!important;}

/* 7.23.1 quote polish */
html[data-lang="en"] .pub-quote{width:360px!important;max-width:42vw!important;}
