/* Desktop preview v3.12: clearer service areas, stable layouts and precise interaction. */
.scene-index { flex-direction:column;gap:3px;align-items:flex-start; }
.scene-index button {
  position:relative;width:auto;height:auto;min-height:22px;padding:2px 0;
  gap:12px;color:var(--noe-muted);font-size:12px;line-height:1.5;
  letter-spacing:.02em;transition:color .25s ease,padding .4s ease;
}
.scene-index button > span { position:static;width:auto;height:auto;margin:0;overflow:visible;clip-path:none;white-space:nowrap; }
.scene-index .chapter-number { font-size:10px;opacity:.7;letter-spacing:.05em; }
.scene-index button::before {
  left:0;top:50%;width:0;height:1px;transform:translateY(-50%);
  border-radius:0;background:currentColor;opacity:1;transition:width .4s ease;
}
.scene-index button[aria-current] { color:var(--noe-accent);padding-left:26px; }
.scene-index button[aria-current]::before { width:16px; }
.scene-index button:hover { color:var(--noe-text); }
body[data-scene-active=services]:not(.is-reading) .scene-index button { color:var(--noe-muted); }
body[data-scene-active=services]:not(.is-reading) .scene-index button[aria-current] { color:var(--noe-accent); }
.scene-index button:focus-visible { outline:2px solid var(--noe-accent);outline-offset:2px;border-radius:4px; }
.scene-position { gap:0; }
.scene-direction { gap:8px; }
.scene-direction button { width:42px;height:42px; }
.brand-intro-hint { display:flex;font-size:13px;letter-spacing:.04em;bottom:42px; }
.brand-intro-tagline { font-size:15px;line-height:1.6;letter-spacing:.08em; }
.illustration-note { margin:10px 0 0;text-align:right;color:var(--noe-muted);font-size:13px;line-height:1.5; }

