.scroll-scrub {
  --ss-progress: 0;
  position: relative;
  isolation: isolate;
  color: var(--ss-ink);
  background: var(--ss-bg);
}

.scroll-scrub__stage {
  position: sticky;
  top: 0;
  z-index: 0;
  width: 100%;
  height: 100dvh;
  overflow: hidden;
  background: var(--ss-bg);
}

.scroll-scrub__media,
.scroll-scrub__layer,
.scroll-scrub__picture,
.scroll-scrub__poster,
.scroll-scrub__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.scroll-scrub__media {
  z-index: 0;
}

.scroll-scrub__layer {
  margin: 0;
  overflow: hidden;
  opacity: 0;
  will-change: opacity;
}

.scroll-scrub__layer:first-child {
  opacity: 1;
}

.scroll-scrub__poster,
.scroll-scrub__video {
  display: block;
  object-fit: cover;
  object-position: var(--ss-object-position);
}

.scroll-scrub__poster {
  z-index: 0;
}

.scroll-scrub__video {
  z-index: 1;
}

.scroll-scrub__layer[data-video-painted="true"] .scroll-scrub__poster {
  visibility: hidden;
}

.scroll-scrub__progress {
  position: absolute;
  z-index: 5;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  background: color-mix(in srgb, var(--ss-ink) 14%, transparent);
  pointer-events: none;
}

.scroll-scrub__progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--ss-accent);
  transform: scaleX(var(--ss-progress));
  transform-origin: left center;
}

.scroll-scrub__route {
  position: absolute;
  z-index: 6;
  top: clamp(1rem, 3vw, 2rem);
  right: clamp(1rem, 4vw, 4rem);
  left: clamp(1rem, 4vw, 4rem);
  display: flex;
  justify-content: flex-end;
  gap: 0.25rem;
  pointer-events: auto;
}

.scroll-scrub__route-button {
  min-height: 2.75rem;
  padding: 0.65rem 0.9rem;
  border: 0;
  color: var(--ss-muted);
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.scroll-scrub__route-button:hover,
.scroll-scrub__route-button[aria-current="step"] {
  color: var(--ss-ink);
}

.scroll-scrub__route-button[aria-current="step"] {
  text-decoration: underline;
  text-decoration-color: var(--ss-accent);
  text-decoration-thickness: 0.15em;
  text-underline-offset: 0.3em;
}

.scroll-scrub__route-button:focus-visible {
  outline: 2px solid var(--ss-accent);
  outline-offset: 3px;
}

.scroll-scrub__story {
  position: relative;
  z-index: 3;
  margin-top: -100dvh;
  pointer-events: none;
}

.scroll-scrub__chapter,
.scroll-scrub__connector-band {
  position: relative;
}

.scroll-scrub__chapter-pin {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  min-height: 100dvh;
  padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 6vw, 6rem);
  pointer-events: none;
}

.scroll-scrub__chapter[data-align="right"] .scroll-scrub__chapter-pin {
  justify-content: flex-end;
}

.scroll-scrub__copy {
  position: relative;
  width: min(40rem, 48vw);
  pointer-events: auto;
}

.scroll-scrub__copy::before {
  position: absolute;
  z-index: -1;
  inset: -3rem -5rem;
  content: "";
  background: radial-gradient(
    ellipse at center,
    color-mix(in srgb, var(--ss-bg) 88%, transparent) 0%,
    color-mix(in srgb, var(--ss-bg) 58%, transparent) 52%,
    transparent 76%
  );
  pointer-events: none;
}

