@import url('/native-fonts-extra.css');
*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:#141414;color:#222;font-family:'IBM Plex Sans','Noto Sans SC',sans-serif;font-weight:400;-webkit-font-smoothing:antialiased}button,a{color:inherit}button{border:0;background:none;font:inherit;cursor:pointer}a{text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:6px}h1,p{margin:0}button:disabled{opacity:.25;cursor:default}
:root{--ink:#222}
.stage{position:relative;height:100svh;min-height:360px;overflow:hidden;background:#141414;color:var(--ink)}.stage canvas,.plane-fallback{position:absolute;inset:0;width:100%;height:100%}.plane-fallback img{position:absolute;object-fit:cover}.home-copy{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:2}.home-copy h1{font:400 40px/1.4 'Noto Serif SC',serif;letter-spacing:.08em}.home-copy p{font-size:16px;margin-top:26px}.home-prev,.home-next{position:absolute;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;font:300 38px/1 'IBM Plex Sans',sans-serif}.home-prev{left:calc(16.19791667vw + 11px)}.home-next{left:calc(83.80208333vw - 11px)}.pagination{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);font-size:15px}.thumbnail-rail{position:absolute;right:40px;bottom:40px;display:flex;gap:8px}.thumbnail-rail button{padding:0;border:1px solid transparent}.thumbnail-rail button[data-current=true]{border-color:currentColor}.thumbnail-rail img{display:block;width:56px;height:35px;object-fit:cover}.index-hit{position:absolute;inset:0;display:none}.index-hit a{position:absolute;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:0}.index-hit span{transform:translateY(40px);font:22px/1.5 'Noto Serif SC',serif}.stage[data-mode=index] .index-hit{display:block}.stage[data-mode=index] :is(.home-copy,.home-prev,.home-next,.pagination){display:none}.stage[data-mode=opening] :is(.home-copy,.pagination,.thumbnail-rail){opacity:0;pointer-events:none}.stage[data-mode=opening]:not([data-opening-controls]) :is(.home-prev,.home-next){opacity:0;pointer-events:none}.loading-number{position:absolute;inset:0;display:grid;place-items:center;font-size:16px;color:#f4f5f7;background:#141414;z-index:10}.loading-number[hidden]{display:none}
.hero-copy{position:absolute;left:6vw;top:0;width:50vw;height:100%;padding-top:4vh;display:flex;justify-content:center;flex-direction:column;align-items:flex-start;pointer-events:none}.hero-label{font-size:14px;line-height:1.6;letter-spacing:.2em}.hero-copy h1{font-family:'Noto Sans SC',sans-serif;font-weight:400;font-size:clamp(64px,6.8vw,112px);line-height:1.2;letter-spacing:-.02em;margin-top:clamp(52px,8vh,80px)}.hero-copy em{font:italic 400 clamp(28.95px,2.702vw,40.53px)/1.4507 'Libre Baskerville',serif;margin-top:clamp(28px,4vh,44px)}.hero-copy p{font-family:'IBM Plex Sans','Noto Sans SC',sans-serif;font-size:clamp(20px,1.6vw,24px);line-height:1.65;margin-top:clamp(40px,6vh,64px)}.hero-copy p span{display:block}.hero-counter{position:absolute;top:78px;right:40px;font-size:16px}.scroll-copy{position:absolute;bottom:40px;left:6vw;font-size:16px;padding:0;border-bottom:1px solid;line-height:1.5}.scroll-arrow{position:absolute;bottom:40px;right:40px;padding:0;width:47px;height:55px;font-size:26px;line-height:55px;border:1px solid;border-radius:50%}.home-mobile{display:none}.next-chapter{display:block;padding:80px 6vw;background:#141414;color:#f4f5f7;line-height:2}.next-chapter strong{display:block;font:40px/1.4 'Noto Serif SC',serif}.prototype-note{padding:80px 6vw;color:#f4f5f7;font:18px/1.8 'Noto Serif SC',serif;min-height:400px}.chapter-content{background:#f4f5f7}.native-failure{padding:140px 7vw;font-size:20px;line-height:1.8;background:#f4f5f7}
@media(max-width:700px){.home-desktop{display:none}.home-mobile{display:block;padding:0 5.3333vw 80px;color:#f4f5f7}.mobile-card{display:block;margin-bottom:21.3333vw}.mobile-card img{display:block;width:100%;height:160vw;object-fit:cover}.mobile-card h2{font:400 8vw/1.2667 'Noto Serif SC',serif;margin-top:8vw}.mobile-card p{font:16px/24px 'Noto Serif SC',serif;opacity:.7;margin-top:2.1333vw}.hero-copy{left:7%;top:50%;width:86%;height:auto;transform:translateY(-50%);padding:0}.hero-label{font-size:13px;line-height:1.6;letter-spacing:.15em}.hero-copy h1{font-size:64px;line-height:1.2;margin-top:52px}.hero-copy em{font-size:27.02px;line-height:1.4507;margin-top:30px}.hero-copy p{font-size:min(18px,4.6vw);line-height:1.7;width:88vw;margin-top:42px}.hero-counter,.scroll-copy{display:none}.scroll-arrow{bottom:24px;right:24px;width:44px;height:52px;font-size:22px;border:0;line-height:52px}.next-chapter{padding:64px 7vw}.next-chapter strong{font-size:32px}}
@media(max-height:600px){.hero-copy h1{margin-top:38px}.hero-copy em{margin-top:20px}.hero-copy p{margin-top:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Revision 2: measured homepage scene; no claim of a completed whole-site replacement. */
.home-copy h1{font:400 3.125vw/4.2708vw 'Noto Sans SC',sans-serif;letter-spacing:-.015em}
.home-copy p{font:16px/1.6 'Noto Sans SC',sans-serif;margin-top:28px}
.home-prev,.home-next{font-size:0}.home-prev:before,.home-next:before,.home-prev:after,.home-next:after{content:'';position:absolute;background:currentColor;top:50%;left:50%;transform:translate(-50%,-50%)}
.home-prev:before,.home-next:before{width:22px;height:1.502px}.home-prev:after,.home-next:after{height:22px;width:1.502px}
.pagination{font:16px/20px 'IBM Plex Sans',sans-serif;bottom:36px}
.index-hit{display:block;pointer-events:none;z-index:1;user-select:none}.index-hit a{overflow:hidden;pointer-events:none;padding:22px;color:#f4f5f7;justify-content:flex-end;background:linear-gradient(transparent,rgba(0,0,0,.64)) bottom/100% 80px no-repeat}
.index-hit span{transform:none;display:flex;gap:12px;align-items:baseline}.index-hit small{font:14px/1.5 'IBM Plex Sans',sans-serif}.index-hit strong{font:400 22px/1.5 'Noto Serif SC',serif;letter-spacing:2px}
.stage[data-mode=index] .index-hit a{pointer-events:auto;touch-action:none}
.stage[data-mode=index] :is(.home-copy,.home-prev,.home-next){visibility:hidden;display:block;pointer-events:none}
.stage[data-mode=index][data-home-transition=out] .home-copy{visibility:visible}
.stage[data-mode=index][data-home-cross-motion] :is(.home-prev,.home-next){visibility:visible;transition:none}
.stage[data-mode=index] .pagination{display:block;color:#f4f5f7}
.stage[data-mode=index] .thumbnail-rail{pointer-events:none}
.thumbnail-rail{transition:none}
.stage[data-mode=index]{color:#f4f5f7}

.index-hit .index-card{position:absolute;overflow:visible;color:#fff;pointer-events:none}
.index-focus{position:absolute;inset:0;width:100%;height:100%;padding:0;pointer-events:none}
.index-hit a{left:0;top:0;bottom:auto;width:100%;height:80px;padding:30px 22px 16px;overflow:visible;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:12px;will-change:transform;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.64));text-shadow:0 1px 8px #0008}
.stage[data-mode=index] .index-focus{pointer-events:auto;touch-action:none}
.index-hit strong{letter-spacing:2.64px}
.thumbnail-rail{gap:5.2px}.thumbnail-rail button{border:0}.thumbnail-rail button[data-current=true]{outline:none}.thumbnail-rail img{width:60px;height:35px}

/* The original Chinese title uses the host platform font; it is not an imported font asset. */
.home-copy h1,.home-copy p{font-family:'PingFang SC','Noto Sans SC',sans-serif}
@media(min-aspect-ratio:16/9){.home-copy h1{font-size:5.5556vh;line-height:7.5926vh}}
@media(max-aspect-ratio:16/9){.home-copy h1{font-size:3.125vw;line-height:4.2708vw}}

body,.stage{background:#141414}
/* Shared authored navigation is used verbatim; this shell only supplies its surface. */
html{scroll-behavior:auto;scrollbar-width:none}html::-webkit-scrollbar{display:none}
/* This shell owns route choreography; chapter CSS must not add cross-document fades. */
@view-transition{navigation:none}
#site-navigation{color:var(--ink)}
.home-copy{padding:24px 56px;max-width:min(420px,46vw);box-sizing:border-box;white-space:nowrap;display:flex;flex-direction:column;align-items:center}
.home-copy p{position:relative;white-space:nowrap;display:flex;justify-content:center;align-items:center;gap:8px;width:max-content;margin-left:auto;margin-right:auto}.home-copy p::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 200ms ease}.home-copy:hover p::after,.home-copy:focus-visible p::after{transform:scaleX(1)}
.home-copy p>span[aria-hidden]{display:inline-block;transition:transform 200ms ease}
.home-copy:hover p>span[aria-hidden],.home-copy:focus-visible p>span[aria-hidden]{transform:translate(2px,-2px)}
.home-copy:focus-visible{outline:1px solid currentColor;outline-offset:7px}
.home-prev,.home-next{width:64px;height:64px;transition:opacity 200ms ease}.home-prev:not(:disabled),.home-next:not(:disabled){opacity:.7}.home-prev:hover,.home-next:hover{opacity:1}
.hero-copy{font-family:'IBM Plex Sans','PingFang SC','Noto Sans SC',sans-serif;width:88vw;padding-top:4vh}
.hero-copy h1{font-family:'PingFang SC','Noto Sans SC',sans-serif}
.hero-copy em{font:italic clamp(30px,2.8vw,42px)/1.4 Georgia,serif;margin-top:clamp(28px,4vh,44px)}
.hero-copy p{max-width:28em;width:88vw}.hero-copy p span{white-space:nowrap}
.index-hit strong{font-family:'Songti SC','Noto Serif SC',serif}.index-hit small{font-family:system-ui,sans-serif;opacity:.8}
.pagination,.hero-counter{font-family:'IBM Plex Sans',sans-serif;font-variant-numeric:tabular-nums}
.stage[data-mode=detail] .hero-copy{will-change:opacity,transform}
@media(max-width:700px){.home-mobile{color:#b5b6b8}.mobile-card h2{font-family:'PingFang SC','Noto Sans SC',sans-serif;letter-spacing:-.015em;color:#f4f5f7}.mobile-card p{font-family:'PingFang SC','Noto Sans SC',sans-serif;opacity:1}.hero-copy{width:86%;padding:0}.hero-copy em{font:italic clamp(28px,4vw,36px)/1.4 Georgia,serif;margin-top:30px}.hero-copy p{max-width:none;width:88vw}.stage[data-mode=detail] .hero-copy{transform:translateY(-50%)}}
/* Keep the measured chapter lettering and the original paragraph reveal baseline. */
.hero-copy h1{word-spacing:-.122em}.hero-copy p{font-family:'PingFang SC','Noto Sans SC',sans-serif}
@media(min-width:701px){.hero-copy p span{transform:translateY(110%)}.hero-copy p{color:var(--desktop-hero-description,currentColor)}.chapter-content{min-height:100svh;margin-bottom:var(--desktop-body-end-gap,0px)}}
@media(min-width:701px) and (max-height:600px){.hero-copy em{margin-top:20px}}
.scroll-copy{border:0}.hero-counter{right:32px}.pagination{white-space:nowrap;display:flex;align-items:center}.pagination>span{width:12px;text-align:center}.pagination>span:nth-child(2){width:8px}
@media(max-width:700px){.hero-copy h1{letter-spacing:-.32px;word-spacing:normal}.hero-copy em,.hero-copy p{letter-spacing:-.32px}}
/* Preserve measured reading spacing without the reference shell's global selectors. */
@media(max-width:700px){.chapter-content .inline-chapter{letter-spacing:-.32px}}
.chapter-content .inline-chapter[data-inline-chapter="overview"] #main-content .w-list{margin-top:0}
/* A standalone case action must not create an extra inline line box beneath it. */
.chapter-content .inline-chapter[data-inline-chapter="resume"] .mk-d-btn{display:block}
/* Caption hit areas have no scene coordinates until the first paint. */
.index-hit[hidden]{display:none}
.stage[data-mode=opening] .index-hit{visibility:hidden}
/* Loading text leaves its clipped line, after all opening images load together. */
.loading-number{font-size:12px;line-height:15px;background:#141414;pointer-events:none}
.loading-mask{display:block;height:15px;overflow:hidden}
.loading-value{display:block;font-weight:400;will-change:transform}
.loading-number.is-ready{background:transparent}
/* The desktop loader scales with the same viewport axis as the published
   caption. Its clipping line must scale too; a fixed15px line shifts the
   number and its exit at every size except the original1280px sample. */
@media(min-width:701px){
  .loading-number{color:#fff;letter-spacing:.05em}
  .loading-mask{height:auto}
}
@media(min-width:701px) and (min-aspect-ratio:16/9){
  .loading-number{font-size:1.6667vh;line-height:2.0833vh}
}
@media(min-width:701px) and (max-aspect-ratio:16/9){
  .loading-number{font-size:.9375vw;line-height:1.1719vw}
}

.stage[data-mode=opening] .thumbnail-rail{transition:none}
.stage[data-thumbnail-renderer=webgl] .thumbnail-rail img{visibility:hidden}
.thumbnail-rail img{height:34px}
.thumbnail-rail{gap:4px;right:40px;bottom:39.6875px}
.thumbnail-rail img{width:var(--home-thumb-width,61px);height:var(--home-thumb-height,34.3125px)}
.home-outgoing{pointer-events:none}
.cover-exit{position:absolute;inset:0;z-index:3}
.cover-exit .thumbnail-rail img{visibility:hidden}
.cover-exit :is(.home-prev,.home-next){transition:none}
.chapter-outgoing{position:absolute;inset:0;z-index:3;color:var(--ink);pointer-events:none}
.stage[data-icon-ink=dark]{--hero-control-ink:#222;--hero-control-border:#2228}
.stage[data-icon-ink=light]{--hero-control-ink:#fff;--hero-control-border:rgba(255,255,255,.5)}
.stage[data-icon-ink] .hero-copy{color:var(--hero-control-ink)}
.stage[data-controls-pending]{--hero-control-remaining:1;--hero-control-arrow-opacity:0;--hero-control-stroke-progress:0;--hero-control-stroke-visible:0}
.cover-scroll-mobile{display:none}
.cover-scroll-svg{display:block;width:100%;height:100%;color:var(--hero-control-ink,currentColor);overflow:hidden}
.cover-scroll-border{fill:none;stroke:var(--hero-control-border,currentColor);stroke-width:1;stroke-dasharray:154.336;stroke-dashoffset:calc(154.336px * (1 - var(--hero-control-stroke-progress,1)));opacity:var(--hero-control-stroke-visible,1)}
.cover-scroll-glyph,.cover-scroll-outline{position:absolute;inset:0;pointer-events:none}
.cover-scroll-glyph{transform:translate3d(0,calc(-14px * var(--hero-control-remaining,0)),0);will-change:transform,opacity;opacity:var(--hero-control-arrow-opacity,1)}
.cover-scroll-glyph :is(line,polyline){fill:none;stroke:currentColor;stroke-width:1}
.cover-scroll-outline{opacity:1;transition:opacity 300ms cubic-bezier(.25,.46,.45,.94)}
@media(min-width:701px){.scroll-arrow:hover .cover-scroll-outline{opacity:.5}.scroll-copy:hover{opacity:.4}}
@media(min-width:701px){
  /* Open IBM Plex glyphs retain the published 780/-220 vertical metrics.
     This also keeps Chinese fallback glyphs on the original baseline. */
  @font-face{font-family:'s';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ibm-plex-sans/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYbSB4Zh.woff2') format('woff2');ascent-override:78%;descent-override:22%;line-gap-override:0%}
  .home-copy h1,.hero-copy,.hero-copy h1,.hero-copy p,.hero-counter,.scroll-copy,.pagination,.loading-number{font-family:'s','PingFang SC','Noto Sans SC',sans-serif}
  /* Each published caption owns its raster; promoting the whole copy block
     changes fractional glyph sampling even when all text ranges match. */
  .home-copy h1{will-change:transform}
  .stage[data-mode=detail] .hero-copy{will-change:auto}
  .hero-copy h1{will-change:opacity}
  .hero-copy p span,.scroll-copy span{will-change:transform}
  /* The published moving header caches its captions apart from the fixed
     photograph. Keep that surface local while physical scrolling moves it. */
  .hero-surface{position:absolute;inset:0;will-change:transform;transform:translate3d(0,0,0)}
  /* The original space advances 211 units; Plex advances 236, per 1000em. */
  .hero-copy h1{word-spacing:-.025em}
  .chapter-progress{position:fixed;top:0;left:0;width:3px;height:100svh;background:#fff;transform:translate3d(0,-100%,0);pointer-events:none;z-index:3}
  /* Chapter copy and its scroll label share the published cover shadow.
     The counter has a halo only on the pale cover. Retiring titles keep
     their own chapter theme while the next chapter enters. */
  .stage[data-mode=detail],.chapter-outgoing{--hero-copy-width:88vw;--desktop-hero-shadow:0 1px 20px #0005;--desktop-hero-counter-shadow:none}
  :is(.stage,.chapter-outgoing)[data-chapter=overview]{--desktop-hero-shadow:0 1px 10px #fffc;--desktop-hero-counter-shadow:var(--desktop-hero-shadow)}
  :is(.stage,.chapter-outgoing)[data-chapter=testimonials]{--hero-copy-width:27vw;--desktop-hero-shadow:none}
  .hero-copy{width:44vw;max-width:680px}
  .hero-copy p{width:var(--hero-copy-width,88vw);max-width:none}
  .hero-copy,.scroll-copy{text-shadow:var(--desktop-hero-shadow,none)}
  .hero-counter{text-shadow:var(--desktop-hero-counter-shadow,none)}
  /* Keep the authored page surface separate from the shell paper backing,
     as in the published embedded chapter. Merging them changes edge alpha. */
  .chapter-content>.inline-chapter{will-change:transform}
  /* The plain Insights paper rasterizes both backgrounds within its relative
     owner. A forced inner layer composites its fractional edge twice. */
  .chapter-content:has(>.inline-chapter[data-inline-chapter="insights"]){position:relative}
  /* The scroll track retains the first paper raster. Its zero transform must
     exist before the first paint; adding it on the first wheel re-samples
     the multiply grain at that wheel's fractional device-pixel origin. */
  .chapter-scroll-track{will-change:transform}
  .chapter-scroll-track>.chapter-content{transform:translate3d(0,0,0)}
  .chapter-content>.inline-chapter[data-inline-chapter="insights"]{will-change:auto}
  /* The embedded Convenings canvas already owns its drawing layer. An extra
     promoted chapter composites the paper edge over its dark stage twice. */
  .chapter-content>.inline-chapter[data-inline-chapter="convenings"]{will-change:auto}
  /* Photography has no paper surface in the published desktop shell. */
  .chapter-content:has(>.photo-reading){background:transparent}
  /* The embedded plot relied on the published shell's SVG sizing reset.
     Its integer drawing dimensions must not truncate the container width. */
  .chapter-content>.inline-chapter[data-inline-chapter="insights"] .article-plot{width:100%;height:auto}
  .stage[data-icon-ink] .hero-copy,.chapter-outgoing .hero-copy{color:var(--desktop-hero-text,var(--hero-control-ink))}
  .cover-scroll-svg{color:var(--desktop-hero-arrow,var(--hero-control-ink))}
  .cover-scroll-border{stroke:var(--desktop-hero-border,var(--hero-control-border))}
  #site-navigation[data-desktop-hero-brand] .site-nav-brand{color:var(--native-desktop-hero-brand)}
  .hero-counter{top:calc(var(--site-nav-height,68px) + 12px);right:var(--site-nav-inset,32px);width:32px;height:20px;line-height:20px;display:flex;overflow:hidden;color:var(--desktop-hero-text,var(--hero-control-ink,currentColor))}
  .hero-counter span{display:block;flex:none;width:12px;text-align:center}
  .hero-counter-left{transform:translateX(calc(-13.2px * var(--hero-control-remaining,0)))}
  .hero-counter .hero-counter-middle{width:8px;transform:scaleX(calc(1 - var(--hero-control-remaining,0)))}
  .hero-counter-right{transform:translateX(calc(13.2px * var(--hero-control-remaining,0)))}
  .scroll-copy{height:22px;line-height:normal;overflow:hidden;color:var(--desktop-hero-text,var(--hero-control-ink,currentColor));transition:opacity 300ms cubic-bezier(.25,.46,.45,.94)}
  .scroll-copy span{display:block;transform:translateY(calc(24.2px * var(--hero-control-remaining,0)))}
  .scroll-arrow{border:0;border-radius:0}
}
@media(max-width:700px){.cover-scroll-svg{display:none}.cover-scroll-mobile{display:inline}}
.home-prev::before,.home-prev::after,.home-next::before,.home-next::after{transform:translate(-50%,-50%) var(--home-control-rotation, );transition:transform 1.2s cubic-bezier(.19,1,.22,1)}

/* Fresh documents keep text hidden while cover textures are prepared. */
.stage[data-cold-loading] :is(.hero-copy,.hero-counter,.scroll-copy,.scroll-arrow){visibility:hidden}

/* A leaving chapter retains its visible authored body below a rising mask. */
.chapter-body-outgoing{position:fixed;inset:0;height:100svh;overflow:hidden;z-index:9;pointer-events:none;contain:layout paint}
.chapter-body-frame{position:absolute;left:0;top:0;transform-origin:0 0}
.home-return-shade{position:fixed;inset:0;background:#0e0e0e;opacity:0;z-index:9994;pointer-events:none}
.stage[data-home-return] :is(.home-prev,.home-next){transition:none;opacity:0}

/* Public desktop cover controls retain a one-pixel keyboard focus outline. */
.home-desktop :is(.home-prev,.home-next):focus-visible{outline-width:1px;outline-offset:7px}
.home-desktop :is(.home-prev,.home-next):disabled{pointer-events:none}

/* Independent decorative centre mark, measured from public rendered bounds. */
.home-centre-mark{position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);pointer-events:none;--home-centre-ink:rgba(255,255,255,.96)}
.home-centre-mark>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background-color:var(--home-centre-ink);transition:background-color 400ms cubic-bezier(.25,0,.25,1)}
.home-centre-mark>span:first-child{width:var(--home-centre-length,0px);height:1.5px}
.home-centre-mark>span:last-child{width:1.5px;height:var(--home-centre-length,0px)}
@media(prefers-reduced-motion:reduce){.home-centre-mark>span{transition:none}}

/* Keep the departing history frame over the restored live page. */
html[data-history-snapshot]::view-transition-group(root){animation:none}
html[data-history-snapshot]::view-transition-new(root){display:none}
html[data-history-snapshot]::view-transition-old(root){mix-blend-mode:normal;animation:native-history-frame-return 360ms 60ms cubic-bezier(.22,1,.36,1) both}
@keyframes native-history-frame-return{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){html[data-history-snapshot]::view-transition-old(root){animation:none}}

/* Mobile covers are photographs to browse; only their caption is an entry.
   Keep the original padded text hit area and the photograph aspect ratio. */
@media(max-width:700px){
 .home-mobile{width:calc(100% - 5.8594vw);margin:0 auto;padding:0 0 80px}
 .mobile-card{margin-bottom:12.6953vw}
 .mobile-card img{height:auto;aspect-ratio:964/1100;object-fit:cover}
 .mobile-entry{display:block;width:max-content;max-width:calc(100% - 40px);padding:20px;margin:-20px}
 .mobile-card h2{font-size:3.9063vw;line-height:5.0781vw;margin:0;padding-top:3.9063vw;letter-spacing:-.32px;color:#fff}
 .mobile-card p{font-size:16px;line-height:24px;margin:0;padding-top:1.7578vw;letter-spacing:-.32px}
}
@media(max-width:600px){
 .home-mobile{width:calc(100% - 10.6667vw)}
 .mobile-card{margin-bottom:21.3333vw}
 .mobile-card img{aspect-ratio:335/600}
 .mobile-card h2{font-size:8vw;line-height:10.1333vw;padding-top:8vw}
 .mobile-card p{padding-top:2.1333vw}
}

.mobile-route-curtain{position:fixed;inset:0;background:#0e0e0e;z-index:9995;pointer-events:none;will-change:opacity}

/* Phone intro is emitted hidden so the existing no-JS reading stays accessible. */
.phone-boot-shade{position:fixed;inset:0;background:#141414;z-index:9996;will-change:opacity}
.phone-boot-shade[hidden]{display:none!important}
@media(min-width:701px){.phone-boot-shade{display:none}}
@media(max-width:700px){
 .scroll-arrow{color:var(--hero-control-ink);bottom:max(24px,env(safe-area-inset-bottom));border-radius:0}
 .cover-scroll-mobile{display:block;width:100%;height:100%;transform:rotate(180deg);fill:none;stroke:currentColor}
 .cover-scroll-mobile rect{opacity:.3}
}

@media(max-width:700px){
 .hero-copy h1{font-size:clamp(64px,10vw,88px)}
 .stage[data-mode=detail] .hero-copy{color:var(--desktop-hero-text);text-shadow:0 2px 24px #0008}
 .stage[data-chapter=overview] .hero-copy{text-shadow:0 1px 10px #fffc}
 .stage[data-chapter=testimonials] .hero-copy{text-shadow:none}
 .scroll-arrow{color:var(--desktop-hero-arrow)}
}
@media(max-width:700px){.hero-copy{right:7%;width:auto}}

/* Opening crosses grow independently; counter digits enter clipped masks. */
:is(.stage,.cover-exit)[data-opening-controls] :is(.home-prev,.home-next)::before{width:calc(22px * var(--home-opening-cross,0))}
:is(.stage,.cover-exit)[data-opening-controls] :is(.home-prev,.home-next)::after{height:calc(22px * var(--home-opening-cross,0))}
:is(.stage,.cover-exit)[data-opening-controls] .pagination>span{overflow:hidden}
.stage[data-home-cross-motion] :is(.home-prev,.home-next)::before{width:calc(22px * var(--home-opening-cross,0))}
.stage[data-home-cross-motion] :is(.home-prev,.home-next)::after{height:calc(22px * var(--home-opening-cross,0))}
.pagination-value{display:block}
.pagination>span{display:inline-block;height:20px;overflow:hidden}
.pagination-roller{position:absolute;top:0;left:0;display:block;will-change:transform}
.pagination-roller>span{display:block;height:20px}
.pagination>span:first-child>.pagination-value{position:relative;height:20px}

/* Published control hierarchy: a22px visual actor and a64px hit button. */
.stage.home-desktop{color:var(--home-title-ink,var(--ink));transition:color 420ms ease}
.home-prev,.home-next{color:var(--home-title-ink,var(--ink))}
.pagination{height:20px;overflow:hidden;transition:color 420ms ease}
.home-prev,.home-next{top:calc(50% - 11px);width:22px;height:22px;transform:var(--home-control-rotation, );will-change:transform;transition:opacity 200ms ease,transform 1.2s cubic-bezier(.19,1,.22,1)}
.home-prev{left:16.1979vw}.home-next{left:auto;right:16.1979vw}
.home-prev::before,.home-prev::after,.home-next::before,.home-next::after{content:none}
.home-prev:not(:disabled),.home-next:not(:disabled){opacity:var(--home-switch-opacity,.7)}
.home-prev:has(button:hover),.home-next:has(button:hover),.home-prev:has(button:focus-visible),.home-next:has(button:focus-visible){opacity:1}
.home-prev:has(button:disabled),.home-next:has(button:disabled){opacity:.25;pointer-events:none}
.home-prev button,.home-next button{position:absolute;inset:-21px;width:64px;height:64px;padding:0;pointer-events:auto;touch-action:manipulation}
.home-prev button:focus-visible,.home-next button:focus-visible{outline:1px solid currentColor;outline-offset:7px}
.home-cross-svg{display:block;width:22px;height:22px;fill:var(--home-cross-ink,currentColor);overflow:hidden;transition:fill 420ms ease}
.home-centre-mark .home-cross-svg{fill:var(--home-centre-ink)}

.home-prev button:disabled,.home-next button:disabled{pointer-events:none;cursor:default}

@media(max-width:999px){.stage.home-desktop .pagination{display:none}}

@media(min-width:701px){.stage{min-height:0}}

/* The settled typography is unchanged; only the ink moves
   within its own line mask, independently of the photograph's damping. */
@media(min-width:701px){
  .home-title-mask,.home-entry-mask{overflow:hidden}
  .home-copy .home-entry-mask{margin-top:28px;padding-bottom:6px;margin-bottom:-6px}
  .home-entry-mask p{margin-top:0}
  .home-title-mask>[data-home-title-ink]{display:block}
  .home-copy [data-home-title-ink]{will-change:transform}
}