/* Capabilities form a slowly revolving surface within the original Life Core. */
.orb-capability-field {
  position:absolute;left:69%;top:43%;z-index:2;pointer-events:none;
  width:50vmin;height:50vmin;max-width:600px;max-height:600px;
  transform:translate(-50%,-50%) translate3d(var(--orb-text-x,0px),var(--orb-text-y,0px),0);
  opacity:0;transition:opacity .7s ease;
}
.service-hero.is-current .orb-capability-field { opacity:1; }
.orb-word-stage { position:absolute;inset:0;transform:translate3d(var(--orb-drift-x,0px),var(--orb-drift-y,0px),0); }
.orb-capability-word {
  position:absolute;left:50%;top:50%;white-space:nowrap;color:#fff4eb;
  font-size:clamp(16px,2.05vmin,23px);font-weight:450;line-height:1.15;letter-spacing:.025em;
  opacity:0;transform:translate(-50%,-50%);transform-origin:center;
  text-shadow:0 1px 12px #351a1333;-webkit-font-smoothing:antialiased;
  transition:opacity .85s ease;
}
.orb-capability-word[data-core] { font-size:clamp(28px,4vmin,42px);font-weight:600;letter-spacing:.005em;color:#fff9f1; }
html[lang=en] .orb-capability-word { font-size:clamp(13px,1.85vmin,20px);letter-spacing:-.015em; }
html[lang=en] .orb-capability-word[data-core] {
  width:clamp(136px,19vmin,190px);white-space:normal;text-align:center;
  font-size:clamp(21px,3.05vmin,32px);line-height:1.12;letter-spacing:-.035em;
}

@media (min-width:981px) {
  .service-hero .scene-inner { padding:110px 0 112px;justify-content:center; }
  .service-hero .hero-grid { height:auto;top:0; }
  .service-hero .hero-copy { padding:0; }
  .hero-copy h1 { font-size:clamp(86px,8.4vw,120px);line-height:1.12;margin:0 0 24px; }
  html[lang=en] .hero-copy h1 { font-size:clamp(76px,7.5vw,106px); }
  .hero-line { font-size:23px;line-height:1.55;margin-bottom:18px; }
  .hero-description { font-size:16px;line-height:1.8;max-width:520px; }
  .hero-actions { margin-top:28px;gap:28px; }
  .hero-actions .button { min-height:48px;padding:12px 22px;font-size:14px; }
  .hero-actions .text-button { font-size:14px; }

  #services .scene-inner { padding:104px 0 166px;justify-content:center; }
  #services .heading-row,#approach .heading-row { margin-top:0;align-items:center;gap:36px; }
  #services .heading-row h2,#approach .heading-row h2 { font-size:48px;line-height:1.16; }
  #services .heading-row > p,#approach .heading-row > p { font-size:16px;line-height:1.7; }
  #services .ref-services-layout {
    height:min(460px,calc(100svh - 360px));margin-top:28px;
    background:var(--noe-surface);border-color:var(--noe-line);padding-top:20px;padding-bottom:20px;
  }
  #services .ref-services-layout { grid-template-rows:minmax(0,1fr); }
  #services .work-selectors { min-height:0;gap:5px;justify-content:space-between; }
  #services .ref-document-stage { min-height:0; }
  #services .work-row,#services .work-row.is-active,#services .work-row:hover { min-height:0;flex:1;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:8px 24px; }
  #services .work-row::after { content:'→';font-size:20px;line-height:1;color:var(--noe-accent);opacity:0;transform:translateX(-5px);transition:opacity .2s,transform .2s; }
  #services .work-row.is-active::after,#services .work-row:hover::after { opacity:1;transform:translateX(0); }
  #services .work-row strong { font-size:23px;line-height:1.35; }
  #services .work-row small { font-size:15px;line-height:1.5; }
  #services .work-row.is-active,#services .work-row:hover { background:#efb5830c;border-color:#efb58324; }
  #services .ref-document-stage::after { display:none; }
  #services .ref-document { min-height:0;height:100%;border-radius:8px;background:var(--noe-bg);border-color:var(--noe-line); }
  #services .ref-document-body { height:100%;padding:clamp(40px,7svh,68px) 40px 28px;display:flex;flex-direction:column;justify-content:flex-start; }
  #services .ref-document-body > * { flex-shrink:0; }
  #services .ref-document-body h3 { font-size:32px;line-height:1.3;margin:0 0 20px; }
  #services .ref-document-paragraph { font-size:16px;line-height:1.6;min-height:3.2em; }
  #services .ref-document-paragraph mark { background:#efb58314;color:var(--noe-accent);white-space:normal;-webkit-box-decoration-break:clone;box-decoration-break:clone; }
  #services .ref-collaborator-caret { display:none; }
  #services .ref-document-tasks { margin-top:24px;gap:12px; }
  #services .ref-document-tasks li { min-height:30px;font-size:18px;font-weight:450;line-height:1.5;padding:5px 12px;white-space:normal; }
  #services .ref-document-tasks li i,#services .ref-document-tasks li:last-child i { width:14px;height:1px;border:0;border-radius:0;background:var(--noe-accent); }
  #services .ref-document-tasks li:last-child i::after { display:none; }
  #services .ref-document-closing { font-size:14px;line-height:1.6;margin-top:18px;color:var(--noe-muted); }

  #approach .scene-inner { padding:108px 0 166px;justify-content:center; }
  #approach .ref-automation { margin-top:28px; }
  #approach .ref-auto-wires path { stroke:#43505f; }
  #approach .ref-auto-return path { stroke:#3b4653; }
  #approach .ref-auto-input rect,#approach .ref-auto-node-body { fill:var(--noe-surface);stroke:#35414e; }
  #approach .ref-automation figcaption { display:block;margin-top:14px;font-size:13px;line-height:1.5;text-align:right;color:var(--noe-muted); }
  #approach .ref-approach-steps { margin-top:24px;gap:32px; }
  #approach .ref-approach-steps h3 { font-size:22px;line-height:1.4; }
  #approach .ref-approach-steps p { font-size:15px;line-height:1.6; }

  #cases .scene-inner { padding:108px 0 104px; }
  #cases .cases-heading h2,html[lang=en] #cases .cases-heading h2 { margin-top:0;font-size:clamp(36px,3.3vw,48px);line-height:1.2; }
  #cases .cases-heading > p { font-size:14px;line-height:1.7; }
  #cases .industry-navigation-head { margin:20px 0 12px; }
  #cases .industry-navigation-head > strong,#cases .industry-navigation-head .industry-enquiry { font-size:14px; }
  #cases .industry-kicker { line-height:1.4; }
  #cases .industry-badge { border:0;padding:0;font-size:13px;letter-spacing:0; }
  #cases .industry-copy h3,html[lang=en] #cases .industry-copy h3 { font-size:clamp(30px,2.7vw,38px);line-height:1.25;margin:12px 0; }
  #cases .industry-copy > p:not(.industry-scope) { font-size:14px;line-height:1.75; }
  #cases .industry-copy .button { min-height:42px;font-size:13px;margin-top:18px; }
  #cases .industry-copy .industry-scope { font-size:12px;line-height:1.6;margin-top:12px; }
  #cases .sector-workspace { inset:8px 18px 0; }
  #cases .sector-paper { margin:16px;padding:18px;justify-content:center; }
  #cases .paper-overline { font-size:16px;line-height:1.45; }
  #cases .sector-paper .industry-tasks { font-size:14px;line-height:1.65;gap:12px; }
  #cases .industry-art > .industry-tasks { bottom:0;font-size:12px;line-height:1.6; }
  #cases .homepage-model { height:calc(100% - 48px)!important; }
  #cases .homepage-model .spatial-note { bottom:10px;font-size:12px;color:var(--noe-muted); }

  .faq-section { padding:110px 0 112px; }
  .faq-grid { gap:80px; }
  .faq-grid h2 { font-size:clamp(46px,4.3vw,62px);line-height:1.2;margin:0 0 24px; }
  .faq-intro { font-size:16px;line-height:1.8; }
  .faq-list summary { font-size:18px;line-height:1.6;padding:23px 0; }
  .faq-list details p { font-size:16px;line-height:1.85;padding-bottom:26px; }
  .contact-section { padding:104px 0 108px; }
  .contact-section h2 { margin:0 0 32px;font-size:clamp(58px,6vw,86px);line-height:1.2; }
  .contact-bottom p { font-size:18px;line-height:1.8; }
  .contact-bottom .button { min-height:54px;font-size:15px; }
  .service-footer .shell { justify-content:space-between; }
  .service-footer small { margin:0;font-size:12px;line-height:1.6;color:var(--noe-muted); }
  .footer-top { font-size:14px; }
  .preview-dialog { max-height:calc(100svh - 48px);overflow-y:auto;padding:40px 44px 30px;scrollbar-width:thin; }
  .preview-dialog .dialog-close { position:sticky;top:0;right:auto;float:right;z-index:4;width:32px;height:32px;margin:-24px -22px 0 0;background:var(--noe-surface);border-radius:50%; }
  .preview-dialog h2 { margin:0 0 16px;font-size:34px;line-height:1.25; }
  .dialog-description { font-size:16px;line-height:1.6; }
  .preview-dialog label { font-size:14px;gap:8px; }
  .preview-dialog input,.preview-dialog select,.preview-dialog textarea { font-size:15px; }
  .form-preview-note { font-size:13px;line-height:1.6; }
}

