/* Timeline scene sits over the original fixed WebGL particle canvas. */
.playground-module-scss-module__dz0hOa__tileLink {
  position: relative;
  overflow: hidden;
}

.playground-module-scss-module__dz0hOa__captionYear {
  display: none !important;
}

.selected-work-preview {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
  padding: clamp(16px, 2.3vw, 36px);
  background: rgba(30, 29, 31, .97);
  border: 1px solid rgba(240, 242, 240, .45);
  color: var(--foreground);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .35s ease, transform .35s ease, visibility .35s;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .playground-module-scss-module__dz0hOa__tileLink:hover .selected-work-preview {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: 2s;
  }
}

.playground-module-scss-module__dz0hOa__tileLink:focus-visible .selected-work-preview {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.selected-work-preview__heading {
  color: var(--muted);
  font-size: clamp(10px, .8vw, 14px);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.selected-work-preview__finding {
  max-width: 30ch;
  font-size: clamp(18px, 1.8vw, 32px);
  line-height: 1.12;
}

.selected-work-preview__contents {
  padding-top: .8rem;
  border-top: 1px solid rgba(240, 242, 240, .35);
  color: var(--muted);
  font-size: clamp(11px, .9vw, 16px);
  line-height: 1.35;
}

@media (orientation: portrait) {
  .selected-work-preview { gap: .5rem; }
  .selected-work-preview__finding { font-size: clamp(16px, 4vw, 28px); }
  .selected-work-preview__contents { font-size: clamp(10px, 2.4vw, 14px); }
}

@media (prefers-reduced-motion: reduce) {
  .selected-work-preview { transition: none; }
}

.career-timeline {
  position: relative;
  z-index: 1;
  height: 600svh;
}

.career-timeline__stage {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100svh;
  overflow: hidden;
  perspective: 1100px;
  opacity: var(--career-stage-opacity, 1);
}

.career-timeline__heading {
  position: absolute;
  z-index: 2;
  top: 5.92593vh;
  left: 4.16667vw;
  margin: 0;
  color: var(--muted);
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: 0;
  filter: blur(10px);
  transition: opacity .6s ease, filter .6s ease;
}

.career-timeline[data-active="true"] .career-timeline__heading {
  opacity: 1;
  filter: blur(0);
}

.career-timeline__track {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
}

.career-milestone {
  --reveal: 0;
  position: absolute;
  width: 0;
  height: 0;
  will-change: left, top;
}

.career-milestone__pin {
  position: absolute;
  top: 0;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--foreground);
  box-shadow: 0 0 8px #fff, 0 0 20px #fff9;
  transform: translate(-50%, -50%);
  opacity: var(--dot, 0);
}

.career-milestone__bridge {
  position: absolute;
  top: 0;
  left: 0;
  width: 5vw;
  height: 1px;
  background: linear-gradient(90deg, #f0f2f0e0, #f0f2f095);
  box-shadow: 0 0 8px #fff9;
  transform: scaleX(var(--reveal));
  transform-origin: left center;
}

.career-milestone__card {
  position: absolute;
  top: -4.5rem;
  left: 5vw;
  width: min(40vw, 460px);
  padding: 1.4rem 1.5rem 1.5rem;
  border-top: 1px solid #ffffffb0;
  background: linear-gradient(180deg, #222124ed, #222124cb);
  backdrop-filter: blur(8px);
  backface-visibility: hidden;
  opacity: var(--reveal);
  transform-origin: left center;
  transform: rotateY(var(--roll, -88deg));
  will-change: transform, opacity;
}

.career-milestone__year {
  display: block;
  margin-bottom: .9rem;
  color: var(--muted);
  letter-spacing: .1em;
}

.career-milestone__role {
  margin: 0 0 1rem;
  font-weight: 400;
  line-height: 1.1;
}

.career-milestone__meta,
.career-milestone__context {
  margin: 0;
  line-height: 1.4;
}

.career-milestone__context {
  margin-top: .3rem;
  color: var(--muted);
}

@media (orientation: portrait) {
  .career-milestone__bridge { width: 8vw; }
  .career-milestone__card {
    left: 8vw;
    top: -2.5rem;
    width: 72vw;
    padding: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .career-timeline__heading { transition: none; }
  .career-milestone__card { transform: none; }
}

/* The career rope disperses into a scroll-driven certificate constellation. */
.certificates-constellation {
  position: relative;
  z-index: 1;
  /* Begin as soon as the pinned career stage releases. */
  margin-top: -100svh;
  /* Keep the dust pinned while the contact section enters underneath it. */
  height: 900svh;
  margin-bottom: -100svh;
}

.is-certificates-visible .particle-scene {
  opacity: var(--certificate-webgl-opacity, 1) !important;
}

.certificates-constellation__stage {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100svh;
  overflow: hidden;
  opacity: var(--scene-opacity, 0);
}

.certificates-constellation[data-contact="true"] .certificates-constellation__stage {
  position: fixed;
  inset: 0;
  pointer-events: none;
}

.certificates-constellation__canvas,
.certificates-constellation__nodes {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.certificates-constellation__canvas {
  display: block;
  pointer-events: none;
}

.certificates-constellation__heading {
  position: absolute;
  z-index: 2;
  top: 5.92593vh;
  left: 4.16667vw;
  margin: 0;
  color: var(--muted);
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: var(--heading-opacity, 1);
}

.certificates-constellation[data-contact="true"] .certificate-node,
.certificates-constellation[data-contact="true"] .certificate-node * {
  pointer-events: none;
}

/* The contact headline stays still; the original email particle hover belongs to the services button. */
.contacts-module-scss-module__UjTc3a__copy {
  position: relative;
  width: min(72vw, 760px);
  gap: clamp(15px, 2.3vh, 23px);
}

.contact-headline {
  max-width: 22ch;
  margin: 0;
  color: var(--foreground);
  font-size: clamp(29px, 4.7vw, 62px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -.045em;
  text-align: center;
  text-wrap: balance;
}

.contact-services-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  gap: .5em;
  margin: clamp(3px, .8vh, 9px) auto 0;
  padding: .25rem 0 .35rem;
  border: 0;
  border-bottom: 1px solid rgba(240, 242, 240, .55);
  background: transparent;
  color: var(--foreground);
  text-decoration: none;
  cursor: pointer;
  transition: border-color .25s ease, color .25s ease;
}

.contact-services-button:hover,
.contact-services-button:focus-visible {
  border-color: var(--foreground);
  color: #fffdf7;
}

.contact-services-button__arrow { font-size: 1.2rem; line-height: 1; }

.contact-services-button .contacts-module-scss-module__UjTc3a__email {
  font-size: clamp(15px, 1.2vw, 19px) !important;
  line-height: 1.2;
  white-space: nowrap;
}

.contact-reach {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: .65rem;
  margin: clamp(7px, 1.5vh, 15px) 0 0;
}

.contact-reach__label {
  color: var(--muted);
  font-size: clamp(12px, .9vw, 15px);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.contact-reach__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(18px, 2.4vw, 34px);
}

.contact-reach__links a {
  display: inline-flex;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(240, 242, 240, .45);
  color: var(--foreground);
  font-size: clamp(14px, 1.1vw, 18px);
  text-decoration: none;
}

.contact-reach__links a:hover,
.contact-reach__links a:focus-visible { border-color: var(--foreground); }

.contacts-module-scss-module__UjTc3a__copy .contact-github {
  position: absolute;
  top: calc(100% + clamp(72px, 11vh, 100px));
  left: 0;
  width: 100%;
  margin: 0;
  color: var(--muted);
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.4;
}

.contact-github a {
  color: var(--foreground);
  text-decoration: underline;
  text-decoration-color: rgba(240, 242, 240, .55);
  text-underline-offset: .25em;
  transition: color .3s ease-in-out;
}

.contact-github a:hover,
.contact-github a:focus-visible {
  color: var(--muted);
}

body.is-certificates-visible .contacts-module-scss-module__UjTc3a__kicker {
  opacity: var(--contact-kicker-opacity, 0);
}
body.is-certificates-visible .contact-headline {
  opacity: var(--contact-headline-opacity, 0);
  transform: translateY(calc(12px * (1 - var(--contact-headline-opacity, 0))));
}
body.is-certificates-visible .contact-services-button[data-entered="true"] {
  opacity: var(--contact-action-opacity, 0);
  transform: translateY(calc(12px * (1 - var(--contact-action-opacity, 0))));
}
body.is-certificates-visible .contact-reach,
body.is-certificates-visible .contact-github {
  opacity: var(--contact-links-opacity, 0);
  transform: translateY(calc(10px * (1 - var(--contact-links-opacity, 0))));
}

@media (max-width: 650px) {
  .contacts-module-scss-module__UjTc3a__copy { width: min(78vw, 520px); }
  .contact-headline { font-size: clamp(29px, 7vw, 42px); }
  .contact-github { top: calc(100% + 64px); }
}

@media (prefers-reduced-motion: reduce) {
  body.is-certificates-visible .contacts-module-scss-module__UjTc3a__kicker,
  body.is-certificates-visible .contact-headline,
  body.is-certificates-visible .contact-services-button[data-entered="true"],
  body.is-certificates-visible .contact-reach,
  body.is-certificates-visible .contact-github { opacity: 1; transform: none; }
}

/* The original footer link still controls the tooltip and hover state. */
.spy-monogram {
  display: block;
  position: relative;
  flex: 0 0 auto;
  width: clamp(28px, 3.4vw, 48px);
  height: clamp(18px, 2.2vw, 31px);
}

.spy-monogram::before,
.spy-monogram::after {
  content: "";
  position: absolute;
  inset: 0;
  -webkit-mask: url('/assets/spy-monogram.png') center / 140% auto no-repeat;
  mask: url('/assets/spy-monogram.png') center / 140% auto no-repeat;
  -webkit-mask-mode: luminance;
  mask-mode: luminance;
  transition: opacity .3s ease-in-out;
}

.spy-monogram::before {
  background: linear-gradient(140deg, #f7f7f7, #a9abae 55%, #e7e7e7);
  opacity: .55;
}

.spy-monogram::after {
  background: #f4f0e8;
  opacity: 0;
}

.monogram-module-scss-module__K070Ja__wrap[data-hovered="true"] .spy-monogram::before {
  opacity: 0;
}

.monogram-module-scss-module__K070Ja__wrap[data-hovered="true"] .spy-monogram::after {
  opacity: 1;
}

@media (orientation: portrait) {
  .spy-monogram {
    width: 15vw;
    height: 10vw;
  }
}

.certificates-constellation__nodes {
  z-index: 1;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
  opacity: var(--nodes-opacity, 0);
}

.certificate-node {
  position: absolute;
  width: 0;
  height: 0;
}

.certificate-node__point {
  position: absolute;
  z-index: 2;
  top: -15px;
  left: -15px;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  pointer-events: auto;
}

.certificate-node__point::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--foreground);
  box-shadow: 0 0 7px #fff, 0 0 17px #fff6;
  transform: translate(-50%, -50%);
  transition: width .45s ease, height .45s ease, box-shadow .45s ease;
}

.certificate-node[data-active="true"] .certificate-node__point::before,
.certificate-node__point:hover::before,
.certificate-node__point:focus-visible::before {
  width: 10px;
  height: 10px;
  box-shadow: 0 0 10px #fff, 0 0 30px #fffa;
}

.certificate-node__point:focus-visible {
  outline: 1px solid var(--foreground);
  outline-offset: 3px;
}

.certificate-node__number {
  position: absolute;
  top: 9px;
  left: 11px;
  color: var(--muted);
  opacity: .6;
  pointer-events: none;
}

.certificate-node[data-active="true"] .certificate-node__number { opacity: 0; }

.certificate-node__card {
  position: absolute;
  top: -4rem;
  left: 5vw;
  width: min(37vw, 460px);
  padding: 1.25rem 1.4rem 1.5rem;
  border-top: 1px solid #f0f2f0ad;
  background: linear-gradient(180deg, #222124ee, #222124c9);
  backdrop-filter: blur(10px);
  opacity: 0;
  visibility: hidden;
  transform: rotateY(-12deg);
  transform-origin: left center;
  transition: opacity .45s ease, transform .6s ease, visibility .45s;
  pointer-events: auto;
}

.certificate-node[data-side="left"] .certificate-node__card {
  left: auto;
  right: 5vw;
  transform-origin: right center;
  transform: rotateY(12deg);
}

.certificate-node__card::before {
  content: "";
  position: absolute;
  top: 4rem;
  left: -5vw;
  width: 5vw;
  height: 1px;
  background: #f0f2f0c7;
  box-shadow: 0 0 8px #fff8;
}

.certificate-node[data-side="left"] .certificate-node__card::before {
  left: auto;
  right: -5vw;
}

.certificate-node[data-active="true"] .certificate-node__card,
.certificate-node[data-active="true"][data-side="left"] .certificate-node__card {
  opacity: var(--cards-opacity, 1);
  visibility: visible;
  transform: rotateY(0);
}

.certificate-node__issuer,
.certificate-node__id {
  margin: 0;
  color: var(--muted);
  font-size: clamp(12px, .95vw, 16px);
  line-height: 1.4;
}

.certificate-node__issuer {
  margin-bottom: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.certificate-node__title {
  margin: 0 0 1rem;
  font-size: clamp(20px, 1.8vw, 34px);
  font-weight: 400;
  line-height: 1.08;
}

.certificate-node__id { overflow-wrap: anywhere; }

.certificate-node__link {
  display: inline-block;
  margin-top: 1rem;
  border-bottom: 1px solid currentColor;
  color: var(--foreground);
  font-size: clamp(12px, .95vw, 16px);
  line-height: 1.5;
  text-decoration: none;
}

.certificate-node__link:hover,
.certificate-node__link:focus-visible { opacity: .65; }

@media (orientation: portrait) {
  .certificate-node__card,
  .certificate-node[data-side="left"] .certificate-node__card {
    position: fixed;
    top: auto;
    right: auto;
    bottom: 8svh;
    left: 8vw;
    width: 84vw;
    max-height: 38svh;
    overflow: auto;
  }
  .certificate-node__card::before { display: none; }
  .certificate-node__number { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .certificate-node__point::before,
  .certificate-node__card { transition: none; }
  .certificate-node__card { transform: none !important; }
}

/* Case studies replace the reference projects' content. */
html.services-page .project-content-module-scss-module__j3tYQq__intro {
  width: min(90vw, 1200px);
  max-width: none;
  padding-bottom: 0;
}

html.services-page .project-content-module-scss-module__j3tYQq__titleRow { margin-bottom: 0; }
html.services-page .project-content-module-scss-module__j3tYQq__meta,
html.services-page .project-content-module-scss-module__j3tYQq__heroWrap,
html.services-page .project-content-module-scss-module__j3tYQq__contactsWrap { display: none !important; }
html.services-page .project-content-module-scss-module__j3tYQq__body {
  width: 100%;
  max-width: none;
  padding: 0;
}
html.services-page .project-content-module-scss-module__j3tYQq__body > :not(.services-showcase) { display: none !important; }

.services-showcase {
  color: var(--foreground);
  padding: clamp(28px, 4.5svh, 44px) 0 clamp(80px, 10vw, 130px);
}
.services-showcase__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(14px, 2vw, 28px);
  width: min(90vw, 1200px);
  margin: 0 auto;
}
.services-showcase__card {
  min-width: 0;
  min-height: 870px;
  perspective: 1400px;
}
.services-showcase__flipper {
  display: grid;
  min-height: inherit;
  transform-style: preserve-3d;
  transition: transform .72s cubic-bezier(.22, .75, .2, 1);
}
.services-showcase__card[data-flipped="true"] .services-showcase__flipper { transform: rotateY(180deg); }
.services-showcase__face {
  display: flex;
  grid-area: 1 / 1;
  flex-direction: column;
  min-width: 0;
  padding: clamp(20px, 2vw, 30px);
  border-top: 1px solid rgba(240, 242, 240, .7);
  border-bottom: 1px solid rgba(240, 242, 240, .35);
  background: rgba(32, 32, 35, .9);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.services-showcase__face--back { transform: rotateY(180deg); }
.services-showcase__card h2 {
  min-height: 2.15em;
  margin: 0 0 16px;
  font-size: clamp(28px, 2.7vw, 42px);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -.045em;
}
.services-showcase__lead {
  min-height: 3.9em;
  margin: 0 0 26px;
  font-size: clamp(18px, 1.45vw, 22px);
  line-height: 1.3;
}
.services-showcase__facts {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
}
.services-showcase__facts li {
  color: #d2d4d1;
  font-size: 13px;
  line-height: 1.25;
}
.services-showcase__card-section {
  padding-top: 21px;
  border-top: 1px solid rgba(240, 242, 240, .26);
}
.services-showcase__card-section h3 {
  margin: 0 0 16px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.services-showcase__included { margin: 0; padding-left: 1.1em; }
.services-showcase__included li,
.services-showcase__expect p {
  font-size: clamp(15px, 1.25vw, 18px);
  line-height: 1.4;
}
.services-showcase__included li + li { margin-top: 10px; }
.services-showcase__included li::marker { color: var(--muted); }
.services-showcase__expect { margin-top: 28px; }
.services-showcase__expect p { margin: 0; }
.services-showcase__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 30px;
}
.services-showcase__actions a,
.services-showcase__actions button {
  color: var(--foreground);
  font: inherit;
  font-size: 14px;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}
.services-showcase__actions a,
.services-showcase__actions button { padding: 9px 0; border: 0; border-bottom: 1px solid var(--foreground); background: transparent; }
.services-showcase__actions a:hover,
.services-showcase__actions a:focus-visible,
.services-showcase__actions button:hover,
.services-showcase__actions button:focus-visible { opacity: .65; }

.services-showcase__booking-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 24px;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.services-showcase__back {
  padding: 0;
  border: 0;
  background: none;
  color: var(--foreground);
  font: inherit;
  cursor: pointer;
}
.services-showcase__booking-intro { margin: 0 0 25px; color: #c9cbc8; font-size: 15px; line-height: 1.45; }
.services-showcase__form { display: flex; flex-direction: column; gap: 16px; }
.services-showcase__form label { display: block; font-size: 13px; line-height: 1.3; }
.services-showcase__optional { color: var(--muted); font-size: 11px; }
.services-showcase__form input,
.services-showcase__form select {
  width: 100%;
  min-height: 40px;
  margin-top: 7px;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid rgba(240, 242, 240, .38);
  border-radius: 0;
  outline: none;
  background: transparent;
  color: var(--foreground);
  color-scheme: dark;
  font: inherit;
  font-size: 15px;
}
.services-showcase__form input:focus,
.services-showcase__form select:focus { border-bottom-color: var(--foreground); }
.services-showcase__form select option { color: #202023; background: #fff; }
.services-showcase__form select:disabled { opacity: .65; }
.services-showcase__form input:-webkit-autofill,
.services-showcase__form input:-webkit-autofill:hover,
.services-showcase__form input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--foreground);
  -webkit-box-shadow: 0 0 0 1000px #202023 inset;
  transition: background-color 9999s ease-out;
}
.services-showcase__date-time { display: grid; grid-template-columns: 1fr; gap: 16px; }
.services-showcase__honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.services-showcase__time-note { margin: -5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.services-showcase__form-error { margin: 0; color: #f2b9ad; font-size: 13px; line-height: 1.4; }
.services-showcase__form-error a { color: inherit; text-underline-offset: 3px; }
.services-showcase__submit {
  align-self: flex-start;
  margin-top: 4px;
  padding: 9px 0;
  border: 0;
  border-bottom: 1px solid var(--foreground);
  background: transparent;
  color: var(--foreground);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.services-showcase__submit:disabled { opacity: .5; cursor: wait; }
.services-showcase__submit:hover:not(:disabled),
.services-showcase__back:hover { opacity: .65; }
.services-booking-notice {
  position: fixed;
  z-index: 1001;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(0, 0, 0, .75);
  backdrop-filter: blur(8px);
}
.services-booking-notice[hidden] { display: none; }
html.services-booking-notice-open .custom-cursor-module-scss-module__JG2xJG__cursor {
  z-index: 1002;
}
.services-booking-notice__panel {
  width: min(100%, 460px);
  padding: clamp(28px, 4vw, 44px);
  border-top: 1px solid rgba(240, 242, 240, .27);
  background: #202023;
  color: var(--foreground);
  box-shadow: 0 16px 60px rgba(0, 0, 0, .45);
}
.services-booking-notice__title {
  margin: 0 0 14px;
  font-size: clamp(24px, 2.4vw, 30px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -.03em;
}
.services-booking-notice__text {
  margin: 0 0 26px;
  color: #b8bab8;
  font-size: clamp(15px, 1.2vw, 17px);
  line-height: 1.5;
}
.services-booking-notice__help {
  margin: 0;
  padding-top: 18px;
  border-top: 1px solid rgba(240, 242, 240, .27);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}
.services-booking-notice__help a {
  color: var(--foreground);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
.services-booking-notice__help a:hover,
.services-booking-notice__help a:focus-visible { opacity: .65; }
.services-booking-notice__close {
  margin-top: 28px;
  padding: 0 0 3px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: none;
  color: var(--foreground);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.services-booking-notice__close:hover,
.services-booking-notice__close:focus-visible { opacity: .65; }

.services-report-overlay {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: block;
  padding: clamp(20px, 3vw, 48px) 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: rgba(8, 8, 10, .86);
  scrollbar-color: #777 transparent;
  scrollbar-width: thin;
}
.services-report-overlay[hidden] { display: none !important; }
html.services-report-open { overflow: hidden !important; }
html.services-report-open .custom-cursor-module-scss-module__JG2xJG__cursor {
  z-index: 1001;
}
.services-report {
  width: min(794px, calc(100vw - 48px));
  margin: 0 auto;
  color: var(--foreground);
  background: #202023;
  box-shadow: 0 16px 60px rgba(0, 0, 0, .45);
}
.services-report__sheet {
  padding: clamp(28px, 4vw, 54px) clamp(28px, 4vw, 54px) 0;
}
.services-report__content {
  display: block;
}
.services-report__first-content {
  margin-top: clamp(28px, 4vw, 52px);
  padding-top: clamp(28px, 4vw, 52px);
  border-top: 1px solid rgba(240, 242, 240, .27);
}
.services-report__first-content:empty { display: none; }
.services-report__first-content .services-report__chapter { padding: 0; border: 0; }
.services-report__top {
  display: flex;
  justify-content: space-between;
  align-items: start;
  flex-wrap: wrap;
  gap: 20px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(240, 242, 240, .27);
}
.services-report__top > span,
.services-report__summary-label,
.services-report__content h2 {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.services-report__top > span > span:first-child { padding: 0 .5em; }
.services-report__top-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: clamp(16px, 3vw, 42px);
  margin-left: auto;
}
.services-report__switch {
  padding: 0 0 3px;
  border: 0;
  border-bottom: 1px solid currentColor;
  color: var(--foreground);
  background: transparent;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.services-report__switch[hidden] { display: none !important; }
.services-report__switch:hover,
.services-report__switch:focus-visible { opacity: .65; }
.services-report__close {
  flex: none;
  padding: 0;
  border: 0;
  color: var(--foreground);
  background: transparent;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.services-report__close:hover,
.services-report__close:focus-visible { opacity: .65; }
.services-report__title {
  margin: clamp(26px, 3.5vw, 48px) 0 12px;
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.035em;
}
.services-report__meta {
  margin: 0 0 clamp(38px, 5vw, 70px);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}
.services-report__meta strong { color: #c7c9c6; font-weight: 400; }
.services-report__overview {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 74px);
  align-items: start;
  margin-bottom: 0;
}
.services-report__summary-label { margin: 0 0 17px; }
.services-report__summary {
  max-width: 31ch;
  margin: 0;
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.42;
}
.services-report .table-scroll { max-width: 100%; overflow-x: auto; }
.services-report table { width: 100%; border-collapse: collapse; font-size: 12px; line-height: 1.4; }
.services-report th,
.services-report td {
  padding: 13px 10px 13px 0;
  border-bottom: 1px solid rgba(240, 242, 240, .24);
  text-align: left;
  vertical-align: top;
}
.services-report th {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.services-report__chapter {
  display: block;
  padding: 0;
}
.services-report__content .services-report__chapter {
  margin-top: 30px;
  padding: 30px clamp(28px, 4vw, 54px) 0;
  border-top: 1px solid rgba(240, 242, 240, .27);
}
.services-report__content .services-report__chapter:last-child {
  padding-bottom: clamp(28px, 4vw, 54px);
}
.services-report__chapter h2 { margin: 0 0 24px; }
.services-report__chapter h2:not(:first-child) { margin-top: clamp(35px, 4vw, 60px); }
.services-report__chapter p,
.services-report__chapter li {
  max-width: 72ch;
  font-size: 14px;
  line-height: 1.55;
}
.services-report__chapter p { margin: 0 0 16px; }
.services-report__chapter ul,
.services-report__chapter ol { margin: 0 0 24px; padding-left: 1.25em; }
.services-report__chapter li + li { margin-top: 8px; }
.services-report__chapter strong { font-weight: 500; }
.services-report__chapter .table-scroll { margin: 22px 0 32px; }
.services-report__chapter pre {
  max-width: 100%;
  margin: 20px 0 30px;
  padding: 20px;
  overflow-x: auto;
  background: rgba(10, 10, 12, .34);
  font: 13px/1.5 ui-monospace, Consolas, monospace;
}

@media (max-width: 860px) {
  .services-showcase__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .services-showcase__card { min-height: 870px; }
}
@media (max-width: 700px) {
  .services-showcase__grid { grid-template-columns: 1fr; }
  .services-showcase__card { min-height: 0; }
  .services-showcase__face { padding: 22px; }
  .services-showcase__card h2,
  .services-showcase__lead { min-height: 0; }
  .services-showcase__card h2 { font-size: clamp(32px, 8vw, 42px); }
  .services-showcase__lead { font-size: 19px; }
  .services-report__overview { grid-template-columns: 1fr; }
  .services-report__summary { max-width: 100%; }
  .services-report__top { align-items: start; }
  .services-report__close { white-space: nowrap; }
  .services-report { width: calc(100vw - 24px); }
  .services-report__sheet { padding: 24px 24px 0; }
  .services-report__content .services-report__chapter { padding-left: 24px; padding-right: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .services-showcase__flipper { transition-duration: .01ms; }
}

/* Device-fit and touch performance refinements. */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

@media (max-width: 1024px) {
  .t-16, h5 { font-size: clamp(12px, 1.7vw, 16px); line-height: 1.35; }
  .t-20, h4 { font-size: clamp(15px, 2vw, 20px); line-height: 1.3; }
  .t-30, h3 { font-size: clamp(20px, 3vw, 30px); line-height: 1.2; }
  .t-60, h1 { font-size: clamp(34px, 6vw, 60px); line-height: 1.08; }
  .t-85 { font-size: clamp(42px, 8vw, 76px); line-height: 1.08; }
  .services-showcase__grid { width: min(92vw, 840px); }
  .services-showcase__card { min-height: 820px; }
  .services-showcase__card h2 { font-size: clamp(27px, 3.2vw, 36px); }
  .services-showcase__included li,
  .services-showcase__expect p { font-size: 16px; }
}

@media (max-width: 700px) {
  body { overflow-x: clip; }
  .t-16, h5 { font-size: 14px; line-height: 1.4; }
  .t-20, h4 { font-size: 17px; line-height: 1.35; }
  .t-30, h3 { font-size: clamp(21px, 5.4vw, 28px); line-height: 1.2; }
  .t-60, h1 { font-size: clamp(34px, 9vw, 48px); line-height: 1.08; }
  .t-85 { font-size: clamp(40px, 11vw, 60px); line-height: 1.05; }
  .services-showcase { padding-top: 18px; padding-bottom: max(64px, env(safe-area-inset-bottom)); }
  .services-showcase__grid { width: min(100% - 32px, 520px); gap: 24px; }
  .services-showcase__card { min-height: 0; }
  .services-showcase__flipper { min-height: 0; }
  .services-showcase__flipper { min-height: 0; }
  .services-showcase__face { padding: 22px 18px; }
  .services-showcase__form input,
  .services-showcase__form select { min-height: 44px; font-size: 16px; }
  .services-showcase__actions a,
  .services-showcase__actions button,
  .services-showcase__submit,
  .services-showcase__back { min-height: 44px; }
  .services-report__modal { padding: max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom)); }
  .services-report__top { gap: 12px; }
  .services-report__top-actions { gap: 14px; }
  .services-report__sheet { padding-left: 18px; padding-right: 18px; }
  .services-report__content .services-report__chapter { padding-left: 18px; padding-right: 18px; }
  .services-report__chapter pre { font-size: 12px; }
  .contacts-module-scss-module__UjTc3a__copy {
    width: min(calc(100vw - 40px), 520px);
    padding-bottom: max(110px, env(safe-area-inset-bottom));
  }
  .contacts-module-scss-module__UjTc3a__copy .contact-github {
    position: relative;
    top: auto;
    left: auto;
    margin-top: 18px;
  }
  .career-timeline__stage { height: 100svh; height: 100dvh; }
  .certificate-constellation__stage { height: 100svh; height: 100dvh; }
}

@media (pointer: coarse), (hover: none) {
  .noise-layer-module-scss-module__btUbBG__noiseLayer {
    width: 150%;
    height: 150%;
    top: -25%;
    left: -25%;
    animation: none;
    transform: none;
    opacity: .055;
  }
  .selected-work-preview { transition-delay: 0s !important; }
  .compliance-report-modal,
  .services-report-overlay { backdrop-filter: none; -webkit-backdrop-filter: none; }
  .certificate-node__card { backdrop-filter: none; -webkit-backdrop-filter: none; }
  .custom-cursor-module-scss-module__JG2xJG__cursor { display: none !important; }
  .particle-disintegrate-module-scss-module__n_XUIq__canvas { display: none !important; }
  .blur-anim,
  .world-module-scss-module__0gp3fG__ring,
  .italy-module-scss-module__XxyMVG__italy__label {
    filter: none !important;
    -webkit-filter: none !important;
  }
  .certificate-node__point::before,
  .certificate-node[data-active="true"] .certificate-node__point::before,
  .certificate-node__point:hover::before,
  .certificate-node__point:focus-visible::before { box-shadow: none !important; }
  .contact-services-button:hover { border-color: rgba(240, 242, 240, .55); color: var(--foreground); }
  .contact-reach__links a:hover { border-color: rgba(240, 242, 240, .45); }
  .contact-github a:hover { color: var(--foreground); }
  .certificate-node__point:hover::before { width: 5px; height: 5px; }
  .certificate-node__link:hover,
  .services-showcase__actions a:hover,
  .services-showcase__actions button:hover,
  .services-showcase__submit:hover:not(:disabled),
  .services-showcase__back:hover,
  .services-report__switch:hover,
  .services-report__close:hover { opacity: 1; }
  .compliance-case__report-button:hover { color: var(--foreground); }
  .compliance-report-modal__close:hover {
    border-color: rgba(238, 237, 233, .17);
    background: rgba(255, 255, 255, .035);
    color: #eeede9;
  }
  .compliance-report-modal__controls button:hover { background: transparent; }
}

@media (max-width: 1024px) {
  .hero-module-scss-module__1liNjW__hero,
  .world-module-scss-module__0gp3fG__world,
  .italy-module-scss-module__XxyMVG__italy,
  .career-timeline__stage,
  .certificate-constellation__stage {
    height: 100svh;
    height: 100dvh;
  }
}

@media (max-width: 1024px) and (orientation: portrait) {
  .hero-module-scss-module__1liNjW__hero {
    box-sizing: border-box;
    width: 100%;
    padding-top: max(5vw, env(safe-area-inset-top));
    padding-right: max(5vw, env(safe-area-inset-right));
    padding-bottom: max(5vw, env(safe-area-inset-bottom));
    padding-left: max(5vw, env(safe-area-inset-left));
  }

  .world-module-scss-module__0gp3fG__ring {
    width: min(55.2svh, 92vw);
    height: min(55.2svh, 92vw);
  }
}

@media (max-width: 1024px) and (orientation: landscape) {
  .hero-module-scss-module__1liNjW__hero {
    box-sizing: border-box;
    width: 100%;
    padding-left: max(5vw, env(safe-area-inset-left));
    padding-right: max(5vw, env(safe-area-inset-right));
  }

  .hero-module-scss-module__1liNjW__copy .t-85 { font-size: clamp(28px, 5vw, 44px); }
  .hero-module-scss-module__1liNjW__copy .t-30 { font-size: clamp(16px, 2.7vw, 22px); }
}

@media (prefers-reduced-motion: reduce) {
  .world-module-scss-module__0gp3fG__ring { animation: none !important; }
  .blur-anim { filter: none !important; -webkit-filter: none !important; }
}

html:is(.compliance-page, .health-check-page, .api-review-page, .web-assessment-page) .project-content-module-scss-module__j3tYQq__intro {
  width: min(90vw, 1200px);
  max-width: none;
  padding-bottom: 0;
}

html:is(.compliance-page, .health-check-page, .api-review-page, .web-assessment-page) .project-content-module-scss-module__j3tYQq__titleRow {
  margin-bottom: 0;
}

html:is(.compliance-page, .health-check-page, .api-review-page, .web-assessment-page) .project-content-module-scss-module__j3tYQq__meta,
html:is(.compliance-page, .health-check-page, .api-review-page, .web-assessment-page) .project-content-module-scss-module__j3tYQq__heroWrap {
  display: none !important;
}

html:is(.compliance-page, .health-check-page, .api-review-page, .web-assessment-page) .project-content-module-scss-module__j3tYQq__body {
  width: min(90vw, 1200px);
  max-width: none;
  padding: clamp(28px, 3vw, 48px) 0 clamp(60px, 8vw, 130px);
}

html:is(.compliance-page, .health-check-page, .api-review-page, .web-assessment-page) .project-content-module-scss-module__j3tYQq__body > :not(.compliance-case) {
  display: none !important;
}

.compliance-case { color: var(--foreground); }
.compliance-case__eyebrow,
.compliance-case__index {
  display: block;
  color: var(--muted);
  font-size: clamp(11px, .85vw, 15px);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.compliance-case__intro {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 4vw;
  padding: 0 0 clamp(40px, 6vw, 90px);
  border-bottom: 1px solid #f0f2f048;
}

.compliance-case__note {
  max-width: 63ch;
  margin: 0;
  color: #b8bab8;
  font-size: clamp(14px, 1.25vw, 19px);
  line-height: 1.5;
}

.compliance-case__lead {
  max-width: 960px;
  margin: clamp(65px, 9vw, 145px) 0 clamp(55px, 7vw, 105px);
}

.compliance-case__lead h2 {
  max-width: 17ch;
  margin: 1.5rem 0 2rem;
  font-size: clamp(42px, 6vw, 92px);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.05em;
}

html.health-check-page .compliance-case__lead h2 {
  max-width: 21ch;
  font-size: clamp(40px, 5.3vw, 80px);
}

.compliance-case__lead > p {
  max-width: 53ch;
  margin: 0 0 0 auto;
  font-size: clamp(18px, 2vw, 28px);
  line-height: 1.28;
}

.compliance-case__metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  padding: 2rem 0 3rem;
  border-top: 1px solid #f0f2f077;
  border-bottom: 1px solid #f0f2f048;
}

.compliance-case__metrics > div { display: flex; flex-direction: column; gap: .5rem; }
.compliance-case__metrics strong { font-size: clamp(36px, 4.5vw, 70px); font-weight: 400; line-height: 1; }
.compliance-case__metrics span { color: var(--muted); font-size: clamp(12px, 1vw, 16px); }

.compliance-case__chapters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: clamp(35px, 7vw, 110px);
  margin: clamp(65px, 9vw, 145px) 0;
}

.compliance-case__chapter {
  min-height: 250px;
  padding: 1.2rem 0 2.5rem;
  border-top: 1px solid #f0f2f075;
}

.compliance-case__chapter p {
  max-width: 34ch;
  margin: 2rem 0 0;
  font-size: clamp(20px, 2.05vw, 31px);
  line-height: 1.25;
}

.compliance-case__chapter--outcome p { color: #fff; }

.compliance-case__methods {
  padding: clamp(35px, 5vw, 75px) 0 clamp(65px, 8vw, 125px);
  border-top: 1px solid #f0f2f075;
}

.compliance-case__methods p {
  max-width: 50ch;
  margin: 1.5rem 0 2rem;
  font-size: clamp(19px, 2vw, 30px);
  line-height: 1.28;
}

.compliance-case__methods ul {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.compliance-case__methods li {
  padding: .55rem .8rem;
  border: 1px solid #f0f2f06a;
  color: #d6d7d4;
  font-size: clamp(12px, 1vw, 16px);
}

.compliance-case__report {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 2rem;
  padding: clamp(35px, 5vw, 75px) 0;
  border-top: 1px solid #f0f2f075;
  border-bottom: 1px solid #f0f2f075;
}

.compliance-case__report h2 { margin: 1.3rem 0 1rem; font-size: clamp(32px, 4vw, 62px); font-weight: 400; line-height: 1; }
.compliance-case__report p { max-width: 50ch; margin: 0; color: var(--muted); font-size: clamp(14px, 1.2vw, 19px); line-height: 1.4; }
.compliance-case__report-button {
  flex: none;
  padding: .8rem 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--foreground);
  font: inherit;
  font-size: clamp(15px, 1.25vw, 20px);
  cursor: pointer;
}
.compliance-case__report-button:hover,
.compliance-case__report-button:focus-visible { color: #bcbdb9; }

.compliance-report-modal {
  position: fixed;
  z-index: 9999;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(12px, 3vw, 36px);
  background: rgba(4, 5, 7, .78);
  backdrop-filter: blur(9px) saturate(.8);
  -webkit-backdrop-filter: blur(9px) saturate(.8);
  color: #eeede9;
}
.compliance-report-modal[hidden] { display: none !important; }
.compliance-report-modal__viewer {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(1040px, 100%);
  height: min(850px, calc(100dvh - clamp(24px, 6vw, 72px)));
  min-height: 0;
  overflow: hidden;
  border: 1px solid rgba(238, 237, 233, .18);
  border-radius: 12px;
  background: rgba(32, 32, 35, .94);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .62), inset 0 1px rgba(255, 255, 255, .05);
}
.compliance-report-modal__bar {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  flex: none;
  gap: 12px;
  min-height: 58px;
  padding: 0 18px;
  border-bottom: 1px solid rgba(238, 237, 233, .12);
  background: rgba(255, 255, 255, .025);
}
.compliance-report-modal__close {
  flex: none;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(238, 237, 233, .17);
  border-radius: 8px;
  background: rgba(255, 255, 255, .035);
  color: #eeede9;
  font: 27px/1 Arial, sans-serif;
  opacity: 1;
  visibility: visible;
  cursor: pointer;
}
.compliance-report-modal__close:hover,
.compliance-report-modal__close:focus-visible {
  border-color: rgba(238, 237, 233, .5);
  background: rgba(255, 255, 255, .11);
  color: #fffefa;
  opacity: 1;
  visibility: visible;
}
.compliance-report-modal__title {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: #d4d3d0;
  font-size: clamp(13px, 1.1vw, 15px);
  font-weight: 500;
}
.compliance-report-modal__title span { padding: 0 .35em; color: #787977; }
.compliance-report-modal__viewport {
  flex: 1;
  min-height: 0;
  width: 100%;
  background: #202023;
}
.compliance-report-modal iframe { display: block; width: 100%; height: 100%; border: 0; background: #202023; }
.compliance-report-modal__controls {
  position: absolute;
  z-index: 3;
  bottom: 16px;
  left: 50%;
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 42px;
  padding: 3px 7px;
  border: 1px solid rgba(238, 237, 233, .17);
  border-radius: 999px;
  background: rgba(42, 42, 45, .92);
  color: #eeede9;
  box-shadow: 0 5px 25px #0008;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transform: translateX(-50%);
}
.compliance-report-modal__controls button {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font: 21px/1 Arial, sans-serif;
  cursor: pointer;
}
.compliance-report-modal__controls button:hover,
.compliance-report-modal__controls button:focus-visible { background: rgba(255, 255, 255, .12); }
.compliance-report-modal__controls button:disabled { opacity: .35; cursor: default; }
.compliance-report-modal__controls button:disabled:hover { background: transparent; }
.compliance-report-modal__page,
.compliance-report-modal__zoom-label { min-width: 48px; text-align: center; font-size: 12px; white-space: nowrap; }
.compliance-report-modal__divider { width: 1px; height: 20px; background: rgba(238, 237, 233, .2); }

@media (max-width: 650px) {
  .compliance-case__intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .compliance-case__lead h2 { font-size: clamp(40px, 11vw, 65px); }
  .compliance-case__lead > p { margin-left: 0; }
  .compliance-case__metrics { grid-template-columns: 1fr 1fr; }
  .compliance-case__chapters { grid-template-columns: 1fr; }
  .compliance-case__chapter { min-height: 0; }
  .compliance-case__report { flex-direction: column; align-items: start; }
  .compliance-report-modal__viewer { border-radius: 8px; }
  .compliance-report-modal__bar { min-height: 52px; padding: 0 10px; }
  .compliance-report-modal__controls { bottom: 10px; gap: 3px; }
}
