/* Readable layout, with explicit dimensions and colours for older engines. */
html { font-size:17px; color-scheme:only light; scroll-padding-top:0; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { font-family:"FECOM Inter",Arial,sans-serif; color:#071526; color:var(--paint-071526,#071526); background:#fff; overflow-wrap:break-word; overflow-wrap:anywhere; }
html[lang="zh"] body { font-family:"FECOM Inter","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif; }
.container { width:calc(100% - 32px); max-width:2240px; margin-left:auto; margin-right:auto; }
.section { padding:64px 0; }
.section-heading,.about-grid,.contact-grid { gap:36px; }
.section-heading > p,.hero-intro,.contact-intro,.service-body p { max-width:42em; font-size:1.1rem; line-height:1.75; }
.hero-guidance,.service-points,.about-copy p,.process p,.projects-footer > p,.portfolio-body { font-size:1rem; }
.hero-guidance { color:#b8cde1; color:var(--paint-b8cde1,#b8cde1); }
.hero-intro { color:#d2e2f3; color:var(--paint-d2e2f3,#d2e2f3); }
.hero h1 { font-size:2.8rem; font-size:clamp(2.6rem,4.8vw,5.2rem); }
h2 { font-size:2.2rem; font-size:clamp(2rem,3.5vw,3.4rem); }
.hero-art { height:400px; height:clamp(320px,32vw,580px); aspect-ratio:auto; }
.hero-grid { gap:32px; }
.hero-copy { padding-bottom:0; }
.need-copy { padding:0; }
.need-link,.need-copy { min-width:0; }
.need-title { font-size:1.18rem; line-height:1.45; max-width:none; }
.need-copy .eyebrow { font-size:.8rem; }
.needs { margin-top:28px; }
.need-link,.need-link:first-child { padding:22px; min-height:144px; }
.trust-strip { margin-top:28px; padding:24px 0 30px; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
.trust-strip p:not(.trust-title),.sector-list { font-size:.9rem; color:#b8cde1; color:var(--paint-b8cde1,#b8cde1); }
.sector-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.sector-list li { padding:5px 10px; border:1px solid #416488; border:1px solid var(--paint-416488,#416488); border-radius:6px; line-height:1.45; color:#d2e5fb; color:var(--paint-d2e5fb,#d2e5fb); background:#102f50; background:var(--paint-102f50,#102f50); }
.sector-list li + li::before { content:none; }
.code-window { background:#09203a; background:var(--paint-09203a,#09203a); border-color:#416488; border-color:var(--paint-416488,#416488); }
.code-window { -webkit-transform:rotate(-2deg); -webkit-animation:window-float 9s ease-in-out infinite; }
.data-packet { -webkit-animation:packet-flow 9s linear infinite; }
.packet-alt { -webkit-animation-delay:-4s; -webkit-animation-duration:12s; }
.floating-chip { display:flex; align-items:center; justify-content:center; }
.floating-chip { -webkit-animation:chip-float 7s ease-in-out infinite; }
.chip-code { animation-name:code-chip-float; -webkit-animation-name:code-chip-float; }
.chip-data { animation-delay:-3s; -webkit-animation-delay:-3s; }
.binary-ribbon span { -webkit-animation:binary-scroll 14s linear infinite; }
.hero,.contact-section { background-color:#082141; background-color:var(--paint-082141,#082141); }
.window-bar { border-color:#294763; border-color:var(--paint-294763,#294763); }
.hero-copy .eyebrow { font-size:.85rem; }
.code-content { font-size:13px; font-size:clamp(11px,1vw,18px); }
.hero h1 span { -webkit-text-fill-color:#80c3ff; -webkit-text-fill-color:var(--paint-80c3ff,#80c3ff); color:#80c3ff; color:var(--paint-80c3ff,#80c3ff); background:none; }
.language-trigger,.main-nav a { font-size:.95rem; }
.header-inner .brand { width:210px; }
.language-options { max-height:420px; max-height:min(420px,calc(100vh - 110px)); }
.language-options a { font-size:1rem; }
.language-current-name { min-width:0; overflow-wrap:anywhere; }
.portfolio-title { font-size:1.18rem; }
.portfolio-period,.portfolio-client,.portfolio-tech,.file-label,.company-details,.footer-top address,.footer-bottom,.back-top,.contact-hint { font-size:.9rem; }
.portfolio-overview { font-size:1rem; }
.timeline-year,.timeline-year small { font-family:"FECOM Inter",Arial,sans-serif; }
.timeline-year { font-size:1.8rem; line-height:1.2; font-weight:600; }
.timeline-year small { font-size:.75rem; }
.timeline-nav { background:#f5faff; background:var(--paint-f5faff,#f5faff); gap:4px; margin-bottom:32px; }
.timeline-nav a { font-size:.95rem; padding:8px 16px; }
.timeline-nav.is-tracked .timeline-nav-today { color:#075ecb; color:var(--paint-075ecb,#075ecb); background:transparent; }
.timeline-nav.is-tracked a[aria-current="location"] { color:#fff; background:#075ecb; background:var(--paint-075ecb,#075ecb); }
.timeline-nav.is-tracked a:hover { background:#deedff; background:var(--paint-deedff,#deedff); color:#004498; color:var(--paint-004498,#004498); }
.timeline-nav.is-tracked a[aria-current="location"]:hover { background:#004498; background:var(--paint-004498,#004498); color:#fff; }
.timeline-entry { scroll-margin-top:132px; scroll-margin-top:var(--timeline-offset,132px); }
.timeline-milestone p,.timeline-story p { font-size:1rem; max-width:50em; }
.timeline-story-tech { font-size:.9rem; }
.portfolio-body { color:#4c6075; color:var(--paint-4c6075,#4c6075); }
.process { gap:28px; margin-top:42px; }
.process p { max-width:none; }
.service-body { gap:32px; }
.contact-email { overflow-wrap:anywhere; }
.contact-section { padding:64px 0; }
.details-fallback details:not([open]) > :not(summary) { display:none; }
.details-fallback summary { display:block; cursor:pointer; }
.details-fallback .language-trigger { display:flex; }
.details-fallback .portfolio-project summary,.details-fallback .service summary { display:grid; }
@keyframes window-float { 0%,100% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(-2deg) translateY(-8px); } }
@keyframes chip-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-9px); } }
@keyframes code-chip-float { 0%,100% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-9px); } }
@-webkit-keyframes window-float { 0%,100% { -webkit-transform:rotate(-2deg) translateY(0); } 50% { -webkit-transform:rotate(-2deg) translateY(-8px); } }
@-webkit-keyframes chip-float { 0%,100% { -webkit-transform:translateY(0); } 50% { -webkit-transform:translateY(-9px); } }
@-webkit-keyframes code-chip-float { 0%,100% { -webkit-transform:rotate(-8deg) translateY(0); } 50% { -webkit-transform:rotate(-8deg) translateY(-9px); } }
@-webkit-keyframes packet-flow { to { stroke-dashoffset:-158; } }
@-webkit-keyframes binary-scroll { to { -webkit-transform:translateY(-50%); } }
@media (min-width:700px) { .container { width:calc(100% - 48px); } }
@media (min-width:701px) {
  .timeline-entry { grid-template-columns:8rem minmax(0,1fr); }
  .timeline-list::before { left:6.1rem; }
  .timeline-year::after { left:calc(6.1rem - 7px); }
  .timeline-year small { max-width:5.4rem; }
}
@media (min-width:1101px) { html { font-size:18px; } .container { width:calc(100% - 64px); } }
@media (min-width:1600px) { html { font-size:20px; } .container { width:calc(100% - 96px); } }
@media (min-width:2200px) { html { font-size:24px; } .container { max-width:3360px; } .hero-art { height:640px; } }
@media (min-width:3200px) { html { font-size:28px; } .hero-art { height:800px; } .header-inner .brand { width:300px; } }
@media (max-width:1100px) { .header-inner .brand { width:180px; } .timeline-nav a { padding:8px 13px; } }
@media (max-width:800px) {
  .hero-grid { grid-template-columns:1fr; gap:16px; }
  .hero-art { width:100%; max-width:560px; height:370px; height:clamp(280px,70vw,440px); margin:0 auto; }
  .hero h1 { font-size:2.8rem; font-size:clamp(2.6rem,7.6vw,4rem); }
  .trust-strip { grid-template-columns:1fr; gap:20px; }
  .service-body,.section-heading,.about-grid,.contact-grid { grid-template-columns:1fr; gap:24px; }
  .trust-strip > div + div { padding-left:0; border-left:0; }
  .needs { grid-template-columns:minmax(0,1fr); }
  .need-link,.need-link:first-child { min-height:0; padding:20px; }
  .need-title { font-size:1.12rem; }
  .need-copy .eyebrow { font-size:.8rem; }
}
@media (max-width:600px) {
  .section { padding:48px 0; }
  .header-inner { gap:8px; grid-template-columns:minmax(0,110px) minmax(0,1fr) 44px; }
  .header-inner .brand { width:110px; }
  .language-picker { justify-self:stretch; }
  .language-trigger { font-size:.85rem; gap:5px; }
  .language-current-name { white-space:normal; max-width:100%; line-height:1.3; }
  .language-options { right:-52px; }
  .hero h1 { font-size:2.5rem; font-size:clamp(2.35rem,9.6vw,3.2rem); }
  .hero-copy .eyebrow { font-size:.8rem; }
  .hero-art { height:290px; height:clamp(260px,78vw,440px); }
  .code-content { font-size:9px; font-size:clamp(8px,2.65vw,12px); }
  .hero-intro,.contact-intro { font-size:1.05rem; }
  .hero-guidance { font-size:1rem; }
  .timeline-nav { gap:2px; padding:5px; }
  .timeline-nav a { font-size:.85rem; padding:7px 10px; }
  .timeline-milestone,.timeline-story { padding:20px; }
  .portfolio-project summary { padding:18px; }
  .portfolio-title { font-size:1.1rem; }
  .service summary { font-size:1.2rem; grid-template-columns:30px minmax(0,1fr) 18px; }
  .service-body { padding-left:12px; padding-right:12px; }
  .portfolio-body { margin-left:18px; margin-right:18px; }
  .contact-email { font-size:1.2rem; }
  .contact-section h2 { font-size:2.2rem; }
}
@media (max-width:360px) { .header-inner { grid-template-columns:92px minmax(0,1fr) 44px; } .header-inner .brand { width:92px; } }
/* Older TV/WebKit engines get a simple document flow, not an empty grid. */
@supports not (display:grid) {
  .header-inner { display:block; padding:18px 0; }
  .header-inner .brand { display:inline-block; vertical-align:middle; }
  .language-picker { display:inline-block; vertical-align:middle; padding-left:16px; margin:8px; }
  .language-options { position:static; margin-top:12px; max-width:100%; }
  .header-inner .main-nav { display:block; border-top:1px solid #cfdeee; border-top:1px solid var(--paint-cfdeee,#cfdeee); }
  .main-nav a { display:inline-block; margin-right:20px; }
  .header-inner .menu-toggle,.js .header-inner .menu-toggle { display:none; }
  .js .header-inner .main-nav:not(.is-open) { display:block; }
  .hero-grid,.needs,.trust-strip,.section-heading,.service-body,.about-grid,.process,.contact-grid,.footer-top,.timeline-entry,.timeline-projects,.portfolio-heading,.service-number { display:block; }
  .hero-copy,.section-heading > div,.about-grid > div,.contact-grid > div { margin-bottom:24px; }
  .hero-art { max-width:640px; margin:0 auto 24px; }
  .hero h1 { font-size:3rem; }
  h2 { font-size:2.4rem; }
  .need-link,.need-link:first-child { display:block; margin-bottom:12px; }
  .trust-strip > div { margin-bottom:22px; }
  .sector-list { display:block; }
  .sector-list li { display:inline-block; margin:0 6px 8px 0; }
  .timeline-list::before { left:9px; }
  .timeline-entry { padding-left:32px; }
  .timeline-year { margin-bottom:18px; }
  .timeline-year::after { left:-30px; }
  .timeline-year small { max-width:none; }
  .portfolio-project { margin-bottom:16px; background:#fff; }
  .portfolio-project summary,.details-fallback .portfolio-project summary,.service summary,.details-fallback .service summary { display:block; }
  .portfolio-period,.portfolio-title,.portfolio-client { display:block; margin-bottom:8px; }
  .portfolio-toggle { float:right; }
  .service,.service:last-child,.footer-bottom { border-color:#cfdeee; border-color:var(--paint-cfdeee,#cfdeee); }
  .service summary { color:#071526; color:var(--paint-071526,#071526); padding:24px 12px; }
  .service-number { color:#075ecb; color:var(--paint-075ecb,#075ecb); }
  .service-body { padding:0 12px 28px; }
  .service-body h3 { margin-bottom:14px; }
  .service-body p,.service-points,.about-copy p,.process p,.projects-footer > p,.footer-top address,.company-details,.footer-bottom { color:#4c6075; color:var(--paint-4c6075,#4c6075); }
  .service-points,.process > div,.footer-top > * { margin-top:24px; }
  .section-heading .eyebrow,.about-section .eyebrow,.process-number { color:#075ecb; color:var(--paint-075ecb,#075ecb); }
  .timeline-story { background:#eaf4ff; background:var(--paint-eaf4ff,#eaf4ff); }
  .timeline-milestone { background:#082141; background:var(--paint-082141,#082141); }
  .timeline-nav { position:relative; background:#f5faff; background:var(--paint-f5faff,#f5faff); }
  .timeline-nav a { display:inline-block; }
  .contact-section { background:#082141; background:var(--paint-082141,#082141); }
  .art-glow { top:10%; bottom:10%; left:6%; right:6%; }
  .circuit-board { top:0; left:0; }
  .floating-chip { display:block; text-align:center; padding-top:20px; }
  .chip-data svg { margin:auto; }
  .hero::before { top:0; bottom:0; left:0; right:0; }
}
@media print {
  html { font-size:12pt; color-scheme:only light; }
  .container { width:100%; max-width:none; }
  .hero,.contact-section { background:#fff; }
  .hero h1 span { color:#075ecb; color:var(--paint-075ecb,#075ecb); -webkit-text-fill-color:currentColor; }
  .sector-list li { color:#111; background:#fff; border-color:#aaa; }
}