@media (min-width:981px) and (max-height:800px) {
  .hero-copy h1 { font-size:84px;line-height:1.12; }
  html[lang=en] .hero-copy h1 { font-size:74px; }
  .hero-line { font-size:21px; }
  .hero-description { font-size:14px; }
  #services .scene-inner { padding:100px 0 160px; }
  #services .heading-row h2,#approach .heading-row h2 { font-size:40px; }
  html[lang=en] #services .heading-row h2,html[lang=en] #approach .heading-row h2 { font-size:38px; }
  #services .heading-row > p,#approach .heading-row > p { font-size:14px;line-height:1.6; }
  #services .ref-services-layout { height:min(460px,calc(100svh - 360px));margin-top:24px;padding-top:11px;padding-bottom:11px; }
  #services .work-row,#services .work-row.is-active,#services .work-row:hover { min-height:0;gap:8px;padding:4px 20px; }
  #services .work-row strong { font-size:21px;line-height:1.3; }
  html[lang=en] #services .work-row strong { font-size:20px; }
  #services .work-row small { font-size:14px;line-height:1.45; }
  #services .ref-document-body { padding:clamp(24px,5svh,40px) 32px 22px; }
  #services .ref-document-body h3 { font-size:26px;line-height:1.3;margin-bottom:16px; }
  #services .ref-document-paragraph { font-size:14px;line-height:1.6; }
  #services .ref-document-tasks { margin-top:20px;gap:8px; }
  #services .ref-document-tasks li { min-height:29px;font-size:17px;line-height:1.45;padding:4px 10px; }
  #services .ref-document-closing { font-size:13px;line-height:1.6;margin-top:16px; }
  #approach .scene-inner { padding:100px 0 166px; }
  #approach .ref-automation { margin-top:20px;padding-top:0;padding-bottom:0; }
  #approach .ref-automation-stage { max-width:none; }
  #approach .ref-approach-steps h3 { font-size:20px; }
  #approach .ref-approach-steps p { font-size:14px; }
  #cases .scene-inner { padding:100px 0 96px; }
  #cases .cases-heading > p { font-size:13px; }
  #cases .industry-navigation-head { margin:16px 0 10px; }
  #cases .industry-copy h3,html[lang=en] #cases .industry-copy h3 { font-size:30px; }
  #cases .industry-copy > p:not(.industry-scope) { font-size:13px;line-height:1.65; }
  #cases .industry-copy .button { margin-top:14px; }
  #cases .industry-copy .industry-scope { margin-top:4px; }
  html[lang=en] #cases .industry-copy > p:not(.industry-scope) { max-width:none; }
  html[lang=en] #cases .industry-copy h3 { margin:10px 0 8px; }
  html[lang=en] #cases .industry-copy .button { margin-top:10px; }
  #cases .sector-paper { margin:12px;padding:14px; }
  #cases .paper-overline { font-size:15px; }
  #cases .sector-paper .industry-tasks { font-size:13px;gap:10px; }
}

