:root{--red:#be1622;--red-bright:#e42313;--ink:#0c0f14;--text:#3a414d;--muted:#626b78;--mist:#f4f5f7;--line:#e6e8ec;--header:88px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:160px}
body{font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.8;color:var(--text);background:#fff;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Archivo,system-ui,sans-serif;line-height:1.12;color:var(--ink);font-weight:800;letter-spacing:-.025em;text-wrap:balance}
h2{font-size:clamp(2rem,3.5vw,2.8rem);margin:18px 0 24px}h3{font-size:clamp(1.4rem,2.3vw,1.85rem);margin:16px 0 20px}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:3px solid #e42313;outline-offset:5px}.container{max-width:1200px;margin:auto;padding-inline:clamp(20px,4vw,40px)}
.skip-link{position:fixed;top:10px;left:20px;z-index:100;background:#fff;padding:10px 20px;transform:translateY(-180%)}.skip-link:focus{transform:none}
.site-header{position:sticky;top:0;z-index:20;background:var(--ink);border-bottom:1px solid #ffffff1a}.header-inner{height:var(--header);display:flex;justify-content:space-between;align-items:center;gap:24px}.brand img{width:180px;height:56px;object-fit:contain}.main-nav{display:flex;align-items:center;gap:32px;color:#fff;font-family:Archivo,sans-serif;font-weight:600;font-size:.9rem}.main-nav>a:not(.button):hover{color:#ff8c85}
.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:15px 26px;border-radius:40px;background:linear-gradient(135deg,var(--red-bright),#8f0f1c);color:#fff;font-family:Archivo,sans-serif;font-weight:700;line-height:1.5;transition:background .2s,transform .2s;white-space:nowrap}.button:hover{background:var(--red);transform:translateY(-2px)}.button-small{padding:12px 22px}
.hero{background:var(--ink);color:#c4cad5;padding:28px 0 64px}.breadcrumb{display:flex;gap:12px;align-items:center;font-size:.8rem;color:#b7becb;margin-bottom:38px}.breadcrumb a:hover{text-decoration:underline}.breadcrumb [aria-current]{color:#fff}.hero-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:48px;align-items:center}.eyebrow{display:flex;align-items:center;gap:12px;font-family:Archivo,sans-serif;text-transform:uppercase;font-weight:700;font-size:.75rem;letter-spacing:.16em;color:var(--red)}.eyebrow:before{content:"";width:28px;height:2px;background:currentColor;flex-shrink:0}.hero .eyebrow{color:#ff8c85}h1{color:#fff;font-size:clamp(2.5rem,4.2vw,3.8rem);margin:20px 0 12px}.accent{display:block;color:#ff625a;font-size:1.3em;margin-top:10px;letter-spacing:-.05em}.english-name{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:#afb7c5}.hero-lead{font-size:1.08rem;line-height:1.8;margin:24px 0 30px;max-width:480px}.hero-photo img{aspect-ratio:4/4.1;object-fit:cover;object-position:36% center}.hero-photo figcaption{color:#afb7c5}
figure{min-width:0}figcaption{font-size:.78rem;line-height:1.6;color:var(--muted);padding-top:12px}.photo-button{display:block;position:relative;width:100%;border:0;border-radius:16px;overflow:hidden;background:#1c222d;text-align:left}.photo-button img{width:100%;transition:transform .4s}.photo-button:hover img{transform:scale(1.025)}.zoom-label{position:absolute;bottom:16px;right:16px;background:#0c0f14d9;color:#fff;border:1px solid #ffffff40;padding:6px 12px;border-radius:30px;font-size:.72rem}
.section-nav{position:sticky;top:var(--header);z-index:10;background:#fff;border-bottom:1px solid var(--line)}.section-nav .container{display:flex;gap:36px;overflow-x:auto;scrollbar-width:thin}.section-nav a{display:block;flex-shrink:0;padding:20px 0;font-size:.85rem;font-weight:600;line-height:1.5;border-bottom:2px solid transparent}.section-nav a:hover,.section-nav a[aria-current]{color:var(--red);border-color:var(--red)}
.section{padding:92px 0}.overview-grid{display:grid;grid-template-columns:.85fr 1.3fr;gap:80px}.prose p+p,.step-copy p+p{margin-top:18px}strong{font-weight:600;color:var(--ink)}.method-note{border-left:3px solid var(--red);padding:20px 24px;background:var(--mist);margin-top:30px;font-weight:500;color:var(--ink)}.section-heading{max-width:680px;margin-bottom:56px}.section-heading>p{color:var(--muted)}
.methodology{background:var(--mist)}.step{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;margin-top:64px}.step+.step{padding-top:64px;border-top:1px solid #dce0e6}.step.reverse .step-copy{order:2}.step.reverse figure{order:1}.step-number{font-family:Archivo,sans-serif;font-size:1rem;font-weight:700;color:var(--red);display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #be162233;border-radius:50%}.step img{aspect-ratio:4/3;object-fit:cover}.analysis-step{display:flex;gap:24px;margin-top:64px;padding:36px;background:#fff;border:1px solid var(--line);border-radius:16px}.analysis-step .step-number{flex-shrink:0}.analysis-step h3{margin-top:6px}.analysis-step p{max-width:800px}.text-link{display:inline-flex;gap:14px;font-weight:600;font-size:.9rem;color:var(--red)}.text-link:hover{text-decoration:underline}.analysis-step .text-link{margin-top:20px}
.benefits{background:var(--ink);color:#b7becb}.benefits h2,.benefits h3{color:#fff}.benefits .eyebrow{color:#ff8c85}.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.benefit-grid article{border-top:1px solid #ffffff33;padding-top:26px}.benefit-index{font-family:Archivo,sans-serif;font-size:.7rem;font-weight:600;letter-spacing:.13em;color:#ff8c85}.benefit-grid h3{font-size:1.5rem;line-height:1.2;margin:22px 0}.benefit-grid p{font-size:.93rem}
.references p{color:var(--muted)}.standards{list-style:none}.standards li{padding:20px 0;border-bottom:1px solid var(--line)}.standards li:first-child{padding-top:0}.standards strong{display:block;font-family:Archivo,sans-serif;font-size:1.1rem;margin-bottom:6px}.standards span{font-size:.9rem;color:var(--muted)}.contact-section{background:var(--mist);padding:64px 0}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:48px}.contact-inner h2{font-size:clamp(1.8rem,3vw,2.5rem);max-width:630px}.contact-inner p{color:var(--muted)}
footer{padding:48px 0 24px}.footer-inner{display:flex;align-items:center;gap:40px;justify-content:space-between}.footer-inner img{width:160px;height:50px;object-fit:contain}.footer-inner p{font-size:.82rem;max-width:320px;color:var(--muted)}.footer-base{font-size:.72rem;color:var(--muted);margin-top:32px}
.photo-dialog{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0;background:var(--ink);color:#fff;overflow:hidden;overscroll-behavior:contain}.photo-dialog::backdrop{background:#050709f2}.photo-dialog figure{position:absolute;top:50%;left:50%;width:max-content;max-width:100vw;max-height:100dvh;transform:translate(-50%,-50%)}.photo-dialog img{display:block;width:auto;height:auto;max-width:100vw;max-height:100dvh;object-fit:contain}.photo-dialog figcaption{position:absolute;right:12px;bottom:max(12px,env(safe-area-inset-bottom));left:12px;padding:10px 16px;border-radius:4px;background:#050709b8;color:#fff;text-align:center;text-shadow:0 1px 4px #000}.dialog-close{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));z-index:1;margin:0;border:1px solid #ffffff80;border-radius:30px;padding:8px 18px;background:#050709b8;color:#fff}.dialog-close:hover{background:#ffffff22}body:has(.photo-dialog[open]){overflow:hidden}
@media(min-width:1400px){.hero{padding-bottom:80px}.hero-photo img{aspect-ratio:1/1}}
@media(max-width:900px){.hero-grid{gap:28px}.hero-photo img{aspect-ratio:3/4}.overview-grid{gap:40px;grid-template-columns:1fr 1.3fr}.step{gap:36px}.benefit-grid{gap:24px}.contact-inner{gap:28px}.footer-inner{gap:24px}}
@media(max-width:700px){:root{--header:76px}html{scroll-padding-top:145px}.brand img{width:136px;height:44px}.main-nav{gap:16px;font-size:.82rem}.main-nav>a:first-child{display:none}.button-small{padding:10px 16px}.hero{padding:20px 0 36px}.breadcrumb{margin-bottom:28px}.hero-grid,.overview-grid,.step{grid-template-columns:1fr}.hero-grid{gap:32px}h1{font-size:clamp(2.3rem,8vw,3.4rem);max-width:520px}.accent{display:inline-block;margin:12px 0 0}.hero-lead{max-width:none}.hero-photo img{aspect-ratio:4/3;object-position:center}.section-nav .container{gap:26px}.section-nav a{padding:17px 0;font-size:.8rem}.section{padding:60px 0}.overview-grid{gap:16px}.section-heading{margin-bottom:32px}.step{gap:24px;margin-top:36px}.step+.step{padding-top:36px}.step.reverse .step-copy,.step.reverse figure{order:initial}.analysis-step{margin-top:36px;padding:24px;gap:16px}.analysis-step .step-number{width:38px;height:38px}.benefit-grid{grid-template-columns:1fr;gap:32px}.benefit-grid h3{max-width:420px}.contact-inner{align-items:flex-start;flex-direction:column;gap:24px}.footer-inner{align-items:flex-start;flex-wrap:wrap}.footer-inner p{max-width:100%}.photo-dialog{padding:12px}.hero-copy>.button{width:100%}}
@media(max-width:380px){.main-nav>a:not(.button){display:none}.analysis-step{flex-direction:column}.header-inner{gap:12px}}
.word-prose{max-width:880px}.word-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:36px}.word-photo-grid img{aspect-ratio:4/3;object-fit:cover}.analysis-step>p{max-width:100%}
@media(max-width:700px){.word-photo-grid{grid-template-columns:1fr;gap:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Editorial layout: hierarchy and emphasis without rewriting the Word copy. */
.editorial-hero {
  position: relative;
  display: flex;
  min-height: calc(100svh - var(--header));
  padding: 0;
  isolation: isolate;
  overflow: hidden;
  background: var(--ink);
}
.editorial-hero > .container { display: flex; flex: 1; flex-direction: column; width: 100%; padding-top: 32px; }
.editorial-hero .breadcrumb { margin-bottom: 0; }
.editorial-hero .hero-grid { display: block; margin-top: auto; margin-bottom: clamp(88px, 11vh, 124px); }
.editorial-hero .hero-copy { max-width: min(760px, 78%); }
.editorial-hero h1 {
  font-size: clamp(5.5rem, 11vw, 9.5rem);
  line-height: .88;
  letter-spacing: -.065em;
  margin: 0 0 32px;
  color: transparent;
  background: linear-gradient(120deg, #FF6B5E, var(--red-bright));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.editorial-hero .hero-lead { max-width: none; margin: 0; font-size: 1rem; }
.editorial-hero .hero-lead > strong {
  display: block;
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  font-weight: 500;
  line-height: 1.55;
  color: #fff;
}
.editorial-hero .hero-photo { position: absolute; inset: 0; z-index: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.editorial-hero .hero-photo .photo-button { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; border-radius: 0; }
.editorial-hero .hero-photo img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center 54%; }
.editorial-hero .hero-photo .photo-button img.hero-slide { position: absolute; inset: 0; z-index: 0; opacity: 0; pointer-events: none; transform: none; transition: opacity 1.6s ease; }
.editorial-hero .hero-photo .photo-button img.hero-slide.is-active { opacity: 1; }
.editorial-hero .hero-photo .photo-button:hover img.hero-slide { transform: none; filter: none; }
.editorial-hero .hero-photo .photo-button::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, #090b0fe0 0%, #090b0f99 46%, #090b0f12 100%), linear-gradient(0deg, #090b0fb8 0%, transparent 58%); content: ''; pointer-events: none; }
.editorial-hero .hero-photo .zoom-label { top: 24px; right: clamp(20px, 4vw, 48px); bottom: auto; z-index: 2; }
.editorial-hero .hero-photo figcaption { position: absolute; right: 0; bottom: 22px; left: 0; z-index: 2; width: 100%; margin: 0; padding: 0; color: #fff; text-align: center; text-shadow: 0 2px 14px #000; }
.development { background: var(--mist); }
.development-layout { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 8vw, 100px); align-items: start; }
.development-layout h2 { max-width: 420px; margin: 0; font-size: clamp(2rem, 3.5vw, 3rem); }
.development-layout h2::before { display: block; width: 44px; height: 4px; margin-bottom: 22px; background: var(--red); content: ''; }
.development-layout p { max-width: 760px; font-size: 1.08rem; line-height: 1.95; }
.section-nav { box-shadow: 0 8px 20px #0c0f1405; }
.section-nav a { letter-spacing: .1em; font-size: .72rem; padding: 23px 0; }
.overview-content { display: grid; grid-template-columns: 1.5fr 1fr; gap: 64px; align-items: center; }
.overview-content > p { font-size: 1.06rem; line-height: 1.95; }
.overview-content .method-note {
  margin: 0;
  border: 1px solid #be162221;
  border-left: 4px solid var(--red);
  padding: 36px;
  background: #faf5f5;
  font-family: Archivo, sans-serif;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.65;
  border-radius: 0 16px 16px 0;
}
.section-heading { max-width: none; margin-bottom: 44px; }
.section-heading h2 { font-size: clamp(1.7rem, 3.5vw, 2.8rem); letter-spacing: .02em; margin: 0; }
.section-heading::before { content: ''; display: block; width: 44px; height: 4px; background: var(--red); margin-bottom: 22px; }
.visual-index { display: flex; flex: 0 0 42px; width: 42px; height: 42px; align-items: center; justify-content: center; border: 1px solid #be16222b; border-radius: 50%; color: var(--red); font: 600 .85rem Archivo, sans-serif; }
.instrumentation-copy { display: flex; align-items: flex-start; gap: 24px; max-width: 920px; }
.instrumentation-copy p { font-size: 1.05rem; }
.word-photo-grid { gap: 24px; margin: 32px 0 0 66px; }
.word-photo-grid figure, .percussion-step figure { background: #fff; border: 1px solid var(--line); padding: 10px; border-radius: 20px; box-shadow: 0 14px 35px -28px #0c0f1477; }
.word-photo-grid .photo-button, .percussion-step .photo-button { border-radius: 12px; }
.word-photo-grid figcaption, .percussion-step figcaption { padding: 16px 8px 8px; color: var(--text); font-weight: 500; font-size: .82rem; }
.percussion-step { grid-template-columns: 1fr; border-top: 1px solid #dce0e6; padding-top: 56px; margin-top: 56px; }
.percussion-step .step-copy { display: flex; align-items: flex-start; gap: 24px; width: 100%; }
.percussion-step .step-copy p { flex: 1; }
.percussion-step .visual-index { margin-bottom: 0; }
.ecometria-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ecometria-gallery figure { transition: transform .25s ease, box-shadow .25s ease; }
.ecometria-gallery figure:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -26px #0c0f1488; }
.ecometria-step-two { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.ecometria-step-two figure { min-width: 0; }
.ecometria-step-two .photo-button img { aspect-ratio: 4 / 3; object-fit: cover; }
.paragraph-part { display: block; margin-top: 18px; }
.analysis-step { margin-top: 48px; padding: 32px; align-items: flex-start; border-radius: 18px; box-shadow: 0 12px 40px -32px #0c0f1466; }
.analysis-step p { font-size: .96rem; line-height: 1.9; }
.benefits { background: radial-gradient(ellipse at 100% 0, #30212a 0, transparent 55%), var(--ink); }
.benefits .benefit-grid { grid-template-columns: 1fr; gap: 16px; }
.benefit-grid article { display: grid; grid-template-columns: 70px 1fr; gap: 30px; align-items: start; background: #ffffff05; border: 1px solid #ffffff1f; padding: 32px 36px; border-radius: 16px; }
.benefit-icon { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #ff817a55; border-radius: 50%; color: #ff817a; background: #ff817a12; font-size: 1.1rem; }
.benefit-grid p { font-size: 1rem; line-height: 1.9; color: #c5ccd6; }
.benefit-grid strong { color: #fff; font-weight: 600; }
.contact-section { padding: 40px 0; background: #fff; border-bottom: 1px solid var(--line); text-align: center; }
.contact-section [data-quote-service] { min-width: 260px; box-shadow: 0 12px 28px -14px #be162299; }
footer { padding-bottom: 96px; }
@media (max-width: 950px) {
  .editorial-hero .hero-grid { gap: 32px; }
  .overview-content { gap: 32px; grid-template-columns: 1.2fr 1fr; }
  .overview-content .method-note { padding: 26px; font-size: 1.1rem; }
  .percussion-step { gap: 32px; }
}
@media (max-width: 700px) {
  .editorial-hero { min-height: calc(100svh - var(--header)); }
  .editorial-hero > .container { padding-top: 20px; }
  .editorial-hero .hero-grid { margin-bottom: 104px; }
  .editorial-hero .hero-copy { max-width: 100%; }
  .overview-content { grid-template-columns: 1fr; }
  .editorial-hero h1 { font-size: 6rem; margin-bottom: 24px; }
  .ecometria-hero h1 { font-size: clamp(3rem, 17vw, 6rem); }
  .editorial-hero .hero-photo img { object-position: center 54%; }
  .editorial-hero .hero-photo .photo-button::after { background: linear-gradient(90deg, #090b0fc9, #090b0f36), linear-gradient(0deg, #090b0fcc 0%, #090b0f24 80%); }
  .editorial-hero .hero-photo .zoom-label { top: 16px; right: 20px; }
  .editorial-hero .hero-photo figcaption { right: 20px; bottom: calc(84px + env(safe-area-inset-bottom)); left: 76px; width: auto; max-width: none; font-size: .68rem; line-height: 1.45; }
  .development-layout { grid-template-columns: 1fr; gap: 24px; }
  .development-layout p { font-size: 1rem; line-height: 1.85; }
  .overview-content > p { font-size: 1rem; line-height: 1.85; }
  .overview-content .method-note { padding: 24px; }
  .section-heading { margin-bottom: 32px; }
  .instrumentation-copy { gap: 16px; }
  .instrumentation-copy p { font-size: 1rem; }
  .visual-index { flex-basis: 34px; width: 34px; height: 34px; font-size: .75rem; }
  .word-photo-grid { margin-left: 0; gap: 24px; }
  .ecometria-gallery { grid-template-columns: 1fr; }
  .percussion-step { padding-top: 36px; margin-top: 36px; }
  .ecometria-step-two { grid-template-columns: 1fr; gap: 24px; }
  .ecometria-step-two .photo-button img { aspect-ratio: 16 / 10; }
  .analysis-step { padding: 24px; gap: 16px; flex-direction: column; }
  .benefit-grid article { grid-template-columns: 44px minmax(0, 1fr); gap: 18px; padding: 26px; }
  .benefit-grid p { font-size: .96rem; line-height: 1.85; }
  .contact-section .button { width: 100%; }
}

/* Restrained motion for the DPT editorial page. */
.editorial-hero .hero-copy {
  animation: dpt-rise-in .7s both;
}
@keyframes dpt-rise-in {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
.typing-active::after {
  display: inline-block;
  width: 2px;
  height: .82em;
  margin-inline-start: .12em;
  background: #ff6b5e;
  content: '';
  vertical-align: -.02em;
  animation: dpt-caret-blink .8s steps(2, start) infinite;
}
@keyframes dpt-caret-blink { to { visibility: hidden; } }
.motion-ready .reveal-on-scroll {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .65s ease var(--reveal-delay, 0ms), transform .65s cubic-bezier(.2, .7, .2, 1) var(--reveal-delay, 0ms);
}
.motion-ready .reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.section-nav a { position: relative; transition: color .2s ease; }
.section-nav a::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: var(--red);
  content: '';
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.section-nav a:hover::after, .section-nav a[aria-current]::after { transform: scaleX(1); }
.photo-button img { transition: transform .65s cubic-bezier(.2, .7, .2, 1), filter .4s ease; }
.photo-button:hover img { transform: scale(1.045); filter: brightness(1.06); }
.zoom-label { transition: background .2s ease, transform .2s ease; }
.photo-button:hover .zoom-label { background: var(--red); transform: translateY(-2px); }
.benefit-grid article {
  transition: border-color .25s ease, background-color .25s ease, transform .25s ease;
}
.benefit-grid article:hover {
  border-color: #ffffff55;
  background: #ffffff0b;
  transform: translateY(-4px);
}
.visual-index { transition: color .25s ease, background-color .25s ease, transform .25s ease; }
.instrumentation-copy:hover .visual-index, .percussion-step:hover .visual-index, .analysis-step:hover .visual-index {
  color: #fff;
  background: var(--red);
  transform: rotate(-8deg);
}
@media (prefers-reduced-motion: reduce) {
  .editorial-hero .hero-copy, .editorial-hero .hero-photo { animation: none; }
  .typing-active::after { animation: none; visibility: hidden; }
  .motion-ready .reveal-on-scroll { opacity: 1; transform: none; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.editorial-hero .hero-photo { animation: none !important; opacity: 1 !important; transform: none !important; transition: none !important; }
