@font-face {
  font-family:Inter;
  src:url('/assets/fonts/inter-latin-3100e775e8.woff2') format('woff2');
  font-weight:400 700;
  font-display:swap;
}
@font-face {
  font-family:Sora;
  src:url('/assets/fonts/sora-latin-811e11966d.woff2') format('woff2');
  font-weight:500 700;
  font-display:swap;
}
:root {
  color-scheme:dark;
  --bg:#030b17;

  --panel:#07111f;
  --ink:#f3f7fb;
  --muted:#aab9c9;
  --cyan:#00b9ec;
  --line:#233447;

  --soft:var(--bg);

  --heading:Inter,'Segoe UI',sans-serif;
  --body:Inter,'Segoe UI',sans-serif;
}
html[data-theme=light] {
  color-scheme:light;
  --bg:#f5f8fb;

  --panel:#eaf3fb;
  --ink:#102b45;
  --muted:#48627b;
  --cyan:#006fbd;
  --line:#c6d9eb;

  --soft:var(--bg);
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:400 17px/1.65 var(--body);
}
button,input,textarea,select {
  font:inherit;
}
a {
  color:inherit;
  text-decoration:none;
}
button,a,input,textarea,select {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
a:hover {
  color:var(--cyan);
}
:focus-visible {
  outline:3px solid var(--cyan);
  outline-offset:5px;
}
::selection {
  background:var(--cyan);
  color:var(--bg);
}
img {
  max-width:100%;
  display:block;
}
svg {
  display:block;
}
button {
  color:inherit;
}
p {
  margin:0 0 1.2em;
}
h1,h2,h3 {
  font-family:var(--heading);

  line-height:1.15;

  font-weight:500;

  letter-spacing:-.045em;
  margin:0;
}
h1 {
  font-size:clamp(42px,4.8vw,68px);
}
h2 {
  font-size:clamp(30px,3vw,44px);
}
h3 {
  font-size:25px;
  letter-spacing:-.025em;
}
strong {
  font-weight:600;
}
[hidden] {
  display:none!important;
}
.wrap {
  width:min(1160px,calc(100% - 96px));
  margin-inline:auto;
}
.skip {
  position:fixed;
  left:20px;
  top:-100px;
  z-index:100;
  background:var(--cyan);
  color:var(--bg);
  padding:12px;
}
.skip:focus {
  top:12px;
}
.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.header-inner {
  min-height:84px;
  display:flex;
  align-items:center;
  gap:26px;
}
.wordmark {
  font:700 19px/1.1 var(--heading);
  letter-spacing:.015em;
  white-space:nowrap;
  font-size:16px;
  font-weight:600;
}
.wordmark b {
  font-size:25px;

  color:var(--ink);
  letter-spacing:-.07em;
  margin-right:8px;
}
.primary-nav {
  display:flex;
  align-items:center;

  gap:25px;
  margin-left:auto;

  font-size:14px;
}
.primary-nav a {
  padding:12px 0;
}
.primary-nav a[aria-current] {
  color:var(--cyan);
}
.preferences {
  display:flex;
  align-items:center;
  gap:5px;
}
.languages {
  display:flex;
  font-size:13px;
}
.languages a {
  padding:10px 6px;
}
.languages a[aria-current] {
  color:var(--cyan);
}
.theme-toggle {
  background:transparent;
  border:0;
  width:40px;
  height:44px;
  display:grid;
  place-items:center;
}
.theme-toggle svg {
  width:19px;
  height:19px;
}
.menu-toggle {
  display:none;
  background:none;
  border:1px solid var(--line);
  padding:8px 12px;
  min-height:44px;
  font-size:14px;
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:10px;

  min-height:48px;

  padding:12px 21px;
  border:1px solid var(--cyan);

  border-radius:3px;
  background:var(--cyan);
  color:#030b17;
  font-size:15px;

  font-weight:500;
  line-height:1.4;
  text-align:center;

  transition:background .2s,border-color .2s;
}
.button:hover {
  background:#79e7ff;
  border-color:#79e7ff;
  color:#030b17;

  transform:none;
}
html[data-theme=light] .button {
  color:white;
}
html[data-theme=light] .button:hover {
  background:#07569b;
  border-color:#07569b;
  color:white;
}
.button.secondary {
  background:transparent;

  border-color:transparent;
  color:var(--ink);
  padding-inline:16px;
}
.button.secondary:hover {
  border-color:transparent;

  background:transparent;
  color:var(--cyan);
}
.header-cta {
  min-height:42px;
  font-size:13px;
  padding:10px 16px;
  white-space:nowrap;
}
.eyebrow {
  font-size:12px;

  font-weight:500;

  letter-spacing:.09em;
  text-transform:uppercase;

  color:var(--muted);

  margin-bottom:28px;
}
.eyebrow .number {
  opacity:.6;
  margin-right:12px;
}
.hero {
  padding:110px 0 0;
}
.hero-grid {
  display:grid;

  grid-template-columns:1fr;
  align-items:center;

  gap:0;
  max-width:880px;
}
.hero h1 em {
  font-style:normal;

  color:var(--muted);
}
.hero-intro {
  font-size:18px;
  line-height:1.75;
  color:var(--muted);

  max-width:660px;

  margin:30px 0;
}
.actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.hero-note {
  font-size:13px;
  color:var(--muted);

  margin-top:24px;
}
.hero-visual {
  position:relative;
  border:1px solid var(--line);
  border-radius:9px;
  overflow:hidden;
  min-width:0;
  background:#061323;
  display:none;
}
.hero-visual>img {
  width:100%;
  height:440px;
  object-fit:cover;
  object-position:center;
  opacity:.75;
}
.visual-top {
  position:absolute;
  inset:0 0 auto;
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:19px 23px;
  color:#c8d9e8;
  font-size:12px;
  letter-spacing:.13em;
  background:linear-gradient(#030b17d9,transparent);
}
.visual-caption {
  position:absolute;
  inset:auto 0 0;
  background:linear-gradient(transparent,#030b17 38%);
  padding:75px 25px 25px;
  color:#f3f7fb;
}
.visual-caption>p {
  font:500 26px/1.25 var(--heading);
  margin-bottom:19px;
  letter-spacing:-.03em;
}
.control-line {
  display:flex;
  align-items:center;
  gap:9px;
  border-top:1px solid #365063;
  padding-top:16px;
  font-size:13px;
  color:#bdd0df;
}
.control-line svg {
  color:#00cfff;
  width:19px;
  height:19px;
}
.hero-strip {
  margin-top:90px;

  padding:28px 0;
  border-top:1px solid var(--line);

  border-bottom:0;
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
}
.hero-strip>span {
  font-size:12px;

  letter-spacing:.04em;
  color:var(--muted);
  text-transform:uppercase;
}
.hero-strip strong {
  font-weight:400;

  font-size:14px;
  color:var(--muted);
}
.section {
  padding-block:105px;
}
.section-heading {
  display:grid;

  grid-template-columns:1.2fr 1fr;

  gap:80px;
  align-items:end;

  margin-bottom:56px;
}
.section-heading>p {
  color:var(--muted);
  max-width:420px;
  margin:0;
}
.services {
  background:var(--bg);
  border-top:1px solid var(--line);
}
.service-grid {
  display:grid;

  grid-template-columns:repeat(2,minmax(0,1fr));

  border:0;

  border-radius:0;

  overflow:visible;
  gap:45px 70px;
}
.service-card {
  padding:26px 0 0;
  display:flex;
  flex-direction:column;

  min-height:290px;

  border-right:0;

  background:transparent;
  transition:background .2s;
  border-top:1px solid var(--line);
}
.service-card:last-child {
  border-right:0;
}
.service-card:hover {
  background:transparent;
}
.service-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--cyan);

  margin-bottom:24px;
}
.service-top svg {
  width:23px;

  height:23px;
  color:var(--muted);
}
.service-top span {
  color:var(--muted);
  font-size:12px;
}
.service-card h3 {
  font-size:23px;

  min-height:0;
  max-width:350px;
}
.service-card p {
  font-size:16px;
  color:var(--muted);

  margin:17px 0 20px;
  max-width:460px;
}
.service-card .benefit {
  margin-top:auto;

  padding-top:0;

  border-top:0;

  font-size:14px;

  font-weight:400;
}
.service-card a {
  display:block;

  color:var(--ink);
  font-size:14px;

  margin-top:18px;
  text-decoration:underline;
  text-underline-offset:5px;
  text-decoration-color:var(--line);
}
.about-grid {
  display:grid;

  grid-template-columns:1fr 1.2fr;

  gap:80px;
  align-items:center;
}
.about-photo {
  aspect-ratio:4/5;
  object-fit:cover;

  border-radius:0;

  filter:saturate(.25);
}
.photo-credit {
  display:flex;
  justify-content:space-between;

  border-top:0;

  padding-top:0;

  margin-top:14px;
  font-size:12px;
  color:var(--muted);
  letter-spacing:.04em;
}
.about-copy>p:not(.eyebrow) {
  color:var(--muted);
  margin-top:25px;
}
.values {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  gap:22px;

  padding-top:25px;

  margin-top:32px;
}
.values strong {
  font-size:15px;
  color:var(--ink);
  display:block;
  margin-bottom:5px;
  font-weight:500;
}
.values span {
  font-size:13px;
  color:var(--muted);
  line-height:1.5;
  display:block;
}
.agent-section {
  background:var(--bg);

  border-block:1px solid var(--line);
}
.agent-grid {
  display:grid;
  grid-template-columns:1fr 1fr;

  gap:80px;
  align-items:center;
}
.agent-copy>p:not(.eyebrow) {
  color:var(--muted);
  margin:25px 0;
}
.agent-copy .button {
  margin-top:8px;
}
.workflow {
  border:0;

  border-radius:0;

  background:transparent;

  padding:0;
}
.workflow-label {
  font-size:12px;

  letter-spacing:.04em;
  color:var(--muted);
  margin-bottom:24px;
  text-transform:uppercase;
}
.flow-step {
  display:flex;
  gap:18px;
  padding:19px 0;
  border-top:1px solid var(--line);
}
.flow-step>span {
  font:500 13px/1 var(--body);

  border:0;
  height:32px;

  width:25px;
  display:grid;
  place-items:center;
  flex-shrink:0;

  color:var(--muted);

  border-radius:0;
}
.flow-step strong {
  font-size:15px;
  font-weight:500;
}
.flow-step p {
  font-size:14px;
  color:var(--muted);
  margin:4px 0 0;
}
.flow-step.human>span {
  background:transparent;

  color:var(--cyan);

  border-color:transparent;
}
.workflow-foot {
  border-top:1px solid var(--line);
  padding-top:17px;
  margin:7px 0 0;

  color:var(--muted);
  font-size:13px;
}
.reference-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);

  gap:38px;
}
.reference-card {
  border-top:1px solid var(--line);
  padding-top:26px;
}
.reference-card .tag {
  font-size:12px;

  letter-spacing:.05em;

  color:var(--muted);
  text-transform:uppercase;
}
.reference-card h3 {
  font-size:24px;
  margin:21px 0 17px;
}
.reference-card p {
  font-size:16px;
  color:var(--muted);
}
.reference-card .outcome {
  font-size:14px;

  border-left:0;

  padding-left:0;
  color:var(--ink);
  margin-top:24px;
}
.reference-note {
  font-size:13px;
  color:var(--muted);
  margin:30px 0 0;
}
.contact-section {
  padding-block:95px;

  background:var(--panel);
  border-top:1px solid var(--line);
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;

  gap:80px;
}
.contact-copy h2 {
  font-size:clamp(34px,3.2vw,46px);
}
.contact-copy h2 span {
  color:var(--muted);
}
.contact-copy>p:not(.eyebrow) {
  max-width:440px;
  color:var(--muted);
  margin:27px 0;
}
.contact-email {
  display:inline-block;
  font-size:19px;
  text-decoration:underline;
  text-underline-offset:7px;
  overflow-wrap:anywhere;
}
.contact-small {
  font-size:14px;
}
.contact-form {
  background:transparent;

  border:0;

  border-radius:0;

  padding:0;
}
.contact-form h3 {
  font-size:22px;

  margin-bottom:28px;
}
.field {
  display:block;
  margin-bottom:18px;
}
.field span {
  display:block;
  font-size:14px;
  margin-bottom:7px;
}
.field input,.field select,.field textarea {
  width:100%;
  border:1px solid var(--line);

  background:var(--bg);
  color:var(--ink);
  padding:12px 14px;

  border-radius:2px;
  min-height:49px;

  font-size:16px;
}
.field textarea {
  resize:vertical;
  min-height:110px;
}
.field input::placeholder,.field textarea::placeholder {
  color:var(--muted);
  opacity:.85;
}
.field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.contact-form .button {
  width:100%;
}
.form-note {
  font-size:12px;
  color:var(--muted);
  margin:15px 0 0;
  line-height:1.6;
}
.form-status {
  font-size:14px;
  margin:16px 0 0;
  color:var(--cyan);
}
.footer-main {
  padding-block:55px;
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:50px;
}
.footer-main p {
  font-size:14px;
  color:var(--muted);
  margin-top:18px;
  max-width:310px;
}
.footer-main h3 {
  font:600 14px var(--body);
  letter-spacing:0;
  margin-bottom:16px;
}
.footer-main ul {
  list-style:none;
  padding:0;
  margin:0;
  font-size:14px;
  color:var(--muted);
}
.footer-main li {
  margin:9px 0;
}
.footer-bottom {
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:24px;
  font-size:12px;
  color:var(--muted);

  padding-block:24px;
}
.legal {
  max-width:800px;
  padding-block:65px 100px;
}
.legal h1 {
  font-size:46px;
  margin-bottom:35px;
}
.legal h2 {
  font-size:25px;
  margin:35px 0 18px;
}
.legal p {
  color:var(--muted);
}
.legal .notice {
  border:1px solid var(--line);
  padding:20px;
  font-size:15px;
}
.bloc-centre {
  padding:90px 0;
}
.reveal {
  opacity:1;
  transform:none;
}
.motion-ready .reveal {
  transition:opacity .65s ease,transform .65s ease;
}
.motion-ready .reveal.pending {
  opacity:0;
  transform:translateY(20px);
}
@media(max-width:1100px) {
  .wrap { width:calc(100% - 64px); }
  .header-inner { gap:20px; }
  .header-cta { display:none; }
  .primary-nav { gap:20px; }
  .service-grid { gap:42px; }
  .about-grid,.agent-grid,.contact-grid { gap:45px; }
}
@media(max-width:850px) {
  .wrap { width:calc(100% - 48px); }
  .header-inner { min-height:74px;flex-wrap:wrap;gap:0; }
  .menu-toggle { display:block;margin-left:auto;border:0; }
  .primary-nav { order:3;width:100%;margin:0;flex-direction:column;align-items:stretch;gap:0;padding-block:15px;border-top:1px solid var(--line); }
  .primary-nav a { padding:12px 0; }
  .preferences { order:4;width:100%;padding-block:10px;justify-content:flex-end; }
  .menu-ready .primary-nav,.menu-ready .preferences { display:none; }
  .menu-open .primary-nav,.menu-open .preferences { display:flex; }
  .site-header { max-height:100dvh;overflow-y:auto; }
  .hero { padding-top:75px; }
  .hero-strip { margin-top:60px;flex-wrap:wrap;gap:12px 25px; }
  .hero-strip>span { width:100%; }
  .section { padding-block:75px; }
  .section-heading { grid-template-columns:1fr;gap:24px;margin-bottom:40px; }
  .section-heading>p { max-width:600px; }
  .about-grid { grid-template-columns:1fr;gap:38px; }
  .about-image { order:2; }
  .about-photo { aspect-ratio:2/1;width:100%; }
  .agent-grid,.contact-grid { grid-template-columns:1fr;gap:40px; }
  .reference-grid { gap:22px; }
  .reference-card h3 { font-size:21px; }
  .footer-main { gap:25px; }
}
@media(max-width:560px) {
  body { font-size:16px; }
  .wrap { width:calc(100% - 40px); }
  .wordmark { font-size:15px; }
  .hero { padding-top:55px; }
  h1 { font-size:clamp(35px,9vw,46px);line-height:1.17;letter-spacing:-.045em; }
  h2 { font-size:31px; }
  .eyebrow { font-size:11px;letter-spacing:.07em;margin-bottom:22px; }
  .hero-intro { font-size:16px;margin-block:24px; }
  .hero .actions { gap:7px; }
  .button { font-size:14px;padding-inline:17px; }
  .button.secondary { padding-inline:10px; }
  .hero-note { font-size:12px; }
  .hero-strip { margin-top:50px;padding-block:22px;gap:9px 17px; }
  .hero-strip strong { font-size:12px; }
  .section { padding-block:60px; }
  .service-grid { grid-template-columns:1fr;gap:35px; }
  .service-card { min-height:0;padding-top:24px; }
  .service-card h3 { font-size:23px; }
  .service-top { margin-bottom:19px; }
  .values { gap:16px; }
  .values strong { font-size:13px; }
  .values span { font-size:12px; }
  .about-photo { aspect-ratio:4/3; }
  .photo-credit { font-size:11px; }
  .reference-grid { grid-template-columns:1fr;gap:30px; }
  .reference-card h3 { font-size:24px; }
  .contact-section { padding-block:60px; }
  .contact-copy h2 { font-size:34px; }
  .contact-email { font-size:17px; }
  .field-row { grid-template-columns:1fr;gap:0; }
  .footer-main { grid-template-columns:1fr 1fr;padding-block:40px;gap:27px; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { flex-direction:column;gap:10px; }
  .legal h1 { font-size:37px; }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important;
  }
  .motion-ready .reveal.pending {
    opacity:1;
    transform:none;
  }
}
.bloc-centre .intro {
  color:var(--muted);
  max-width:650px;
  margin-top:25px;
}
.bloc-centre .wordmark {
  display:block;
  margin-bottom:30px;
}