@media (min-width:981px) and (max-width:1180px) and (max-height:760px) {
  html[lang=en] #services .work-row:last-child { flex-grow:2; }
  #services .ref-document-body { padding:18px 24px; }
  #services .ref-document-body h3 { font-size:24px;margin-bottom:12px; }
  #services .ref-document-paragraph { line-height:1.5; }
  #services .ref-document-tasks { margin-top:16px;gap:7px; }
  #services .ref-document-tasks li { font-size:15px;line-height:1.5;padding:3px 10px; }
}

/* Chinese and English keep their own natural tracking. */
@media (min-width:981px) {
  html[lang=zh-CN] :is(.hero-copy h1,#services h2,#services h3,#approach h2,#approach h3,#cases h2,#cases h3,.faq-grid h2,.contact-section h2) { letter-spacing:-.012em; }
  :is(.hero-description,#services .ref-document-paragraph,#services .ref-document-tasks,#approach .ref-approach-steps p,#cases .industry-copy > p,.faq-list p,.contact-bottom p) { letter-spacing:0; }
  .service-header nav a { transition:color .2s ease; }
  :is(.service-header a,.language-button,.scene-direction button,.industry-tabs button,.industry-enquiry,.button,.text-button,.faq-list summary):focus-visible { outline:2px solid var(--noe-accent);outline-offset:4px; }
  .faq-list summary { transition:color .2s ease; }
  .faq-list summary:hover { color:var(--noe-accent); }
  .faq-list details[open] p { animation:noeFaqReveal .3s cubic-bezier(.2,.75,.25,1); }
  .faq-list details p { max-width:68ch; }
}
@media (min-width:1181px) {
  .service-header nav a { font-size:14px;letter-spacing:.015em; }
}
@media (min-width:981px) and (max-height:720px) {
  .service-hero .scene-inner { padding:100px 0 174px; }
  .hero-copy h1 { font-size:76px;margin-bottom:18px; }
  html[lang=en] .hero-copy h1 { font-size:68px; }
  .hero-line { font-size:20px;margin-bottom:14px; }
  .hero-description { line-height:1.7; }
  .hero-actions { margin-top:22px; }
  #cases .industry-panel { position:relative; }
  #cases .industry-copy .button { position:absolute;left:200px;bottom:0;margin:0; }
  #cases .industry-copy .industry-scope { position:absolute;left:200px;bottom:-30px;max-width:calc(100% - 200px);margin:0; }
  #cases .industry-copy h3,html[lang=en] #cases .industry-copy h3 { font-size:28px;margin:8px 0; }
}
@keyframes noeFaqReveal { from { opacity:.3;transform:translateY(5px); } to { opacity:1;transform:translateY(0); } }
/* Compact desktop preview panels retain the same six-service component. */
@media (min-width:701px) and (max-width:980px) {
  #services .scene-inner { padding:96px 0 156px;justify-content:center; }
  #services .heading-row { margin-top:0;gap:24px;align-items:center; }
  #services .heading-row h2 { font-size:34px;line-height:1.2;letter-spacing:-.012em; }
  html[lang=en] #services .heading-row h2 { font-size:32px;letter-spacing:-.035em; }
  #services .heading-row > p { max-width:250px;font-size:14px;line-height:1.6; }
  #services .ref-services-layout { height:min(420px,calc(100svh - 320px));margin-top:24px;padding:14px 0 14px 20px;grid-template-rows:minmax(0,1fr);background:var(--noe-surface);border-color:var(--noe-line); }
  #services .work-selectors { min-height:0;gap:5px;justify-content:space-between; }
  #services .work-row,#services .work-row.is-active,#services .work-row:hover { min-height:0;flex:1;flex-direction:row;align-items:center;justify-content:space-between;padding:4px 16px;gap:8px; }
  html[lang=en] #services .work-row:last-child { flex-grow:1.7; }
  #services .work-row strong { font-size:20px;line-height:1.3; }
  html[lang=en] #services .work-row strong { font-size:18px; }
  #services .work-row::after { content:'→';font-size:18px;line-height:1;color:var(--noe-accent);opacity:0;transition:opacity .2s; }
  #services .work-row.is-active::after,#services .work-row:hover::after { opacity:1; }
  #services .ref-document-stage { min-height:0; }
  #services .ref-document-stage::after { display:none; }
  #services .ref-document { min-height:0;height:100%;border-radius:8px;background:var(--noe-bg);border-color:var(--noe-line); }
  #services .ref-document-body { height:100%;padding:28px;display:flex;flex-direction:column;justify-content:flex-start; }
  #services .ref-document-body > * { flex-shrink:0; }
  #services .ref-document-body h3 { font-size:25px;line-height:1.3;margin:0 0 16px;letter-spacing:-.012em; }
  #services .ref-document-paragraph { min-height:3.2em;font-size:14px;line-height:1.6;letter-spacing:0; }
  #services .ref-document-paragraph mark { white-space:normal;background:#efb58314;color:var(--noe-accent);-webkit-box-decoration-break:clone;box-decoration-break:clone; }
  #services .ref-collaborator-caret { display:none; }
  #services .ref-document-tasks { margin-top:20px;gap:10px; }
  #services .ref-document-tasks li { min-height:29px;font-size:16px;font-weight:450;line-height:1.5;padding:4px 10px;white-space:normal; }
  #services .ref-document-tasks li i,#services .ref-document-tasks li:last-child i { width:14px;height:1px;border:0;border-radius:0;background:var(--noe-accent); }
  #services .ref-document-tasks li:last-child i::after { display:none; }
}
@media (min-width:701px) and (max-width:980px) and (max-height:720px) {
  .scene-index { gap:2px; }
  .scene-index button { min-height:20px;padding-top:1px;padding-bottom:1px;line-height:1.4; }
  #services .ref-services-layout { margin-top:20px; }
  #services .ref-document-body { padding:18px 24px; }
  #services .ref-document-body h3 { font-size:23px;margin-bottom:12px; }
  #services .ref-document-paragraph { line-height:1.5; }
  #services .ref-document-tasks { margin-top:16px;gap:7px; }
  #services .ref-document-tasks li { font-size:15px;line-height:1.5;padding:3px 10px; }
}
@media (prefers-reduced-motion:reduce) {
  .faq-list details[open] p { animation:none; }
  .scene-index button,.scene-index button::before,.scene-direction button,.service-header nav a,.faq-list summary { transition:none; }
}

@media (min-width:981px) and (max-width:1180px) and (max-height:800px) {
  html[lang=en] #approach .heading-row h2 { font-size:34px; }
}

@media (prefers-reduced-motion:reduce) {
  .scene-index button::before { transition:none; }
  .brand-intro-hint::after { animation:none; }
  .orb-capability-field,.orb-capability-word { transition:none; }
}
@media (min-width:981px) and (min-height:781px) and (max-height:800px) {
  #cases .scene-inner { padding-top:112px; }
}
@media (min-width:981px) and (max-width:1180px) and (max-height:800px) {
  html[lang=en] #cases .industry-panel { grid-template-columns:1.28fr 1fr; }
  html[lang=en] #cases .industry-copy h3 { font-size:28px;line-height:1.24; }
}

.case-portal-button .case-button-life { display:none; }
#cases .case-portal-button.is-commercial-case {
  position:relative;isolation:isolate;overflow:hidden;display:inline-flex;
  min-width:300px;min-height:62px;margin-top:18px;padding:13px 18px 13px 24px;gap:30px;
  border:1px solid #f1b485a6;border-radius:6px;background:#7e2942;color:#fff9f0;
  font-size:15px;font-weight:600;letter-spacing:.015em;
  box-shadow:0 4px 24px #d37b5820,0 0 0 1px #edab7010;
  transition:box-shadow .35s ease,border-color .35s ease,transform .35s ease;
}
#cases .case-portal-button.is-commercial-case .case-button-life {
  display:block;position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:radial-gradient(ellipse at 35% 50%,#a32762,#ee7954 75%,#edba75);
}
.case-button-life canvas { display:block;width:100%;height:100%; }
#cases .case-portal-button.is-commercial-case::before {
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,#1a101f66,#1a101f55 70%,#1a101f30);
}
#cases .case-portal-button.is-commercial-case [data-industry-action-label] { text-shadow:0 1px 10px #2c122b80; }
#cases .case-portal-button.is-commercial-case > span:last-child {
  display:grid;place-items:center;width:34px;height:34px;margin-left:auto;
  border:1px solid #fff0de73;border-radius:50%;font-size:18px;
  transition:transform .35s ease,background .35s ease;
}
#cases .case-portal-button.is-commercial-case:hover {
  transform:translateY(-2px);border-color:#ffd5b6;
  box-shadow:0 6px 30px #dc836839,0 0 0 1px #ffd4b233;
}
#cases .case-portal-button.is-commercial-case:hover > span:last-child { transform:rotate(8deg);background:#fff2e122; }
#cases .case-portal-button.is-commercial-case:focus-visible { outline:2px solid #ffdab8;outline-offset:5px; }
@media (min-width:981px) and (max-height:800px) {
  #cases .industry-navigation-head { margin:8px 0 6px; }
  #cases .industry-tabs { margin-bottom:6px; }
  #cases .industry-tabs button,html[lang=en] #cases .industry-tabs button { padding-top:10px;padding-bottom:10px; }
  #cases .case-portal-button.is-commercial-case { min-width:300px;min-height:60px;margin-top:10px;font-size:15px;padding:11px 16px 11px 20px; }
}
@media (prefers-reduced-motion:reduce) {
  #cases .case-portal-button.is-commercial-case { transition:none; }
  #cases .case-portal-button.is-commercial-case:hover { transform:none; }
  #cases .case-portal-button.is-commercial-case > span:last-child { transition:none; }
}

/* Published resource navigation preserves the existing guide and insight corpus. */
.service-header .language-button{text-decoration:none}
.footer-resources{display:flex;gap:24px}
.footer-resources a,.service-footer .icp-link{font-size:13px;color:var(--muted,#aeb6bd);text-decoration:none}
.footer-resources a:hover{color:#f4eee5}
.service-footer>.shell{flex-wrap:wrap;row-gap:20px}

.preview-dialog [hidden]{display:none!important}
.preview-dialog .appointment-consent{display:flex;flex-direction:row;align-items:flex-start;gap:12px;margin:22px 0;line-height:1.65}
.preview-dialog .appointment-consent input{width:18px;min-width:18px;height:18px;min-height:18px;padding:0;margin:3px 0 0;accent-color:var(--noe-accent,#efb583)}
.form-status[data-state="error"]{color:#e6a593}
.preview-dialog button:disabled{cursor:wait;opacity:.65}
#appointment-success h3{font-size:30px;line-height:1.25;margin:40px 0 18px}
#appointment-success p{color:var(--noe-muted);line-height:1.7;margin-bottom:30px}
