/* Yuanxin brand layer; resource progress and original 3D scene lifecycle retained. */
#header { isolation: isolate; }
#header::before {
  content: ""; position: absolute; inset: 0 0 48px; z-index: -1;
  background: rgba(240,241,250,.94); backdrop-filter: blur(14px);
  opacity:0; transition: background .3s, opacity .3s;
}
html.yuanxin-header-floating #header::before { opacity:1; }
html.is-black-bg #header::before { background: rgba(17,18,20,.92); }
html.is-blue-bg #header::before { background: rgba(35,49,201,.92); }
#header-logo { width: 160px; text-decoration: none; }
.yuanxin-wordmark { display:flex; align-items:center; gap:16px; font-size:30px; font-weight:500; letter-spacing:-1px; line-height:1; white-space:nowrap; }
.yuanxin-wordmark small { display:block; padding-left:16px; border-left:1px solid currentColor; font-size:15px; letter-spacing:1px; font-weight:400; }
.yuanxin-loader-brand { position:absolute; top:42px; left:var(--base-padding-x); color:white; font:500 30px Aeonik,sans-serif; letter-spacing:-1px; }
.yuanxin-loader-brand span { display:block; font:13px 'Microsoft YaHei',sans-serif; margin-top:10px; letter-spacing:3px; }
.yuanxin-footer-signature { padding:60px var(--base-padding-x) 40px; font:500 16vw/1 Aeonik,sans-serif; letter-spacing:-.055em; }
.yuanxin-footer-signature small { display:block; margin-top:25px; font:18px/1.6 'Microsoft YaHei',sans-serif; letter-spacing:0; }
body:has(dialog[open]) { overflow:hidden; }
#home-hero-title { font-size:clamp(22px,2.2vw,34px); line-height:1.4!important; }
#home-reel-title { font-size:7.4vw!important; line-height:1.2!important; letter-spacing:-.045em; }
#home-reel-desc { font-size:clamp(18px,1.5vw,24px); line-height:1.7!important; }
#home-reel-video-title { font-size:clamp(30px,5vw,80px); gap:2.8em; }
#home-reel-video-title .home-reel-video-title-word { height:1em; }
#home-reel-video-title .char-wrapper { width:1em; top:0; height:1em; overflow:hidden; }
#home-reel-video-title .char-wrapper > span { line-height:1; }
#home-featured-disclaimer { font-size:clamp(16px,1.1vw,20px); }
.project-item-line-1 { font-size:clamp(14px,1vw,18px); line-height:1.5; }
.project-item-line-2-inner { font-size:clamp(22px,2.7vw,42px); line-height:1.3; }
#home-goal { padding-bottom:calc(var(--vh,1vh) * 1100); }
#home-goal-title { font-size:6.5vw; line-height:1.3; width:100%; }
#home-goal-texts { font-size:clamp(18px,1.4vw,24px); }
#home-goal-tunnel-title { font-size:6vw; line-height:1.3; }
#end-section-title-link { color:inherit; text-decoration:none; display:block; }
.end-section-title-link-word { height:1em; }
.end-section-title-link-word .char-wrapper { top:0; }
#yuanxin-capabilities { padding:80px var(--base-padding-x) 120px; color:#15161a; background:#f0f1fa; }
.yuanxin-section-heading { margin-bottom:48px; }
.yuanxin-section-heading > span { font-size:16px; }
.yuanxin-section-heading h2 { margin:20px 0 0; font-size:clamp(36px,4vw,64px); line-height:1.2; font-weight:400; letter-spacing:-.03em; }
.yuanxin-capabilities-grid { display:grid; grid-template-columns:1fr; gap:0; }
.yuanxin-capabilities-grid a { display:grid; grid-template-columns:.65fr 1.3fr 1.5fr; align-items:start; column-gap:40px; padding:36px 0; border-top:1px solid #15161a44; color:inherit; text-decoration:none; }
.yuanxin-capabilities-grid a > span { font-size:14px; }
.yuanxin-capabilities-grid h3 { font-size:clamp(26px,2.3vw,38px); line-height:1.4; margin:0; font-weight:400; }
.yuanxin-capabilities-grid p { font-size:18px; line-height:1.8; margin:0 0 30px; max-width:36ch; }
.yuanxin-capabilities-grid strong { grid-column:3; justify-self:start; font-weight:400; font-size:16px; display:inline-block; border-bottom:1px solid transparent; padding-bottom:6px; }
.yuanxin-capabilities-grid a:hover strong { border-color:currentColor; }
.yuanxin-capabilities-grid a:focus-visible { outline:2px solid #2331c9; outline-offset:8px; }
#yuanxin-stage-caption { position:fixed; left:var(--base-padding-x); bottom:42px; z-index:51; max-width:420px; padding:24px 28px; background:#111214da; color:white; border-radius:12px; pointer-events:auto; opacity:0; visibility:hidden; transition:opacity .35s; }
#yuanxin-stage-caption.is-visible { opacity:1; visibility:visible; }
#yuanxin-stage-caption span { font-size:14px; opacity:.7; }
#yuanxin-stage-caption h3 { font-size:28px; font-weight:400; margin:12px 0; }
#yuanxin-stage-caption p { font-size:16px; line-height:1.7; margin:0 0 16px; }
#yuanxin-stage-caption a { font-size:16px; color:inherit; text-decoration:underline; text-underline-offset:5px; }
@media(max-width:812px) {
  .yuanxin-wordmark { display:block; font-size:23px; }
  .yuanxin-wordmark small { padding:0; border:0; margin-top:7px; font-size:11px; letter-spacing:3px; }
  #header-logo { width:132px; }
  #home-hero-title { font-size:22px!important; }
  #home-reel-title { font-size:10.5vw!important; }
  #home-reel-video-title { display:none; }
  #yuanxin-capabilities { padding:60px var(--base-padding-x) 72px; }
  .yuanxin-capabilities-grid { grid-template-columns:1fr; gap:12px; }
  .yuanxin-capabilities-grid h3 { margin:24px 0 18px; }
  .yuanxin-capabilities-grid a { display:block; padding-bottom:28px; }
  #home-goal-title { font-size:12vw; }
  #home-goal { padding-bottom:calc(var(--vh,1vh) * 1000); }
  #yuanxin-stage-caption { bottom:24px; left:20px; right:20px; max-width:none; padding:18px; }
  #yuanxin-stage-caption h3 { font-size:22px; }
  #yuanxin-stage-caption p { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
  #yuanxin-stage-caption, #header::before { transition:none; }
}
/* Unified web typography. These override the legacy scene's display families. */
body,#header,#footer-section,#home-hero-title,#home-reel-title,#home-goal-title,#home-goal-tunnel-title,.project-item-line-2-inner,#end-section-title-link {font-family:var(--yx-type)!important;}
body :is(h1,h2,h3,h4,h5,h6,p,a,button){font-family:var(--yx-type)!important;}
#header-logo {width:auto!important;min-width:190px;}
#home-hero-title {font-weight:500;letter-spacing:-.035em;font-size:clamp(22px,2.3vw,36px)!important;line-height:1.5!important;}
#home-reel-title {font-weight:500;letter-spacing:-.04em;font-size:7.8vw!important;line-height:1.17!important;}
#home-reel-desc,.home-goal-texts-paragraph{font-weight:400;letter-spacing:0;line-height:1.85!important;}
#home-featured-title{font-family:var(--yx-type);font-size:clamp(54px,8vw,128px);font-weight:500;letter-spacing:-.035em;}
.project-item-line-2-inner{font-weight:500;letter-spacing:-.025em;}
.project-item-line-1,#footer-bottom{letter-spacing:.015em;}
.yuanxin-loader-brand{top:40px;left:var(--base-padding-x);font-family:var(--yx-type);}
.yuanxin-loader-brand span{font:inherit;margin:0;letter-spacing:inherit;}
.yuanxin-loader-brand .yx-name{gap:8px;}
.yuanxin-loader-brand>.yuanxin-brand-lockup{display:flex;}
.preloader-percent-digit{font-family:'Yuanxin Latin',sans-serif!important;}
.yuanxin-loader-skip{position:absolute;right:var(--base-padding-x);bottom:40px;color:white;z-index:5;pointer-events:auto;font:400 14px var(--yx-type);text-decoration:none;padding:12px 0;border-bottom:1px solid #ffffff66;}
.yuanxin-footer-signature{position:relative;z-index:1;padding:60px 0 40px;color:var(--yx-blue);font-family:'Yuanxin Latin',sans-serif;letter-spacing:-.06em;font-size:14vw;display:flex;align-items:center;gap:2vw;flex-wrap:wrap;}
.yuanxin-footer-signature>img{width:12vw;height:12vw;}
.yuanxin-footer-signature small{flex-basis:100%;font-family:var(--yx-type);margin:0;font-size:16px;}
.yuanxin-section-heading>span{font-family:'Yuanxin Latin',sans-serif;font-size:13px;letter-spacing:.1em;}
.yuanxin-capabilities-grid h3{font-weight:500;letter-spacing:-.025em;}
.yuanxin-capabilities-grid a>span{line-height:1.7;}
#footer-middle{display:block!important;}
#footer-middle-contact{width:100%!important;display:grid!important;grid-template-columns:1.4fr 1fr 1fr;gap:40px;align-items:start;}
#footer-middle-contact>div,#footer-contact-address{grid-area:auto!important;width:auto!important;margin:0!important;}
#footer-contact-enquires{display:none!important;}
#header-logo,#home-featured-title,#yuanxin-capabilities-title{color:var(--yx-blue)!important;}
#home-hero-title{visibility:hidden!important;pointer-events:none;}
/* Single-row case titles: glyphs animate once, without stacked text copies. */
.project-item-line-2{overflow:hidden!important;clip-path:inset(0);line-height:1.4!important;min-height:1.4em;}
.project-item-line-2-inner{height:1.4em!important;overflow:hidden!important;line-height:1.4!important;}
.project-item-line-2-inner-list{height:1.4em!important;line-height:1.4!important;}
.project-item-line-2-inner-list>span{display:block;flex:none;line-height:1.4!important;}
.yuanxin-loader-brand .yx-name{gap:6px;}
#yuanxin-capabilities{padding:96px var(--base-padding-x) 120px;}
.yx-cap-heading{display:grid;grid-template-columns:1.25fr 1fr;gap:22px 44px;align-items:end;margin-bottom:60px;}
.yx-cap-heading>span{grid-column:1/-1;font-size:12px;letter-spacing:.1em;color:#626572;}
.yx-cap-heading h2{font-size:clamp(38px,4.7vw,76px);font-weight:500;letter-spacing:-.045em;line-height:1.2;margin:0;}
.yx-cap-heading>p{margin:0;font-size:17px;line-height:1.8;color:#626572;}
.yx-cap-film{display:grid;grid-template-columns:.8fr 1.3fr;gap:clamp(32px,5vw,88px);align-items:center;}
.yx-cap-eyebrow{display:block;font-size:12px;letter-spacing:.07em;line-height:1.7;}
.yx-cap-copy h3{font-size:clamp(34px,3.8vw,60px);font-weight:500;letter-spacing:-.035em;line-height:1.32;margin:24px 0;}
.yx-cap-copy h3 em{font-style:normal;color:var(--yx-blue);}
.yx-cap-copy>p,.yx-cap-next-copy>p{font-size:17px;line-height:1.9;margin:0 0 28px;max-width:28em;}
.yx-cap-link{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0;border-bottom:1px solid currentColor;font-size:15px;color:inherit;text-decoration:none;max-width:240px;}
.yx-cap-link>span{font-size:22px;transition:transform .25s;}
.yx-cap-link:hover>span{transform:translate(3px,-3px);}
.yx-cap-screen{position:relative;margin:0;background:#16171b;border-radius:20px;overflow:hidden;aspect-ratio:1.22;isolation:isolate;}
.yx-cap-screen>video{display:block;width:100%;height:100%;object-fit:cover;}
.yx-cap-screen::after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0009);pointer-events:none;z-index:1;}
.yx-cap-screen figcaption{position:absolute;left:24px;right:24px;bottom:24px;z-index:2;color:white;display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.04em;}
.yx-cap-play{position:absolute;z-index:2;right:22px;top:22px;padding:12px 16px;color:white;background:#17191fcc;border:1px solid #ffffff55;border-radius:30px;font-size:12px;cursor:pointer;backdrop-filter:blur(12px);}
.yx-cap-play span{padding-left:12px;}
.yx-cap-process{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;padding:44px 0 70px;}
.yx-cap-process>div{border-top:1px solid #17191f33;padding-top:20px;}
.yx-cap-process span{font-size:11px;letter-spacing:.09em;color:var(--yx-blue);}
.yx-cap-process h4{font-size:22px;font-weight:500;margin:14px 0 10px;}
.yx-cap-process p{font-size:14px;line-height:1.85;color:#626572;margin:0;max-width:23em;}
.yx-cap-interactive{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;background:var(--yx-blue);color:#fff;border-radius:24px;padding:clamp(28px,4vw,64px);align-items:center;}
.yx-cap-next-copy h3{font-size:clamp(32px,3.5vw,56px);font-weight:500;line-height:1.28;letter-spacing:-.035em;margin:24px 0;}
.yx-cap-next-copy>p{color:#ffffffd9;font-size:16px;}
.yx-cap-features{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.yx-cap-features span{font-size:12px;padding:7px 11px;border:1px solid #ffffff50;border-radius:30px;}
.yx-cap-configurator{background:#eff0f7;color:#17191f;border-radius:16px;overflow:hidden;}
.yx-cap-demo-top,.yx-cap-demo-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;font-size:11px;}
.yx-cap-demo-top>span:first-child{letter-spacing:.1em;}
.yx-cap-configurator>video{display:block;width:100%;aspect-ratio:1.22;object-fit:contain;background:#e2e3e8;}
.yx-cap-demo-bottom{flex-wrap:wrap;}
.yx-cap-demo-bottom>span{color:#626572;}
.yx-cap-swatches{display:flex;gap:16px;}
.yx-cap-swatches button{padding:0;border:0;background:none;cursor:pointer;font-size:11px;display:flex;align-items:center;gap:6px;}
.yx-cap-swatches i{display:block;width:22px;height:22px;border-radius:50%;background:var(--swatch);border:1px solid #17191f33;}
.yx-cap-swatches button[aria-pressed=true] i{outline:1px solid #17191f;outline-offset:3px;}
.yx-cap-next-note{grid-column:1/-1;font-size:12px!important;line-height:1.8;color:#ffffffba;border-top:1px solid #ffffff44;margin:0;padding-top:22px;}
#yuanxin-capabilities :is(a,button):focus-visible{outline:2px solid currentColor;outline-offset:6px;}
@media(max-width:812px){
 #yuanxin-capabilities{padding:64px var(--base-padding-x) 80px;}
 .yx-cap-heading{grid-template-columns:1fr;gap:20px;margin-bottom:36px;}.yx-cap-heading h2{font-size:clamp(32px,7vw,48px);}.yx-cap-heading>p{font-size:15px;}
 .yx-cap-film{grid-template-columns:1fr;gap:30px;}.yx-cap-copy h3{font-size:38px;}.yx-cap-copy>p{max-width:35em;font-size:16px;}.yx-cap-screen{aspect-ratio:1.45;}
 .yx-cap-process{gap:20px;padding-bottom:44px;}.yx-cap-process h4{font-size:18px;}.yx-cap-process p{font-size:13px;}
 .yx-cap-interactive{grid-template-columns:1fr;gap:30px;padding:28px 24px;}.yx-cap-next-copy h3{font-size:36px;}.yx-cap-configurator>video{aspect-ratio:1.4;}.yx-cap-next-note{font-size:11px!important;}
}
@media(max-width:480px){.yx-cap-process{grid-template-columns:1fr;gap:22px;}.yx-cap-process>div{display:grid;grid-template-columns:1fr 1.3fr;gap:8px 14px;}.yx-cap-process span{grid-column:1/-1;}.yx-cap-process h4{margin:0;}.yx-cap-screen figcaption{left:18px;right:18px;font-size:9px;}.yx-cap-swatches{gap:12px;}.yx-cap-demo-top,.yx-cap-demo-bottom{padding:16px 14px;}}
@media(max-width:812px){#footer-middle-contact{grid-template-columns:1fr 1fr;gap:32px 20px;}#footer-contact-address{grid-column:1 / -1!important;}}
@media(max-width:812px){#header-logo{min-width:156px;}#home-hero-title{font-size:clamp(23px,5.5vw,35px)!important;}#home-reel-title{font-size:13vw!important;}#home-featured-title{font-size:12vw;}.yuanxin-loader-brand{top:24px;}.yuanxin-loader-skip{bottom:28px;font-size:12px;}.yuanxin-footer-signature small{font-size:13px;}}