.scroll-scrub__kicker {
  max-width: 30ch;
  margin: 0 0 1rem;
  color: var(--ss-accent);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.scroll-scrub__title {
  max-width: 13ch;
  margin: 0;
  color: var(--ss-ink);
  font: inherit;
  font-size: clamp(2.75rem, 6vw, 6.75rem);
  font-weight: 700;
  line-height: 0.94;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.scroll-scrub__body {
  max-width: 42ch;
  margin: 1.5rem 0 0;
  color: var(--ss-muted);
  font-size: clamp(1rem, 1.35vw, 1.2rem);
  line-height: 1.55;
}

.scroll-scrub__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}

.scroll-scrub__tags li {
  padding: 0.45rem 0.7rem;
  border: 1px solid color-mix(in srgb, var(--ss-ink) 20%, transparent);
  color: var(--ss-ink);
  font-size: 0.82rem;
}

.scroll-scrub__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2rem;
}

@media (max-width: 860px) {
  .scroll-scrub__poster,
  .scroll-scrub__video {
    object-position: var(--ss-mobile-position);
  }

  .scroll-scrub__route {
    right: max(0.75rem, env(safe-area-inset-right));
    left: max(0.75rem, env(safe-area-inset-left));
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }

  .scroll-scrub__route-button {
    flex: 0 0 auto;
  }

  .scroll-scrub__chapter-pin,
  .scroll-scrub__chapter[data-align="right"] .scroll-scrub__chapter-pin {
    align-items: flex-end;
    justify-content: flex-start;
    padding: 6.5rem max(1.25rem, env(safe-area-inset-right))
      calc(4rem + env(safe-area-inset-bottom))
      max(1.25rem, env(safe-area-inset-left));
  }

  .scroll-scrub__copy {
    width: min(100%, 36rem);
  }

  .scroll-scrub__copy::before {
    inset: -3rem -2rem;
    background: linear-gradient(
      to top,
      var(--ss-bg) 0%,
      color-mix(in srgb, var(--ss-bg) 82%, transparent) 58%,
      transparent 100%
    );
  }

  .scroll-scrub__title {
    max-width: 14ch;
    font-size: clamp(2.3rem, 11vw, 4.5rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-scrub__chapter {
    min-height: 100dvh !important;
  }

  .scroll-scrub__connector-band {
    display: none;
  }

  .scroll-scrub__progress span {
    transition: none;
  }
}

:root { --ink:#101112; --graphite:#25282A; --ivory:#F2EFE8; --bronze:#A38B6D; --muted:#BEBBB5; --line:rgba(242,239,232,.19); --gutter:clamp(1.25rem,6vw,7rem); --serif:"Cormorant Garamond",Georgia,serif; --sans:"Manrope",Arial,sans-serif; }
* { box-sizing:border-box; }
html { background:var(--ink); color:var(--ivory); scroll-behavior:smooth; scroll-padding-top:100px; color-scheme:dark; }
body { margin:0; min-width:320px; background:var(--ink); color:var(--ivory); font-family:var(--sans); font-size:15px; line-height:1.7; -webkit-font-smoothing:antialiased; }
body,button,a { -webkit-tap-highlight-color:transparent; }
button,input { font:inherit; }
button,a { touch-action:manipulation; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
figure,p,h1,h2,h3 { margin:0; }
h1,h2,h3 { font-weight:400; }
h2 { font-family:var(--serif); font-size:clamp(3.5rem,7.2vw,7.5rem); line-height:.98; letter-spacing:-.035em; }
em { font-family:var(--serif); font-weight:400; }
::selection { background:var(--bronze); color:var(--ink); }
:focus-visible { outline:2px solid var(--bronze); outline-offset:7px; }
.skip-link { position:fixed; top:10px; left:15px; z-index:200; padding:12px 22px; background:var(--ivory); color:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.section-pad { padding:clamp(80px,10vw,160px) var(--gutter); }
.eyebrow { font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; line-height:1.6; }
.site-header { position:fixed; inset:0 0 auto; z-index:50; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:26px var(--gutter); background:linear-gradient(180deg,rgba(16,17,18,.75),transparent); transition:background .3s,padding .3s; }
.site-header.is-scrolled,.site-header.menu-open { padding-top:15px; padding-bottom:15px; background:rgba(16,17,18,.96); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:15px; line-height:1.25; flex-shrink:0; }
.brand img { width:47px; height:47px; object-fit:contain; }
.brand strong { display:block; font-size:12px; letter-spacing:.14em; font-weight:500; }
.brand small { display:block; margin-top:6px; font-size:9px; color:var(--muted); letter-spacing:.07em; }
.site-header nav { display:flex; align-items:center; gap:clamp(20px,3vw,48px); font-size:11px; }
.site-header nav>a { position:relative; min-height:44px; display:flex; align-items:center; }
.site-header nav>a:not(.nav-whatsapp)::after { content:""; position:absolute; bottom:7px; left:0; width:14px; height:1px; background:var(--bronze); transform:scaleX(0); transform-origin:left; transition:transform .2s; }
.site-header nav>a:hover::after { transform:scaleX(1); }
.nav-whatsapp { gap:25px; border-left:1px solid var(--line); padding-left:25px; }
.nav-whatsapp span:last-child { color:var(--bronze); font-size:22px; transition:transform .25s; }
.nav-whatsapp:hover span:last-child { transform:translate(3px,-3px); }
.menu-toggle { display:none; }
.hero { position:relative; min-height:max(760px,100svh); display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; }
.legal-film { position:relative; background:var(--graphite); overflow:hidden; }
.legal-film video { width:100%; height:100%; object-fit:cover; display:block; }
.hero>.legal-film { position:absolute; inset:0; z-index:-2; }
.hero>.legal-film video { object-position:50% 50%; }
.hero-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(16,17,18,.68),rgba(16,17,18,.13) 65%),linear-gradient(0deg,rgba(16,17,18,.94),transparent 80%); pointer-events:none; }
.hero-body { width:100%; max-width:1600px; margin:0 auto; padding:180px var(--gutter) 120px; }
.hero-body .eyebrow { color:var(--ivory); margin-bottom:28px; }
.hero h1 { font-family:var(--serif); font-size:clamp(4.6rem,8.5vw,9rem); line-height:.91; letter-spacing:-.045em; max-width:13ch; }
.hero h1 em { color:var(--ivory); }
.hero-bottom { display:flex; align-items:flex-end; gap:80px; margin-top:35px; }
.hero-bottom p { max-width:34ch; font-size:13px; line-height:1.8; color:var(--ivory); }
.hero-contact { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:17px 24px; min-height:57px; color:var(--ink); background:var(--bronze); font-size:11px; font-weight:700; transition:transform .2s,background .2s; }
.hero-contact:hover { background:var(--ivory); transform:translateY(-2px); }
.hero-contact:active { transform:translateY(1px); }
.hero-contact span:last-child { font-size:20px; }
.hero-rail { position:absolute; left:var(--gutter); right:var(--gutter); bottom:24px; border-top:1px solid var(--line); padding-top:16px; display:flex; align-items:center; justify-content:space-between; gap:24px; font-size:10px; letter-spacing:.05em; }
.hero-rail button { border:0; color:var(--ivory); background:transparent; padding:5px 10px; min-height:44px; display:flex; align-items:center; gap:10px; font-size:11px; }
.hero-rail button>span { font-size:23px; color:var(--bronze); }
.hero-rail>a { min-height:44px; display:flex; align-items:center; gap:20px; }
.hero-rail>a span { font-size:22px; color:var(--bronze); }
.hero-caption { position:absolute; right:var(--gutter); bottom:101px; color:var(--muted); font-size:9px; letter-spacing:.04em; }
.film-pause { position:absolute; top:25px; right:25px; z-index:5; color:var(--ivory); background:rgba(16,17,18,.86); border:1px solid rgba(242,239,232,.4); padding:10px 14px; display:flex; align-items:center; gap:10px; min-height:44px; font-size:10px; }
.hero .film-pause { top:auto; bottom:130px; right:var(--gutter); }
.film-pause>span:first-child { font-size:20px; line-height:1; }
.film-error { position:absolute; bottom:20px; left:20px; padding:6px 10px; font-size:10px; background:var(--ink); }
.section-topline { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:45px; border-top:1px solid var(--line); padding-top:22px; }
.section-topline>span { font-size:10px; color:var(--muted); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,9vw,150px); align-items:center; }
.about-visual { position:relative; padding-left:45px; padding-right:20px; }
.about-visual figure { position:relative; }
.about-visual img { width:100%; height:clamp(420px,46vw,660px); object-fit:cover; }
.about-visual figcaption { color:var(--muted); font-size:9px; margin-top:12px; }
.identity-rail { position:absolute; writing-mode:vertical-rl; transform:rotate(180deg); top:0; bottom:30px; left:0; font-size:10px; letter-spacing:.24em; color:var(--bronze); }
.about-copy h2 { margin-bottom:40px; }
.about-copy h2 em { color:var(--bronze); }
.about-copy h3 { font-size:15px; margin-bottom:18px; font-weight:500; letter-spacing:.02em; }
.about-copy>p { max-width:46ch; font-size:13px; color:var(--muted); margin-bottom:19px; line-height:1.95; }
.about-signature { border-top:1px solid var(--line); margin-top:35px; padding-top:25px; display:flex; justify-content:space-between; gap:20px; font-size:10px; color:var(--muted); }
.about-signature span:last-child { color:var(--ivory); }
.practice { background:var(--ivory); color:var(--ink); color-scheme:light; display:grid; grid-template-columns:.8fr 1.4fr; gap:clamp(45px,9vw,140px); }
.section-index { display:block; font-size:10px; letter-spacing:.12em; margin-bottom:38px; color:var(--graphite); }
.practice h2 { margin-bottom:30px; }
.practice h2 em { color:var(--ink); }
.practice-intro>p { max-width:31ch; font-size:13px; line-height:1.9; }
.practice-jump { display:flex; align-items:center; gap:20px; margin-top:40px; width:fit-content; min-height:44px; font-size:11px; font-weight:600; }
.practice-jump span { font-size:24px; transition:transform .25s; }
.practice-jump:hover span { transform:translate(5px,-5px); }
.practice-item { border-top:1px solid rgba(16,17,18,.2); }
.practice-item:last-child { border-bottom:1px solid rgba(16,17,18,.2); }
.practice-item summary { display:flex; align-items:center; gap:20px; padding:27px 0; list-style:none; cursor:pointer; }
.practice-item summary::-webkit-details-marker { display:none; }
.area-index { font-size:10px; color:var(--graphite); width:18px; flex-shrink:0; }
.practice-item summary img { width:30px; height:30px; object-fit:contain; flex-shrink:0; }
.practice-item h3 { flex:1; font-family:var(--serif); font-size:clamp(1.45rem,2.05vw,2.25rem); line-height:1.12; letter-spacing:-.02em; }
.area-plus { width:25px; height:25px; position:relative; flex-shrink:0; }
.area-plus::before,.area-plus::after { content:""; position:absolute; background:var(--ink); width:12px; height:1px; top:12px; left:6px; transition:transform .2s; }
.area-plus::after { transform:rotate(90deg); }
.practice-item[open] .area-plus::after { transform:rotate(0); }
.practice-description { padding:0 20px 30px 88px; }
.practice-description p { font-size:12px; line-height:1.9; max-width:54ch; }
.practice-description ul { list-style:none; padding:0; margin:20px 0 0; display:flex; flex-wrap:wrap; gap:8px 20px; }
.practice-description li { font-size:9px; letter-spacing:.04em; color:var(--graphite); }
.practice-description li::before { content:"/"; margin-right:8px; color:var(--bronze); }
.tribunal { position:relative; }
.tribunal-bar { position:absolute; top:30px; left:var(--gutter); right:var(--gutter); z-index:7; display:flex; justify-content:space-between; gap:20px; font-size:10px; letter-spacing:.05em; }
.tribunal-bar>span:last-child { color:var(--muted); }
.tribunal-bar span span { margin-left:18px; }
.tribunal .scroll-scrub__route { display:none; }
.tribunal .scroll-scrub__title { font-family:var(--serif); font-weight:400; font-size:clamp(3.5rem,7.4vw,7.8rem); letter-spacing:-.04em; line-height:1; max-width:14ch; }
.tribunal .scroll-scrub__body { font-size:13px; line-height:1.9; max-width:41ch; }
.tribunal .scroll-scrub__copy { width:min(48rem,55vw); }
.tribunal .scroll-scrub__copy::before { background:linear-gradient(90deg,rgba(16,17,18,.82),rgba(16,17,18,.6),transparent); inset:-5rem -3rem; }
.tribunal-caption { position:absolute; bottom:28px; left:var(--gutter); right:var(--gutter); z-index:6; font-size:9px; color:var(--muted); max-width:65ch; }
.approach-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:60px; }
.approach-heading h2 { font-size:clamp(3.4rem,6vw,6.5rem); }
.approach-heading h2 em { color:var(--bronze); }
.approach-heading>p { max-width:30ch; font-size:12px; color:var(--muted); padding-bottom:8px; }
.approach-diptych { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(40px,7vw,110px); align-items:center; }
.hearing-figure>.legal-film { aspect-ratio:4/3; }
.hearing-figure video { object-position:50% 50%; }
.hearing-figure figcaption { margin-top:12px; font-size:9px; color:var(--muted); }
.approach-principles article { display:flex; gap:22px; padding:27px 0; border-top:1px solid var(--line); }
.approach-principles article>span { font-size:10px; color:var(--bronze); padding-top:8px; }
.approach-principles h3 { font-family:var(--serif); font-size:31px; line-height:1.2; margin-bottom:12px; }
.approach-principles p { font-size:12px; color:var(--muted); max-width:38ch; line-height:1.9; }
.material-strip { margin-top:100px; height:320px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; padding:50px; }
.material-strip::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(16,17,18,.62),rgba(16,17,18,.12)); pointer-events:none; }
.material-strip>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.material-strip>p { position:relative; z-index:2; font-family:var(--serif); font-size:clamp(3rem,4.5vw,5rem); line-height:1; }
.material-strip>a { position:relative; z-index:2; display:grid; place-items:center; width:80px; height:80px; font-size:50px; transition:transform .25s; }
.material-strip>a:hover { transform:translate(5px,-5px); }
.contact { background:var(--graphite); background-image:linear-gradient(rgba(37,40,42,.94),rgba(37,40,42,.97)),url("/assets/images/office.webp"); background-size:cover; background-position:center; }
.contact-top { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:75px; }
.contact-top .eyebrow { margin-bottom:25px; }
.contact h2 { font-size:clamp(4.8rem,9.5vw,10rem); }
.contact-top>p { max-width:28ch; color:var(--muted); font-size:13px; }
.contact-phone { display:grid; grid-template-columns:1fr auto; gap:5px 20px; align-items:center; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:25px 0 30px; }
.contact-phone>span:first-child { font-family:var(--serif); font-size:clamp(2.7rem,6.8vw,7.2rem); line-height:1.2; letter-spacing:-.035em; white-space:nowrap; }
.contact-phone-arrow { font-size:clamp(3rem,6vw,6rem); line-height:1; color:var(--bronze); transition:transform .25s; }
.contact-phone:hover .contact-phone-arrow { transform:translate(6px,-6px); }
.contact-phone>small { grid-column:1/-1; color:var(--muted); font-size:10px; }
.contact-details { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding-top:50px; }
.contact-details h3 { font-size:10px; color:var(--muted); letter-spacing:.08em; margin-bottom:15px; }
.contact-details a { font-size:clamp(12px,1.15vw,16px); }
.contact-details address { font-style:normal; }
.map-link { display:block; margin-top:14px; font-size:10px; color:var(--muted); }
.site-footer { padding:70px var(--gutter) 35px; }
.footer-mark { display:flex; align-items:center; gap:clamp(25px,6vw,90px); padding-bottom:65px; }
.footer-mark img { width:100px; height:100px; object-fit:contain; }
.footer-mark>p { font-family:var(--serif); font-size:clamp(3.8rem,8vw,8.5rem); line-height:.9; letter-spacing:-.03em; }
.footer-mark em { color:var(--bronze); }
.footer-bottom { display:flex; justify-content:space-between; align-items:flex-start; gap:30px; border-top:1px solid var(--line); padding-top:27px; font-size:10px; color:var(--muted); }
.footer-bottom a { color:var(--ivory); display:flex; gap:20px; min-height:44px; }
.footer-bottom a span { color:var(--bronze); font-size:20px; }
.illustration-note { font-size:9px; color:var(--muted); margin-top:45px; max-width:85ch; line-height:1.8; }
.illustration-note a { text-decoration:underline; text-underline-offset:3px; }
.film-dialog { margin:auto; padding:0; width:min(1100px,94vw); max-height:94dvh; background:var(--ink); color:var(--ivory); border:1px solid var(--line); overflow:auto; }
.film-dialog::backdrop { background:rgba(0,0,0,.88); }
.film-dialog-inner { padding:24px; }
.film-dialog-heading { display:flex; justify-content:space-between; gap:25px; align-items:center; margin-bottom:22px; }
.film-dialog-heading h2 { font-size:clamp(1.5rem,3vw,2.5rem); line-height:1.1; }
.film-dialog-heading button { color:var(--ivory); background:transparent; border:0; display:flex; gap:14px; align-items:center; min-height:44px; font-size:12px; }
.film-dialog-heading button span { font-size:28px; }
.film-dialog video { width:100%; max-height:70dvh; display:block; }
.film-dialog p { font-size:10px; color:var(--muted); margin-top:15px; }
.error-page { min-height:100dvh; padding:100px var(--gutter); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:24px; }
.error-page h1 { font:400 clamp(3rem,7vw,6rem)/1 var(--serif); }
.error-page p { color:var(--muted); }
.error-page a,.error-page button { color:var(--ivory); background:transparent; border:0; border-bottom:1px solid var(--bronze); padding:10px 0; }
@media (min-width:1700px) { .hero-body { max-width:none; } }
@media (max-width:1100px) { .brand strong { font-size:10px; }.brand small { font-size:8px; }.site-header nav { gap:22px; }.about-grid { gap:50px; }.practice { gap:55px; grid-template-columns:.7fr 1.3fr; }.practice-description { padding-left:38px; }.practice-item summary { gap:14px; }.hero-bottom { gap:40px; } }
@media (max-width:860px) {
  html { scroll-padding-top:85px; }
  .site-header { padding-top:18px; padding-bottom:18px; }
  .brand img { width:37px; height:37px; }.brand { gap:10px; }.brand strong { font-size:9px; letter-spacing:.08em; }.brand small { font-size:7px; }
  .menu-toggle { display:flex; gap:13px; align-items:center; min-height:44px; color:var(--ivory); border:0; background:transparent; font-size:10px; }.menu-toggle>span:last-child { font-size:21px; }
  .site-header nav { display:none; }.site-header nav.is-open { display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; padding:15px var(--gutter) 25px; background:var(--ink); border-bottom:1px solid var(--line); }.site-header nav>a { padding:14px 0; border-top:1px solid var(--line); font-size:14px; }.site-header nav>.nav-whatsapp { border-left:0; justify-content:space-between; }
  .hero { min-height:850px; min-height:max(780px,100svh); }
  .hero-body { padding:160px var(--gutter) 160px; }.hero h1 { font-size:clamp(4.8rem,12vw,7rem); }.hero-body .eyebrow { font-size:9px; letter-spacing:.13em; }
  .hero-bottom { gap:25px; flex-wrap:wrap; margin-top:30px; }.hero-bottom p { font-size:12px; }.hero-contact { padding:13px 20px; min-height:50px; }
  .hero-rail { bottom:20px; gap:10px; font-size:9px; }.hero-rail>a { gap:8px; }.hero-rail button { font-size:10px; padding:5px; }.hero-caption { bottom:92px; font-size:8px; }
  .hero .film-pause { bottom:115px; padding:8px 12px; min-height:40px; }.hero .film-pause>span:last-child { display:none; }
  .about-grid { grid-template-columns:.9fr 1fr; gap:35px; }.about-visual { padding-left:25px; padding-right:0; }.about-visual img { height:480px; }.about-copy h2 { font-size:4rem; }.about-copy>p { font-size:12px; }.about-copy h3 { font-size:13px; }.about-signature { flex-direction:column; gap:10px; }
  .practice { grid-template-columns:1fr; gap:50px; }.practice-intro { display:grid; grid-template-columns:1fr 1fr; gap:0 30px; }.section-index { grid-column:1/-1; margin-bottom:20px; }.practice h2 { grid-row:2/4; margin:0; }.practice-intro>p { align-self:end; }.practice-jump { margin-top:20px; font-size:10px; }.practice-item h3 { font-size:28px; }.practice-description { padding-left:76px; }
  .tribunal .scroll-scrub__copy { width:100%; }.tribunal .scroll-scrub__title { font-size:clamp(3.3rem,10vw,5.6rem); max-width:14ch; }.tribunal .scroll-scrub__body { max-width:40ch; font-size:12px; }.tribunal .scroll-scrub__chapter-pin { padding-bottom:100px; }.tribunal-bar { font-size:9px; top:28px; }.tribunal-bar>span:last-child { max-width:16ch; text-align:right; }.tribunal-caption { bottom:24px; font-size:8px; }
  .approach-heading { align-items:flex-start; gap:30px; }.approach-heading h2 { font-size:4rem; }.approach-heading>p { max-width:23ch; font-size:11px; }.approach-diptych { gap:30px; }.approach-principles article { gap:14px; padding:20px 0; }.approach-principles h3 { font-size:26px; }.approach-principles p { font-size:11px; }.material-strip { margin-top:65px; height:260px; padding:30px; }
  .contact-top { gap:30px; }.contact-top>p { font-size:12px; }.contact-phone>span:first-child { font-size:8vw; }.contact-details a { font-size:12px; overflow-wrap:anywhere; }
}
@media (max-width:600px) {
  .section-pad { padding-top:75px; padding-bottom:75px; }
  .hero { min-height:max(780px,100svh); }.hero-body { padding-top:160px; padding-bottom:165px; }.hero h1 { font-size:clamp(4.6rem,15.2vw,6.3rem); }.hero-bottom { display:block; }.hero-bottom p { max-width:33ch; }.hero-contact { width:fit-content; margin-top:27px; min-width:215px; }.hero-caption { bottom:91px; }.hero-rail>a { display:none; }.hero-rail button { margin-left:auto; }.hero .film-pause { bottom:113px; }
  .section-topline { padding-bottom:30px; }.section-topline>span { font-size:8px; }.eyebrow { font-size:9px; }
  .about-grid { display:flex; flex-direction:column-reverse; gap:40px; align-items:stretch; }.about-copy h2 { font-size:4.3rem; margin-bottom:30px; }.about-copy>p { font-size:13px; max-width:none; }.about-copy h3 { font-size:15px; }.about-signature { flex-direction:row; }.about-visual { width:86%; }.about-visual img { height:400px; }.about-visual figcaption { font-size:8px; }
  .practice-intro { display:block; }.section-index { margin-bottom:24px; }.practice h2 { font-size:4.6rem; margin-bottom:25px; }.practice-intro>p { max-width:34ch; font-size:12px; }.practice-jump { margin-top:20px; }.practice { gap:32px; }.practice-item summary { gap:12px; padding:23px 0; }.practice-item h3 { font-size:25px; }.practice-item summary img { width:25px; height:25px; }.area-index { font-size:9px; width:14px; }.practice-description { padding:0 0 25px 0; }.practice-description p { font-size:12px; }.practice-description ul { gap:8px 15px; }.area-plus { width:20px; }
  .tribunal .scroll-scrub__title { font-size:clamp(3.3rem,13vw,4.8rem); }.tribunal .scroll-scrub__copy::before { inset:-3rem -2rem; background:linear-gradient(0deg,rgba(16,17,18,.93),rgba(16,17,18,.76) 65%,transparent); }.tribunal .scroll-scrub__chapter-pin { padding-left:var(--gutter); padding-right:var(--gutter); }.tribunal .scroll-scrub__body { font-size:12px; line-height:1.8; max-width:34ch; }
  .approach-heading { display:block; margin-bottom:35px; }.approach-heading h2 { font-size:3.7rem; }.approach-heading>p { margin-top:25px; font-size:12px; max-width:35ch; }.approach-diptych { grid-template-columns:1fr; gap:40px; }.hearing-figure>.legal-film { aspect-ratio:1/1; }.approach-principles h3 { font-size:30px; }.approach-principles p { font-size:12px; }.approach-principles article { padding:25px 0; gap:25px; }.material-strip { height:250px; margin-top:45px; padding:22px; }.material-strip>p { font-size:3.15rem; }.material-strip>a { width:45px; font-size:40px; }
  .contact-top { display:block; margin-bottom:45px; }.contact h2 { font-size:5.6rem; }.contact-top>p { margin-top:30px; max-width:32ch; }.contact-phone { gap:10px; padding:25px 0; }.contact-phone>span:first-child { font-size:8.7vw; }.contact-phone-arrow { font-size:40px; }.contact-details { grid-template-columns:1fr; gap:38px; padding-top:40px; }.contact-details a { font-size:13px; }
  .site-footer { padding-top:50px; }.footer-mark { gap:20px; padding-bottom:40px; }.footer-mark img { width:55px; height:55px; }.footer-mark>p { font-size:clamp(3.4rem,11.5vw,4.5rem); }.footer-bottom { display:grid; grid-template-columns:1fr 1fr; gap:25px 20px; font-size:9px; }.footer-bottom>a { grid-column:1/-1; }.illustration-note { margin-top:25px; font-size:8px; }.film-dialog-inner { padding:16px; }.film-dialog-heading h2 { font-size:24px; }.film-dialog-heading button { font-size:10px; gap:7px; }.film-dialog p { font-size:9px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; }.hero>.legal-film video { object-position:50% 50%; }.tribunal .scroll-scrub__chapter { min-height:100dvh!important; } }

/* Keep film controls reachable over decorative media layers. */
.hero>.legal-film { z-index:0; }
.hero-shade { z-index:1; }
.hero-body { position:relative; z-index:2; pointer-events:none; }
.hero-body a { pointer-events:auto; }
.hero-rail { z-index:3; }
.hero-caption { z-index:2; pointer-events:none; }

/* Keep the single tribunal scene painted through loading and section exit. */
.tribunal .scroll-scrub__stage {
  background-image:url("/assets/world/scene-01-poster.png");
  background-size:cover;
  background-position:50% 50%;
}
.tribunal .scroll-scrub__layer:only-child { opacity:1!important; }
@media (max-width:860px) {
  .tribunal .scroll-scrub__stage {
    background-image:url("/assets/world/scene-01-mobile-poster.png");
    background-position:58% 50%;
  }
}

[hidden]{display:none!important;}
