/* Comfortable reading sizes, contrast and touch targets across both languages. */
:root { --muted:#d0cbd8; }
body { font-size:20px; font-weight:500; line-height:1.85; }
.light-section { --text:#252331; --muted:#4b4356; --accent:#514368; }
button,a { text-underline-offset:5px; }
button:focus-visible,a:focus-visible { outline-width:3px; }
.brand-name { font-size:25px; font-weight:700; letter-spacing:2px; }
.brand-name small { font-size:11px; letter-spacing:3px; font-weight:600; color:#ddd8e4; }
.brand img { width:43px; height:43px; }
.lang-toggle button { font-size:17px; font-weight:650; min-width:44px; min-height:44px; }
.lang-toggle { gap:7px; }
.lang-toggle>span { display:none; }
.nav-cta { font-size:18px; font-weight:650; min-height:48px; }
.burger { min-width:48px; min-height:48px; }
.menu>a { font-size:42px; font-weight:650; }
.menu.open { justify-content:flex-start; }
.menu>a { flex-shrink:0; }
.menu>a:before,.menu-eyebrow { font-size:15px; color:#d0c5df; }
.hero { height:auto; min-height:max(820px,100svh); max-height:none; }
.hero-inner { height:auto; min-height:inherit; padding:145px 0 110px; }
.hero-copy { width:55%; padding-top:0; }
.hero h1,html[lang="en"] .hero h1 { font-size:clamp(58px,4.7vw,84px); font-weight:650; line-height:1.3; letter-spacing:-1px; }
.hero-eyebrow { font-size:14px; letter-spacing:1.6px; font-weight:600; color:#ddd6e6; margin-bottom:30px; }
.hero-index { font-size:14px; color:#c4bdce; }
.hero-subtitle,html[lang="en"] .hero-subtitle { font-size:26px; font-weight:600; letter-spacing:1px; color:#eee9f5; }
.hero-description,html[lang="en"] .hero-description { font-size:20px; font-weight:500; line-height:1.85; max-width:580px; color:#d4cedc; }
.hero-description .desktop-br { display:none; }
.hero-btns { gap:18px; flex-wrap:wrap; margin-top:30px; }
.btn,.hero-btns .btn { font-size:18px; font-weight:650; min-height:56px; padding:13px 22px; gap:22px; letter-spacing:0; }
.btn svg { width:22px; height:22px; flex-shrink:0; }
.hero-certification,html[lang="en"] .hero-certification { font-size:14px; line-height:1.7; font-weight:550; color:#d1c9de; flex-wrap:wrap; letter-spacing:0; gap:8px; margin-top:28px; }
.hero-certification svg { width:20px; height:20px; flex-shrink:0; }
.hero-bottom .scroll-hint { font-size:15px; font-weight:600; min-height:48px; letter-spacing:0; color:#d9d1e3; }
.scroll-circle { width:44px; height:44px; font-size:23px; }
.hero-bottom-note { font-size:12px; letter-spacing:1.5px; color:#c5bdce; }
.hero-object-label { display:none; }
.trust { padding-top:36px; padding-bottom:44px; }
.trust-inner.glass { padding:52px 20px; }
.trust-inner.glass .trust-item { min-width:0; padding:0 24px; }
.stat-number { font-size:48px; font-weight:650; color:#f2edf8; }
.stat-number span { font-size:20px; font-weight:600; color:#d5ccdf; }
.stat-label { font-size:16px; font-weight:550; color:#c8bfd4; line-height:1.7; letter-spacing:0; }
.trust-status .stat-number,html[lang="en"] .trust-status .stat-number { font-size:34px; font-weight:650; }
.section-kicker { font-size:15px; font-weight:650; letter-spacing:1px; color:var(--muted); flex-wrap:wrap; gap:12px; }
.section-head h2,#products .section-head h2 { font-size:46px; font-weight:700; letter-spacing:0; line-height:1.5; }
.section-head p { font-size:20px; font-weight:500; line-height:1.85; max-width:850px; color:var(--muted); }
.about-grid { gap:70px; }
.about-grid .lead { font-size:43px; font-weight:700; line-height:1.5; letter-spacing:0; }
.about-grid p:not(.about-visual-motto) { font-size:20px; line-height:1.9; color:var(--muted); }
.about-tags span { font-size:15px; font-weight:600; padding:7px 12px; color:#4d405b; }
.about-topline { font-size:12px; font-weight:650; letter-spacing:1px; color:#51415f; flex-wrap:wrap; gap:10px; }
.anniversary>span { font-size:145px; font-weight:600; color:#4b3d5f; }
.anniversary b { font-size:25px; font-weight:650; color:#463750; }
.anniversary small { font-size:14px; font-weight:600; letter-spacing:1px; color:#5d4d69; }
.about-visual-motto { font-size:20px; font-weight:600; color:#51415f; }
.capability-orbit span { font-size:22px; font-weight:650; width:48px; height:44px; color:#554266; }
.about-footnote { font-size:11px; font-weight:600; color:#5d4d69; letter-spacing:.4px; flex-wrap:wrap; gap:8px; }
.card { display:flex; flex-direction:column; padding:36px 32px; }
.honor { padding:34px 25px; }
.card h3,html[lang="en"] .card h3 { font-size:27px; font-weight:700; letter-spacing:0; line-height:1.5; }
.card p,html[lang="en"] .card p { font-size:18px; font-weight:500; line-height:1.85; color:#4b4356; min-height:0; margin-bottom:24px; }
.card-category { font-size:13px; font-weight:650; letter-spacing:.8px; color:#62556e; margin-bottom:9px; }
.card-index { font-size:16px; font-weight:600; color:#675771; }
.card-link { margin-top:auto; font-size:17px; font-weight:650; color:#473653; min-height:52px; }
.card-link svg { width:20px; height:20px; }
.ico { width:52px; height:52px; }
.ico-svg { width:29px; height:29px; stroke-width:1.7; }
.prod { padding:40px 36px 0; }
.prod .badge,.product-dialog .badge { font-size:15px; font-weight:650; color:#e2d2ef; }
.prod h3 { font-size:36px; font-weight:700; letter-spacing:0; line-height:1.45; }
.prod p { font-size:20px; font-weight:500; line-height:1.85; color:#ded4e7; }
.product-button { font-size:18px; font-weight:650; min-height:52px; padding:10px 18px; align-self:flex-start; color:#f2eafa; margin:4px 0 16px; }
.product-button svg { width:21px; height:21px; }
.floating-tag { font-size:14px; font-weight:600; color:#f1e7f9; }
.platform-label { font-size:18px; font-weight:650; color:#e4d5ee; flex-wrap:wrap; gap:10px; }
.platform-label>span:last-child { font-size:13px; color:#c7b7d5; }
.platform-list { gap:16px; }
.platform-list .p { font-size:18px; font-weight:550; line-height:1.7; color:#e8dff1; padding:18px 20px; min-height:68px; }
.platform-list .p:after { color:#ddd0e9; }
.honor h4,html[lang="en"] .honor h4 { font-size:23px; font-weight:700; letter-spacing:0; line-height:1.5; }
.honor p { font-size:16px; font-weight:550; line-height:1.85; color:#4b4356; overflow-wrap:anywhere; }
.honor .ico-svg { width:36px; height:36px; stroke-width:1.6; }
.case-copy { padding:36px 32px; }
.case h4 { font-size:26px; font-weight:700; line-height:1.5; }
.case p { font-size:18px; line-height:1.85; font-weight:500; color:#4b4356; }
.case .num { font-size:17px; font-weight:650; color:#675171; }
.diagram-label { font-size:12px; font-weight:650; color:#51405f; letter-spacing:.8px; }
.network-node { font-size:16px; font-weight:650; color:#52415f; }
.contact-panel { gap:70px; }
.contact h2 { font-size:50px; font-weight:700; letter-spacing:0; line-height:1.5; }
.contact-intro>p { font-size:20px; font-weight:500; line-height:1.85; color:#ded2e7; }
.contact-label { font-size:17px; font-weight:600; color:#d4c4df; }
.phone-number { font-size:40px; font-weight:700; letter-spacing:0; color:#faf4ff; }
.copy-phone { font-size:16px; font-weight:600; min-height:48px; padding:8px 14px; margin-top:14px; color:#eadcf4; }
.copy-phone svg { width:19px; height:19px; stroke-width:1.5; }
.contact-address p { font-size:19px; line-height:1.85; color:#e0d4ea; }
.contact-site a { font-size:20px; font-weight:600; min-height:44px; color:#eee1f6; }
.foot-brand p { font-size:16px; font-weight:500; max-width:410px; color:#c5b9d0; }
.foot-col h5 { font-size:18px; font-weight:700; color:#f0e4f7; }
.foot-col a { font-size:16px; font-weight:550; min-height:44px; line-height:2.75; color:#cbbdd7; }
.foot-links { gap:50px; }
.foot-bottom { font-size:14px; font-weight:500; color:#bdb0c8; line-height:1.9; }
.back-top { width:48px; height:48px; font-size:24px; }
.product-dialog { width:min(640px,calc(100% - 32px)); padding:65px 42px 42px; }
.product-dialog h2 { font-size:36px; font-weight:700; line-height:1.4; }
.product-dialog p,.product-dialog ul { font-size:19px; font-weight:500; line-height:1.85; color:#e5d7ef; }
.dialog-close { width:48px; height:48px; font-size:32px; color:#f3eafa; }

@media(max-width:1150px) {
  .hero { min-height:max(820px,100svh); }
  .hero h1,html[lang="en"] .hero h1 { font-size:58px; }
  .hero-description,html[lang="en"] .hero-description { font-size:19px; }
  .hero-subtitle,html[lang="en"] .hero-subtitle { font-size:24px; }
  .hero-certification,html[lang="en"] .hero-certification { font-size:13px; }
  .hero-bottom-note { display:none; }
  .cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .honors { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .about-grid { gap:40px; }
  .about-grid .lead { font-size:36px; }
  .section-head h2,#products .section-head h2 { font-size:40px; }
  .trust-inner.glass .trust-item { padding:0 18px; }
  .stat-number { font-size:40px; }
  .stat-label { font-size:14px; }
  .trust-status .stat-number,html[lang="en"] .trust-status .stat-number { font-size:28px; }
  .prod { padding:34px 28px 0; }
  .prod h3 { font-size:32px; }
  .prod p { font-size:18px; }
  .contact h2 { font-size:40px; }
  .contact-panel { gap:45px; }
  .phone-number { font-size:34px; }
  .foot-top { gap:40px; }
  .foot-links { gap:30px; }
}

@media(max-width:900px) {
  .nav-actions { gap:18px; }
  .brand-name { font-size:22px; }
  .brand-name small { font-size:10px; letter-spacing:2.5px; }
  .hero h1,html[lang="en"] .hero h1 { font-size:48px; }
  .hero-copy { width:58%; }
  .hero-eyebrow { font-size:12px; letter-spacing:1px; gap:10px; }
  .hero-description,html[lang="en"] .hero-description { font-size:18px; }
  .hero-certification i { display:none; }
  .about-grid,.contact-panel { grid-template-columns:1fr; }
  .about-visual { max-width:560px; width:100%; margin:auto; }
  .trust-inner.glass { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 0; padding:38px 12px; }
  .trust-item:nth-child(3) { border:0; }
  .trust-item:nth-child(n+4) { border:0; }
  .platform-list { grid-template-columns:1fr; }
  .case-copy { padding:30px 26px; gap:16px; }
  .case h4 { font-size:23px; }
  .foot-top { flex-direction:column; }
  .foot-links { gap:40px; justify-content:space-between; }
}

@media(max-width:700px) {
  body { font-size:18px; }
  .wrap { width:calc(100% - 40px); }
  .nav,.scrolled .nav { min-height:94px; }
  .brand { gap:9px; }
  .brand img { width:34px; height:34px; }
  .brand-name { font-size:21px; letter-spacing:1px; }
  .brand-name small { font-size:9px; letter-spacing:2.5px; }
  .nav-actions { gap:10px; }
  .lang-toggle { gap:4px; }
  .lang-toggle button { font-size:15px; min-width:38px; padding:0 6px; }
  .burger { min-width:42px; }
  .hero { height:auto; min-height:max(900px,100svh); max-height:none; }
  html[lang="en"] .hero { height:auto; min-height:max(980px,100svh); }
  .hero-inner { height:auto; min-height:inherit; align-items:flex-start; padding:142px 0 240px; }
  .hero-copy { width:100%; padding:0; }
  .hero-copy::before {
    content:"";
    position:absolute;
    inset:-18px -10px -22px;
    z-index:-1;
    pointer-events:none;
    border-radius:26px;
    background:linear-gradient(105deg,rgba(8,22,52,.25),rgba(13,28,62,.11) 65%,rgba(13,28,62,0));
  }
  .hero h1,.hero-subtitle,.hero-description,.hero-eyebrow,.hero-certification {
    text-shadow:0 1px 3px rgba(6,17,40,.55);
  }
  .hero h1,html[lang="en"] .hero h1 { font-size:clamp(38px,9vw,54px); font-weight:700; line-height:1.3; letter-spacing:-.5px; margin-bottom:22px; }
  .hero-eyebrow,.hero-index { font-size:12px; font-weight:600; letter-spacing:1px; margin-bottom:0; }
  .hero-eyebrow { margin-bottom:23px; gap:10px; }
  .hero-subtitle,html[lang="en"] .hero-subtitle { font-size:21px; line-height:1.6; margin-bottom:16px; }
  .hero-description,html[lang="en"] .hero-description { font-size:18px; font-weight:550; line-height:1.85; max-width:100%; }
  .hero-btns { gap:12px; margin-top:25px; }
  .btn,.hero-btns .btn { font-size:17px; min-height:54px; padding:12px 18px; gap:16px; }
  .hero-certification,html[lang="en"] .hero-certification { font-size:13px; line-height:1.7; gap:5px 9px; margin-top:22px; }
  .hero-certification>span:last-child { flex-basis:100%; margin-left:29px; }
  .hero-bottom { bottom:24px; }
  .hero-bottom .scroll-hint { font-size:14px; }
  /* This section also carries .wrap; reset its width so the outer gutter
     is applied once, leaving both figures room inside the shared card. */
  .trust.wrap { width:100%; max-width:none; margin-inline:0; }
  .trust { padding:24px 20px 28px; }
  .trust-inner.glass { width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; padding:8px 6px; }
  .trust .stat-number { white-space:nowrap; }
  .trust-inner.glass .trust-item { padding:26px 10px; }
  .trust-item,.trust-item:first-child,.trust-item:nth-child(n+4) { grid-column:auto; padding:24px 16px; border:0; border-bottom:1px solid #ded0ef26; }
  .trust-item:nth-child(odd) { border-right:1px solid #ded0ef26; }
  .trust-item:last-child { grid-column:1/-1; padding:24px 16px; border:0; }
  .stat-number { font-size:43px; }
  .stat-number span { font-size:19px; }
  .stat-label { font-size:15px; margin-top:8px; }
  .trust-status .stat-number,html[lang="en"] .trust-status .stat-number { font-size:30px; }
  .section { padding:70px 0; }
  .section-kicker { font-size:13px; gap:10px; letter-spacing:.5px; margin-bottom:20px; }
  .section-kicker i { width:16px; }
  .section-head h2,#products .section-head h2 { font-size:33px; font-weight:700; line-height:1.5; }
  .section-head p { font-size:18px; margin-top:18px; }
  .about-grid .lead { font-size:32px; font-weight:700; line-height:1.55; letter-spacing:0; }
  .about-grid p:not(.about-visual-motto) { font-size:18px; line-height:1.85; }
  .about-tags span { font-size:14px; }
  .about-visual { padding:28px; }
  .anniversary>span { font-size:130px; }
  .anniversary { gap:20px; }
  .anniversary b { font-size:23px; }
  .anniversary small { font-size:13px; letter-spacing:0; }
  .about-visual-motto { font-size:18px; letter-spacing:0; }
  .about-topline { font-size:11px; }
  .about-footnote { font-size:10px; }
  .cards,.products,.cases { grid-template-columns:1fr; gap:24px; }
  .card { padding:32px 28px; }
  .card h3,html[lang="en"] .card h3 { font-size:25px; font-weight:700; }
  .card p,html[lang="en"] .card p { font-size:18px; font-weight:550; min-height:0; }
  .card-category { font-size:13px; letter-spacing:.6px; }
  .card-link { font-size:17px; }
  .prod { padding:34px 28px 0; }
  .prod h3 { font-size:32px; }
  .prod p { font-size:18px; }
  .prod .badge { font-size:14px; }
  .platform-label { font-size:17px; }
  .platform-label>span:last-child { font-size:12px; }
  .platform-list .p { font-size:17px; padding:18px; }
  .honors { grid-template-columns:1fr; gap:22px; }
  .honor { padding:32px 28px; }
  .honor h4,html[lang="en"] .honor h4 { font-size:24px; font-weight:700; }
  .honor p { font-size:17px; }
  .case-copy { padding:30px 24px; gap:16px; }
  .case h4 { font-size:24px; }
  .case p { font-size:18px; }
  .contact h2 { font-size:36px; }
  .contact-intro>p { font-size:18px; }
  .phone-number { font-size:36px; }
  .contact-label { font-size:16px; }
  .contact-address p { font-size:18px; }
  .contact-site a { font-size:19px; }
  .foot-brand p { font-size:16px; }
  .foot-links { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .foot-col { min-width:90px; }
  .foot-col h5 { font-size:18px; }
  .foot-col a { font-size:16px; }
  .foot-bottom { font-size:14px; }
  .product-dialog { padding:65px 27px 30px; }
  .product-dialog h2 { font-size:30px; }
  .product-dialog p,.product-dialog ul { font-size:18px; }
  .menu { padding:110px 24px 35px; }
  .menu>a { font-size:31px; padding:14px 0; }
  .menu>a:before { width:38px; font-size:14px; }
}

@media(max-width:480px) {
  .hero-btns { display:grid; grid-template-columns:1fr; width:100%; }
  .hero-btns .btn { width:100%; justify-content:space-between; padding:12px 20px; }
  .hero-btns .btn-ghost { background-color:#e7e3ff0b; }
  .hero h1,html[lang="en"] .hero h1 { font-size:38px; }
  .section-head h2,#products .section-head h2 { font-size:31px; }
  .brand-name { font-size:20px; }
  .brand-name small { font-size:8px; }
  .brand img { width:30px; height:30px; }
  .nav-actions { gap:8px; }
  .lang-toggle button { min-width:34px; padding:0 4px; }
}

@media(max-width:360px) {
  .wrap { width:calc(100% - 32px); }
  .brand { gap:6px; }
  .brand-name { font-size:18px; }
  .brand-name small { letter-spacing:1.5px; }
  .brand img { width:26px; height:26px; }
  .nav-actions { gap:5px; }
  .burger { min-width:36px; width:36px; }
  .hero { height:auto; min-height:max(950px,100svh); }
  html[lang="en"] .hero { height:auto; min-height:max(1050px,100svh); }
  .hero h1,html[lang="en"] .hero h1 { font-size:35px; }
  .hero-subtitle,html[lang="en"] .hero-subtitle { font-size:20px; }
  .hero-eyebrow { font-size:11px; letter-spacing:.5px; }
  .hero-bottom .scroll-hint { font-size:13px; }
  html[lang="en"] .hero-bottom { flex-wrap:wrap; gap:8px; }
  .section-head h2,#products .section-head h2,.about-grid .lead { font-size:28px; }
  .card,.honor { padding:29px 25px; }
  .prod { padding:32px 24px 0; }
  .trust { padding:22px 16px 28px; }
  .trust .stat-number { font-size:38px; gap:5px; }
  .trust .stat-number span { font-size:17px; }
  .trust-status .stat-number,html[lang="en"] .trust-status .stat-number { font-size:30px; }
  .phone-number { font-size:31px; }
  .contact h2 { font-size:32px; }
  .anniversary>span { font-size:110px; }
}

@media(max-width:700px) {
  .lang-toggle button { min-width:44px; min-height:48px; }
  .burger { width:44px; min-width:44px; height:48px; }
}

/* Architectural fallback if WebGL is unavailable. */
.fallback-city { position:absolute; right:8%; top:23%; width:40%; height:57%; display:flex; align-items:flex-end; gap:2%; transform:perspective(950px) rotateY(-20deg) skewY(8deg); border-bottom:12px solid #d4e7ff4a; filter:drop-shadow(12px 30px 24px #0006); }
.fallback-city i { display:block; width:16%; height:55%; border:2px solid #e6f4ff99; background:repeating-linear-gradient(0deg,transparent 0 27px,#e1f0ff44 28px 29px),linear-gradient(115deg,#73edff66,#a890ff16 30%,#ed7fe44d 90%); box-shadow:inset 6px 0 9px #f2f5ff44,inset -6px 0 9px #99a8ce55,9px 7px 0 -2px #bfcff240; border-radius:5px 5px 0 0; }
.fallback-city i:nth-child(2) { height:78%; background-color:#3f7cff18; }
.fallback-city i:nth-child(3) { height:100%; }
.fallback-city i:nth-child(4) { height:64%; background-color:#bd58f023; }
.fallback-city i:nth-child(5) { height:86%; background-color:#ff6fb91c; }
.fallback-city i:nth-child(6) { height:44%; }
@media(max-width:700px) { .fallback-city { width:72%; right:4%; top:65%; bottom:auto; height:28%; } }