.about-grid > *, .agent-grid > *, .contact-grid > *, .field-row > *, .footer-main > * {
  min-width:0;
}
.footer-main a { overflow-wrap:anywhere; }
.photo-credit { flex-wrap:wrap;gap:8px; }
@media(max-width:400px) {
  .values { grid-template-columns:1fr;gap:18px; }
  .values strong { font-size:14px; }
  .values span { font-size:13px; }
  .contact-form .button { padding-inline:10px; }
}

.method-section { border-block:1px solid var(--line); }
.method-heading { max-width:880px;margin-bottom:52px; }
.method-heading h2 span { color:var(--muted); }
.method-phase { border-top:1px solid var(--line);padding:24px 0 32px; }
.method-phase h3 { font:500 12px/1.5 var(--body);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 25px; }
.method-phase ol { list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:50px; }
.method-step { display:flex;align-items:flex-start;gap:22px;min-width:0; }
.method-number { font-size:20px;font-weight:400;line-height:1.3;color:var(--cyan); }
.method-step h4 { font:500 25px/1.2 var(--heading);letter-spacing:-.03em;margin:0 0 12px; }
.method-step p { color:var(--muted);font-size:15px;line-height:1.7;margin:0; }
.method-loop { display:flex;align-items:center;gap:17px;border-top:1px solid var(--line);padding-top:23px; }
.method-loop>span { color:var(--cyan);font-size:29px; }
.method-loop p { color:var(--muted);font-size:14px;margin:0; }
.method-loop strong { color:var(--ink);font-weight:500;margin-right:8px; }
.method-result { margin-top:40px;padding:32px;border-left:2px solid var(--cyan);background:var(--panel); }
.method-result h3 { font-size:27px;margin:0 0 12px; }
.method-result p { color:var(--muted);margin:0;font-size:16px; }
.method-foot { text-align:center;font-size:13px;color:var(--muted);margin:23px 0 0; }
@media(max-width:650px) {
  .method-heading { margin-bottom:35px; }
  .method-phase ol { grid-template-columns:1fr;gap:27px; }
  .method-phase { padding-block:23px 28px; }
  .method-step { gap:17px; }
  .method-step h4 { font-size:23px; }
  .method-step p { font-size:15px; }
  .method-loop { align-items:flex-start; }
  .method-loop strong { display:block;margin-bottom:6px; }
  .method-result { padding:24px 20px;margin-top:30px; }
  .method-result h3 { font-size:24px; }
}

.visually-hidden { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
.diagram-wide { width:min(1480px,calc(100% - 64px)); }
.diagram-toolbar { display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px; }
.diagram-toolbar .eyebrow { margin:0; }
.diagram-toggle { background:transparent;border:1px solid var(--line);padding:10px 14px;border-radius:3px;font-size:13px;min-height:44px; }
.diagram-figure { margin:0; }
.diagram-stage { position:relative;isolation:isolate; }
.diagram-stage>img { width:100%;height:auto; }
.diagram-relations { position:absolute;inset:0;width:100%;height:100%;pointer-events:none; }
.relation-flow { stroke:#a0efff;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:9 91;animation:diagram-flow 2.8s linear infinite;filter:drop-shadow(0 0 4px #00cfff); }
.relation-1,.relation-3 { animation-duration:4s; }
.relation-5,.relation-6 { animation-duration:4.8s;stroke:#d2b5ff;filter:drop-shadow(0 0 4px #9248ff); }
.relation-7 { animation-duration:2s; }
.diagram-paused .relation-flow { animation-play-state:paused; }
.diagram-transcript { margin-top:22px;color:var(--muted); }
.diagram-transcript summary { cursor:pointer;font-size:14px;padding:10px 0; }
.diagram-transcript[open] summary { margin-bottom:25px; }
@keyframes diagram-flow { from { stroke-dashoffset:100; } to { stroke-dashoffset:0; } }
@media(max-width:650px) {
  .diagram-wide { width:calc(100% - 32px); }
  .diagram-toolbar { align-items:flex-start;gap:12px; }
  .diagram-toolbar .eyebrow { padding-top:12px; }
  .diagram-toggle { max-width:170px;font-size:12px; }
}

.diagram-light { display:none;width:100%;height:auto; }
html[data-theme=light] .diagram-dark { display:none; }
html[data-theme=light] .diagram-light { display:block; }
html[data-theme=light] .relation-flow { stroke:#003047;stroke-width:8;stroke-dasharray:15 85;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 4px #fff); }
html[data-theme=light] .relation-5,html[data-theme=light] .relation-6 { stroke:#6b21a8; }
.method-details { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 60px;margin:65px auto 0;max-width:1160px; }
.method-detail { min-width:0;border-top:1px solid var(--line);padding-top:25px; }
.method-detail h3 { font-size:24px;line-height:1.3;margin-bottom:20px; }
.method-detail h3 span { color:var(--cyan); }
.method-detail p { color:var(--muted);font-size:16px;line-height:1.8; }
.method-detail .method-deliverable { margin-bottom:0; }
.method-deliverable strong { font-weight:500;color:var(--ink); }
@media(max-width:700px) {
  .method-details { grid-template-columns:1fr;gap:32px;margin-top:40px; }
  .method-detail h3 { font-size:22px; }
}

@media(max-width:700px) {
  .diagram-figure { display:none; }
  #method-title { position:static;width:auto;height:auto;margin:30px 0;overflow:visible;clip-path:none;white-space:normal;font-size:30px; }
  .method-details { display:flex;flex-direction:column;gap:0;margin-top:0; }
  .method-detail { position:relative;border:1px solid var(--line);border-radius:8px;padding:24px 20px;margin-bottom:68px;background:var(--panel); }
  .method-detail h3 { display:flex;flex-direction:column;gap:8px;font-size:23px; }
  .method-detail h3 span { font-size:16px; }
  .mobile-relation { display:block;position:absolute;top:100%;left:calc(50% - 16px);width:32px;height:68px;overflow:visible; }
  .mobile-track { stroke:var(--cyan);stroke-width:2;fill:none; }
  .mobile-result { display:block;border-left:2px solid var(--cyan);padding:22px;background:var(--panel); }
  .mobile-result h3 { font-size:24px;margin:0 0 12px; }
  .mobile-result p { color:var(--muted);margin:0 0 14px; }
  .mobile-loop { display:block;color:var(--cyan);font-size:14px; }
}

/* Enter through 01 once, then repeat the improvement loop from 02. */
.mobile-relation,.mobile-result { display:none; }
@media(max-width:700px) { .mobile-relation,.mobile-result {display:block;} }
.method-section .relation-flow { animation:none!important;opacity:0; }
.method-section .relation-flow,html[data-theme=light] .method-section .relation-flow {stroke-dasharray:15 185;}
@keyframes route-entry {0% {opacity:1;stroke-dashoffset:15} 99.99% {opacity:1;stroke-dashoffset:-100} 100% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .relation-0 {animation:route-entry 2s linear 0s 1 forwards!important;}
@keyframes repeat-route-0 {0%,100%,0.0000% {opacity:0;stroke-dashoffset:15} 0.0100% {opacity:1;stroke-dashoffset:15} 16.6467% {opacity:1;stroke-dashoffset:-100} 16.6517% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .relation-1 {animation:repeat-route-0 12s linear 2s infinite!important;}
@keyframes repeat-route-1 {0%,100%,16.6667% {opacity:0;stroke-dashoffset:15} 16.6767% {opacity:1;stroke-dashoffset:15} 33.3133% {opacity:1;stroke-dashoffset:-100} 33.3183% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .relation-2 {animation:repeat-route-1 12s linear 2s infinite!important;}
@keyframes repeat-route-2 {0%,100%,33.3333% {opacity:0;stroke-dashoffset:15} 33.3433% {opacity:1;stroke-dashoffset:15} 49.9800% {opacity:1;stroke-dashoffset:-100} 49.9850% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .relation-3 {animation:repeat-route-2 12s linear 2s infinite!important;}
@keyframes repeat-route-3 {0%,100%,50.0000% {opacity:0;stroke-dashoffset:15} 50.0100% {opacity:1;stroke-dashoffset:15} 66.6467% {opacity:1;stroke-dashoffset:-100} 66.6517% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .relation-4 {animation:repeat-route-3 12s linear 2s infinite!important;}
@keyframes repeat-route-4 {0%,100%,66.6667% {opacity:0;stroke-dashoffset:15} 66.6767% {opacity:1;stroke-dashoffset:15} 83.3133% {opacity:1;stroke-dashoffset:-100} 83.3183% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .relation-5 {animation:repeat-route-4 12s linear 2s infinite!important;}
@keyframes repeat-route-5 {0%,100%,83.3333% {opacity:0;stroke-dashoffset:15} 83.3433% {opacity:1;stroke-dashoffset:15} 99.9800% {opacity:1;stroke-dashoffset:-100} 99.9850% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .relation-6 {animation:repeat-route-5 12s linear 2s infinite!important;}
@media(max-width:700px) {
@keyframes repeat-mobile-0 {0%,100%,0.0000% {opacity:0;stroke-dashoffset:15} 0.0100% {opacity:1;stroke-dashoffset:15} 19.9800% {opacity:1;stroke-dashoffset:-100} 19.9850% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .mobile-relation .relation-1 {animation:repeat-mobile-0 10s linear 2s infinite!important;}
@keyframes repeat-mobile-1 {0%,100%,20.0000% {opacity:0;stroke-dashoffset:15} 20.0100% {opacity:1;stroke-dashoffset:15} 39.9800% {opacity:1;stroke-dashoffset:-100} 39.9850% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .mobile-relation .relation-2 {animation:repeat-mobile-1 10s linear 2s infinite!important;}
@keyframes repeat-mobile-2 {0%,100%,40.0000% {opacity:0;stroke-dashoffset:15} 40.0100% {opacity:1;stroke-dashoffset:15} 59.9800% {opacity:1;stroke-dashoffset:-100} 59.9850% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .mobile-relation .relation-3 {animation:repeat-mobile-2 10s linear 2s infinite!important;}
@keyframes repeat-mobile-3 {0%,100%,60.0000% {opacity:0;stroke-dashoffset:15} 60.0100% {opacity:1;stroke-dashoffset:15} 79.9800% {opacity:1;stroke-dashoffset:-100} 79.9850% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .mobile-relation .relation-4 {animation:repeat-mobile-3 10s linear 2s infinite!important;}
@keyframes repeat-mobile-4 {0%,100%,80.0000% {opacity:0;stroke-dashoffset:15} 80.0100% {opacity:1;stroke-dashoffset:15} 99.9800% {opacity:1;stroke-dashoffset:-100} 99.9850% {opacity:0;stroke-dashoffset:-100}}
.diagram-user-motion .mobile-relation .relation-5 {animation:repeat-mobile-4 10s linear 2s infinite!important;}
}
.diagram-paused .relation-flow {animation-play-state:paused!important;}

.about-photo.about-map {width:100%;height:auto;aspect-ratio:870/1808;object-fit:contain;filter:none;border-radius:8px;}
.about-image .map-light {display:none;}
html[data-theme=light] .about-image .map-dark {display:none;}
html[data-theme=light] .about-image .map-light {display:block;}
.about-image {max-width:420px;width:100%;justify-self:center;}
@media(max-width:850px) {.about-image {max-width:380px;}}

.about-photo.about-sectors {width:100%;height:auto;aspect-ratio:auto;object-fit:contain;filter:none;border-radius:8px;}
html[data-theme=light] .method-section .relation-flow {stroke:#a0efff;stroke-width:3.5;filter:drop-shadow(0 0 4px #00cfff);}
html[data-theme=light] .method-section .relation-5,
html[data-theme=light] .method-section .relation-6 {stroke:#d2b5ff;filter:drop-shadow(0 0 4px #9248ff);}
.mobile-track {stroke:#9236ef;}

.relations-light {display:none;}
html[data-theme=light] .relations-dark {display:none;}
html[data-theme=light] .relations-light {display:block;}

html[data-theme=light] .method-section .relation-flow {stroke:#0872fc;filter:drop-shadow(0 0 2px #0872fc);}

html[data-theme=light] .method-section .relation-flow {stroke:#9236ef;filter:drop-shadow(0 0 2px #9236ef);}
html[data-theme=light] .mobile-track {stroke:#0872fc;}
.mobile-tip {stroke:#9236ef;stroke-width:2;fill:none;}

html[data-theme=light] .method-section .relation-flow {stroke:#7514cf;stroke-width:7;filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 2px #fff);}
html[data-theme=light] .light-arrow-heads {fill:#7514cf;}
html[data-theme=light] .mobile-tip {stroke:#7514cf;}

.brand-logo {display:block;flex-shrink:0;width:188px;line-height:0;}
.brand-logo img {width:100%;height:auto;object-fit:contain;}
.brand-logo .logo-light {display:none;}
html[data-theme=light] .brand-logo .logo-dark {display:none;}
html[data-theme=light] .brand-logo .logo-light {display:block;mix-blend-mode:multiply;}
.footer-brand .brand-logo {width:240px;margin-bottom:22px;}
.header-inner {min-height:96px;}
.hero h1 span:last-child {color:var(--cyan);}
@media(max-width:850px) {.brand-logo {width:156px;}.header-inner {min-height:82px;}}
@media(max-width:400px) {.brand-logo {width:140px;}.footer-brand .brand-logo {width:210px;}}
.footer-brand .brand-logo {width:520px;max-width:100%;margin-bottom:24px;}
.footer-brand .brand-logo img {
  -webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 10%,#000 89%,transparent);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 10%,#000 89%,transparent);
  mask-composite:intersect;
}
@media(max-width:560px) {.footer-brand .brand-logo {width:100%;}}
.footer-brand .brand-logo img {-webkit-mask-image:none;mask-image:none;} html[data-theme=light] .brand-logo .logo-light {mix-blend-mode:normal;}

.brand-logo img {clip-path:inset(0 0 18% 0);}

.cyber-hero {display:grid;grid-template-columns:1.4fr 1fr;gap:70px;align-items:center;}
.cyber-hero h1 {font-size:clamp(42px,4.5vw,66px);}.cyber-hero h1 em {color:var(--cyan);}
.cyber-focus {border-top:2px solid var(--cyan);padding:30px 0 0;}.cyber-focus>.eyebrow {display:block;font-size:11px;}
.cyber-focus>div {display:flex;gap:20px;padding:23px 0;border-bottom:1px solid var(--line);}.cyber-focus>div>span {color:var(--cyan);font-size:13px;}.cyber-focus p {margin:0;color:var(--muted);font-size:14px;}.cyber-focus strong {display:block;font-size:22px;font-weight:500;color:var(--ink);margin-bottom:5px;}.focus-foot {display:block;margin-top:22px;font-size:12px;color:var(--muted);}
.case-section {background:var(--panel);border-block:1px solid var(--line);}.case-grid {display:grid;grid-template-columns:1fr 1fr;gap:50px 60px;}.case-card {border-top:1px solid var(--line);padding-top:25px;}.case-label {color:var(--cyan);font-size:12px;letter-spacing:.08em;font-weight:600;}.case-sector {font-size:12px;color:var(--muted);margin:8px 0 22px;}.case-card h3 {font-size:27px;line-height:1.25;margin-bottom:20px;}.case-card>p,.case-card details p {font-size:15px;color:var(--muted);}.case-card summary {cursor:pointer;color:var(--cyan);font-size:14px;padding:10px 0;}.case-card details h4 {font-size:14px;margin:20px 0 8px;}.case-card .case-role {font-size:12px;margin:22px 0 0;}.case-note {font-size:12px;color:var(--muted);max-width:800px;margin:45px 0 22px;}.text-link {color:var(--cyan);font-size:15px;}
.identity-card {padding:42px;border:1px solid var(--line);background:var(--panel);}.identity-card h2 {font-size:58px;margin-bottom:22px;}.identity-card h2 span {color:var(--cyan);}.identity-card>p {font-size:15px;color:var(--muted);}.identity-metric {display:flex;gap:20px;align-items:center;padding:24px 0;border-block:1px solid var(--line);margin:30px 0;}.identity-metric strong {font-size:60px;line-height:1;color:var(--cyan);font-weight:500;}.identity-metric span {font-size:14px;color:var(--muted);}.identity-card .identity-location {margin:0;font-size:12px;letter-spacing:.12em;}.about-intro {margin-top:25px;}.about-grid p {color:var(--muted);}.about-lab {font-size:14px;margin-top:30px;}.contact-phone {display:block;margin:12px 0 24px;font-size:19px;color:var(--cyan);}.contact-copy h2 {font-size:clamp(34px,3.5vw,49px);}
@media(max-width:1000px){.cyber-hero {gap:35px;}.header-cta {display:none;}.primary-nav {gap:16px;}}
@media(max-width:850px){.cyber-hero {grid-template-columns:1fr;}.cyber-focus {max-width:560px;margin-top:15px;}.identity-card {max-width:500px;}.case-grid {gap:35px;}}
@media(max-width:600px){.case-grid {grid-template-columns:1fr;}.identity-card {padding:28px;}.identity-card h2 {font-size:48px;}.cyber-hero h1 {font-size:42px;}.case-card h3 {font-size:25px;}.cyber-focus strong {font-size:21px;}}

html[data-theme=light] .button.secondary {color:var(--cyan);background:transparent;} html[data-theme=light] .button.secondary:hover {color:var(--ink);background:var(--panel);}

/* Keep language and theme controls accessible at every screen size. */
.preferences .language-link {font-size:13px;font-weight:600;color:var(--ink);padding:10px;}
.theme-toggle {min-width:40px;min-height:40px;}
@media(max-width:850px){.header-inner{gap:12px;}.site-header .preferences{display:flex;order:2;width:auto;margin-left:0;padding:0;gap:4px;}.menu-toggle{margin-left:auto;}.primary-nav{order:3;}}

.shelltr-contact-link{display:flex;flex-direction:row;align-items:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);color:var(--cyan);font-size:14px}.shelltr-contact-link img{width:150px;max-width:45%;height:auto;flex-shrink:0}.shelltr-contact-link .shelltr-light{display:none}html[data-theme=light] .shelltr-contact-link .shelltr-dark{display:none}html[data-theme=light] .shelltr-contact-link .shelltr-light{display:block}

.about-grid.about-single{display:block}.about-single>div{max-width:800px}

/* Preserve words and apostrophes; punctuation uses non-breaking spaces in the markup. */
body{word-break:normal;overflow-wrap:normal;hyphens:none}p,h1,h2,h3,h4,li,summary,label,.benefit,.hero-note,.footer-main a{word-break:normal;overflow-wrap:normal;hyphens:none}

.contact-copy .contact-location{display:flex;align-items:center;gap:8px;margin:14px 0 24px;font-size:15px;color:var(--muted)}.contact-location svg{flex-shrink:0;color:var(--cyan)}
