/* The outlined logo and Futura Light were supplied by the studio. */
@font-face {
  font-family: 'Futura Light';
  src: url('/assets/fonts/futura-light.otf') format('opentype');
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}
:root { --paper: #fff; --ink: #101010; --muted: #606060; --rule: #ddd; --studio-logo-width: 208px; --studio-logo-top: max(22px, env(safe-area-inset-top)); }
body { font-family: 'Futura Light', 'Futura PT', Futura, 'Century Gothic', Inter, sans-serif; font-weight: 300; }
h1, h2, h3 { font-weight: 300; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.site-header { min-height: 142px; padding-block: 16px; }
.identity-mark { display: block; width: 116px; flex-shrink: 0; }
.identity-mark img { width: 100%; height: auto; }
.info-header { display: flex; justify-content: center; padding-top: var(--studio-logo-top); padding-bottom: 24px; }
.info-home-logo { display: block; width: var(--studio-logo-width); }
.info-home-logo img { width: 100%; height: auto; }
.site-footer { grid-template-columns: 1.5fr 1fr; }
.site-header nav { text-transform: uppercase; letter-spacing: .045em; }
.landing-page { background: #243439; }
.landing { position: relative; isolation: isolate; width: 100%; height: 100vh; height: 100svh; min-height: 360px; overflow: hidden; color: #fff; }
@supports (height: 100dvh) { .landing { height: 100dvh; } }
.landing-photographs { position: absolute; inset: 0; z-index: -2; background: #243439; }
.landing-photographs::after { content: ''; position: absolute; inset: 0; background: rgb(0 0 0 / .2); }
.landing-slide { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--slide-position, center); opacity: 0; transition: opacity .8s ease-in-out; }
.landing-slide.is-active { opacity: 1; }
.landing-projects { position: absolute; inset: 0; }
.landing-project { position: absolute; inset: 0; clip-path: polygon(0 0, 0 0, 0 0); border: 0; outline: 0; cursor: pointer; }
.project-rail { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.project-rail-line { position: absolute; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.project-rail-line path { fill: none; stroke: rgb(255 255 255 / .36); stroke-width: 1; vector-effect: non-scaling-stroke; }
.project-rail-point { position: absolute; display: grid; place-items: center; width: min(44px, calc((100vw - 48px) / var(--rail-point-count, 10))); height: 44px; padding: 0; border: 0; background: transparent; color: white; transform: translate(-50%, -50%); pointer-events: auto; cursor: pointer; touch-action: manipulation; }
.project-rail-point:not([style]) { visibility: hidden; }
.project-rail-dot { width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .7; box-shadow: 0 1px 3px rgb(0 0 0 / .2); transition: width .2s, height .2s, opacity .2s; }
.project-rail-point.is-current .project-rail-dot { width: 7px; height: 7px; opacity: 1; box-shadow: 0 0 0 3px rgb(255 255 255 / .15), 0 1px 3px rgb(0 0 0 / .2); }
.project-rail-point:focus-visible { outline: 1px solid rgb(255 255 255 / .8); outline-offset: -6px; border-radius: 50%; }
.radial-project-caption { position: absolute; z-index: 2; left: 24px; top: 32%; display: block; width: max-content; max-width: min(240px, calc(100% - 24px)); color: white; font-size: clamp(9px, .9vw, 14px); line-height: 1.3; font-weight: 300; text-transform: uppercase; letter-spacing: .065em; text-shadow: 0 1px 6px rgb(0 0 0 / .8); pointer-events: none; overflow-wrap: anywhere; }
.landing:has(.landing-project:focus-visible) .radial-project-caption { text-decoration: underline; text-underline-offset: 4px; }
.landing-identity { position: absolute; z-index: 3; top: var(--studio-logo-top); left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; }
.landing-logo { display: block; width: var(--studio-logo-width); border: 0; padding: 0; background: none; cursor: pointer; }
.landing-logo img { width: 100%; height: auto; filter: invert(1) drop-shadow(0 1px 5px rgb(0 0 0 / .25)); }
.landing-navigation { display: flex; justify-content: center; gap: 40px; margin-top: 16px; white-space: nowrap; }
.landing-navigation a { padding: 10px 8px; font-size: 17px; line-height: 1.3; letter-spacing: .1em; text-shadow: 0 1px 8px rgb(0 0 0 / .7); }
.site-navigation .navigation-primary { padding: 12px 0; }
.landing-navigation .navigation-primary { display: block; }
.archive-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; max-width: 640px; margin-bottom: 42px; }
.archive-categories a { display: flex; justify-content: space-between; gap: 18px; padding: 15px 0; border-top: 1px solid var(--rule); font-size: 15px; text-transform: uppercase; letter-spacing: .055em; }
.archive-categories a:nth-last-child(-n+2) { border-bottom: 1px solid var(--rule); }
.archive-categories a span:last-child { color: var(--muted); font-size: 11px; }
.archive-categories a[aria-current] { font-weight: 600; }
.filters { gap: 20px; }
.filter-field { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; }
.filter-field #year { min-width: 96px; }
.archive-intro-grid { display: grid; grid-template-columns: minmax(260px, 370px) minmax(0, 1fr); gap: clamp(34px, 4vw, 70px); align-items: start; padding-top: 64px; margin-bottom: 43px; }
.archive-intro-grid .page-heading { display: block; padding: 0; }
.archive-overview-intro { min-width: 0; margin-top: 54px; }
.archive-intro-grid .archive-categories { grid-template-columns: 1fr; width: 100%; max-width: none; margin: 0; }
.archive-intro-grid .archive-categories a:nth-last-child(2) { border-bottom: 0; }
.archive-description { margin-top: 34px; font-size: 13px; line-height: 1.65; }
.project-map { min-width: 0; width: 100%; max-width: 760px; justify-self: end; }
.project-map-heading { margin-bottom: 12px; line-height: 1.15; }
.project-map-scroll { scrollbar-width: thin; scrollbar-color: #aeb7ad transparent; }
.project-map-canvas { position: relative; isolation: isolate; width: 100%; aspect-ratio: 996 / 708; background: #f5f7f4; }
.project-map-canvas > img { width: 100%; height: 100%; }
.project-map-pin { position: absolute; z-index: 2; display: grid; place-items: center; left: var(--map-x); top: var(--map-y); width: 26px; height: 26px; border-radius: 50%; transform: translate(calc(-50% + var(--offset-x, 0px)), calc(-50% + var(--offset-y, 0px))); text-decoration: none; }
.project-map-dot { width: 7px; height: 7px; border-radius: 50%; background: #263f35; box-shadow: 0 0 0 3px #f5f7f4, 0 0 0 4px #91a197; transition: transform .16s ease, box-shadow .16s ease; }
.project-map-single { z-index: 13; width: 20px; height: 20px; }
.project-map-single .project-map-dot { position: relative; z-index: 2; display: grid; place-items: center; width: 16px; height: 16px; color: #fff; font: 600 9px Inter, Arial, sans-serif; }
.project-map-leader { position: absolute; z-index: 0; left: 50%; top: 50%; width: var(--leader-length); border-top: 1px solid #75887a; transform-origin: 0 50%; transform: rotate(var(--leader-angle)); pointer-events: none; }
.project-map-anchor-point { position: absolute; z-index: 1; width: 4px; height: 4px; border-radius: 50%; background: #263f35; box-shadow: 0 0 0 2px #f5f7f4; transform: translate(-50%, -50%); pointer-events: none; }
.project-map-name { position: absolute; z-index: 8; left: calc(100% + 7px); top: 50%; transform: translateY(-50%); padding: 1px 2px; background: rgb(245 247 244 / .9); color: #465c4d; font: 500 9px Inter, Arial, sans-serif; letter-spacing: .025em; white-space: nowrap; pointer-events: none; }
.project-map-name.is-left { left: auto; right: calc(100% + 7px); }
.project-map-single.is-serbia .project-map-name { top: 0; transform: translateY(-85%); }
.project-map-pin:hover, .project-map-pin:focus-visible { z-index: 20; text-decoration: none; }
.project-map-pin:hover .project-map-dot, .project-map-pin:focus-visible .project-map-dot { transform: scale(1.3); box-shadow: 0 0 0 3px #f5f7f4, 0 0 0 6px #607e6b; }
.project-map-pin:focus-visible { outline: 1px solid #263f35; outline-offset: 1px; }
.project-map-tooltip { position: absolute; left: 50%; bottom: calc(100% + 7px); width: max-content; max-width: 205px; padding: 10px 13px; transform: translate(-50%, 5px); background: #fff; border: 1px solid #ced4cd; box-shadow: 0 8px 24px rgb(35 50 39 / .13); color: var(--ink); text-align: left; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .16s ease, transform .16s ease; }
.project-map-tooltip strong, .project-map-tooltip small { display: block; font-weight: 400; line-height: 1.35; }
.project-map-tooltip strong { font-size: 12px; }
.project-map-tooltip small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.project-map-pin.is-northern .project-map-tooltip, .project-map-member .project-map-tooltip { top: calc(100% + 7px); bottom: auto; transform: translate(-50%, -5px); }
.project-map-pin.is-eastern .project-map-tooltip { left: auto; right: 0; transform: translateY(5px); }
.project-map-pin:hover .project-map-tooltip, .project-map-pin:focus-visible .project-map-tooltip { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.project-map-pin.is-eastern:hover .project-map-tooltip, .project-map-pin.is-eastern:focus-visible .project-map-tooltip { transform: translateY(0); }
.project-map-cluster { position: absolute; z-index: 4; left: var(--map-x); top: var(--map-y); width: var(--cluster-size); height: var(--cluster-size); transform: translate(-50%, -50%); }
.project-map-cluster[data-map-cluster="montenegro"] { width: 26px; height: 26px; }
.project-map-cluster[data-map-cluster="montenegro"] .project-map-name { top: calc(100% + 3px); transform: none; }
.project-map-cluster::before { content: ''; position: absolute; z-index: 0; inset: -60px; border-radius: 50%; visibility: hidden; pointer-events: none; }
.project-map-cluster-trigger { position: relative; z-index: 4; display: grid; place-items: center; width: 100%; height: 100%; padding: 0; border-radius: 50%; background: #263f35; color: #fff; font-family: Inter, Arial, sans-serif; font-size: 11px; font-weight: 600; box-shadow: 0 0 0 3px #f5f7f4, 0 0 0 4px #7d9683; cursor: pointer; transition: transform .2s ease; }
.project-map-cluster-trigger:hover { transform: scale(1.08); }
.project-map-cluster-trigger:focus-visible { outline: 2px solid #263f35; outline-offset: 6px; }
.project-map-members { position: absolute; z-index: 2; inset: 0; pointer-events: none; }
.project-map-member { left: 50%; top: 50%; opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, -50%) scale(.3); transition: transform .24s cubic-bezier(.2,.7,.25,1), opacity .2s ease, visibility .2s; }
.project-map-cluster.is-open { z-index: 12; }
.project-map-cluster.is-open::before { visibility: visible; pointer-events: auto; }
.project-map-cluster.is-open .project-map-member:not([hidden]) { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(calc(-50% + var(--offset-x)), calc(-50% + var(--offset-y))) scale(1); }
@media (hover: hover) {
  .project-map-cluster:hover { z-index: 12; }
  .project-map-cluster:hover::before { visibility: visible; pointer-events: auto; }
  .project-map-cluster:hover .project-map-member:not([hidden]) { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(calc(-50% + var(--offset-x)), calc(-50% + var(--offset-y))) scale(1); }
}
.info-index { display: flex; flex-wrap: wrap; gap: 12px 36px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 17px 0; margin-bottom: 42px; font-size: 12px; text-transform: uppercase; letter-spacing: .07em; }
.info-index a[aria-current] { text-decoration: underline; text-underline-offset: 7px; }
.info-essay { display: grid; grid-template-columns: 1fr 1.35fr; gap: 8vw; padding: 5px 0 85px; }
.info-essay h2 { font-size: clamp(32px, 4vw, 64px); margin-top: 20px; }
.info-essay>div:last-child { max-width: 650px; font-size: 18px; line-height: 1.75; }
.info-essay p+p { margin-top: 24px; }
.info-essay .info-further-reading { font-size: 14px; color: var(--muted); }
.info-further-reading a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 4px; }
.info-further-reading a:hover { text-decoration-color: currentColor; }
.client-logos { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: center; gap: 24px 38px; max-width: 1100px; margin: 0 auto; padding: 0; list-style: none; }
.client-logos li { flex: 0 0 clamp(110px,12vw,140px); }
.client-logo { position: relative; display: block; width: 100%; padding-bottom: 58px; }
.client-logo img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; filter: grayscale(1); transition: filter .2s; }
.client-logo-caption { position: absolute; top: calc(100% - 52px); left: -12px; right: -12px; text-align: center; font-size: 12px; line-height: 1.35; color: var(--ink); opacity: 0; transition: opacity .2s; pointer-events: none; }
.client-logo-caption small { display: block; margin-top: 4px; font-size: 10px; color: var(--muted); }
.client-logo:hover img, .client-logo:focus-visible img { filter: grayscale(0); }
.client-logo:hover .client-logo-caption, .client-logo:focus-visible .client-logo-caption { opacity: 1; }
.info-page { padding-bottom: 110px; }
.info-page .page-heading { padding-bottom: 42px; }
.info-page .info-index { margin-bottom: 0; }
.info-section { scroll-margin-top: 24px; border-bottom: 1px solid var(--rule); padding: 86px 0 96px; }
.info-section:last-child { border-bottom: 0; padding-bottom: 20px; }
.info-section-heading { display: grid; grid-template-columns: 1fr 1.35fr; gap: 18px 8vw; margin-bottom: 45px; }
.info-section-heading .eyebrow { grid-column: 1; }
.info-section-heading h2 { grid-column: 1; font-size: clamp(34px, 4vw, 64px); line-height: 1.12; }
.info-section-heading p { grid-column: 2; grid-row: 2; align-self: end; max-width: 560px; font-size: 16px; line-height: 1.7; }
.info-page .info-essay { padding-top: 86px; padding-bottom: 96px; }
.info-studio-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); column-gap: 8vw; }
.info-studio-content > p { grid-column: 2; max-width: 620px; font-size: 17px; line-height: 1.75; }
.info-studio-content > p + p { margin-top: 24px; }
.info-studio-content a { text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 4px; }
.info-studio-content a:hover { text-decoration-color: currentColor; }
.awards-list { list-style: none; margin: 0 0 25px; padding: 0; }
.awards-list li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); column-gap: 8vw; border-top: 1px solid var(--rule); padding: 22px 0 27px; }
.awards-list li:last-child { border-bottom: 1px solid var(--rule); }
.award-date { font-size: 12px; color: var(--muted); }
.awards-list h3 { font-size: 22px; }
.awards-list p { margin-top: 7px; color: var(--ink); font-size: 17px; }
.awards-list strong { font-weight: 700; }
.awards-list p a { text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 5px; }
.awards-list small { display: block; margin-top: 9px; color: var(--muted); font-size: 11px; }
.info-page .contact-layout { display: block; border-top: 1px solid var(--rule); }
.info-page .contact-details { display: block; }
.info-page .contact-item .contact-links { margin-top: 0; }
.info-page .info-socials { margin-top: 26px; }
.info-page .info-socials .landing-socials { position: static; left: auto; bottom: auto; transform: none; filter: none; width: max-content; gap: 10px; }
.info-page .contact-layout > h3 { font-size: clamp(24px, 2.8vw, 40px); }
.info-page .contact-item h4 { font-size: 15px; font-weight: 400; }
.landing a { text-decoration: none; }
.landing-navigation a:hover, .landing-socials a:hover { opacity: .65; }
.landing-socials { position: absolute; z-index: 3; left: 50%; bottom: max(38px, calc(env(safe-area-inset-bottom) + 32px)); transform: translateX(-50%); display: flex; align-items: center; gap: 6px; filter: drop-shadow(0 1px 5px rgb(0 0 0 / .45)); }
.landing-socials a { display: grid; place-items: center; width: 40px; height: 44px; }
.landing-socials svg { width: 21px; height: 21px; fill: currentColor; }
.landing-copyright { position: absolute; z-index: 3; bottom: max(12px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: clamp(9px, .9vw, 12px); letter-spacing: .025em; text-shadow: 0 1px 5px #000; }
.slideshow-toggle { position: absolute; z-index: 3; display: grid; place-items: center; right: max(14px, env(safe-area-inset-right)); bottom: max(0px, env(safe-area-inset-bottom)); width: 44px; height: 44px; padding: 12px; color: white; }
.slideshow-toggle svg { width: 18px; height: 18px; fill: currentColor; }
.landing.is-reduced-motion .landing-slide { transition: none; }
@media (max-width: 1000px) {
  .archive-intro-grid { grid-template-columns: 1fr; gap: 30px; }
  .archive-overview-intro { margin-top: 30px; }
  .project-map { justify-self: start; }
}
@media (max-width: 900px) { :root { --studio-logo-width: 196px; } }
@media (max-width: 600px) {
  .site-header { min-height: 112px; gap: 16px; }
  .identity-mark { width: 86px; }
  .site-header nav { gap: 16px; font-size: 11px; }
  .landing-slide { object-position: var(--slide-mobile-position, center); }
  :root { --studio-logo-width: 178px; --studio-logo-top: max(18px, env(safe-area-inset-top)); }
  .landing-navigation { margin-top: 10px; gap: 28px; }
  .landing-navigation a { font-size: 16px; }
  .landing-socials { gap: 4px; }
  .landing-socials a { width: 40px; height: 44px; }
  .landing-socials svg { width: 20px; height: 20px; }
  .project-rail-point { width: min(32px, calc((100vw - 48px) / var(--rail-point-count, 10))); }
  .radial-project-caption { font-size: 9px; max-width: min(180px, calc(100% - 24px)); }
}
@media (max-width: 700px) {
  .site-navigation { gap: 18px !important; font-size: 12px; }
  .archive-toolbar .filters { flex-wrap: wrap; gap: 4px 14px; }
  .archive-toolbar .filter-field { gap: 7px; }
  .archive-toolbar #type { max-width: 150px; }
  .archive-toolbar #year { min-width: 78px; max-width: 100px; }
  .archive-categories { gap: 0 18px; margin-bottom: 30px; }
  .archive-categories a { font-size: 11px; gap: 8px; }
  .archive-intro-grid { padding-top: 38px; }
  .archive-description { margin-top: 24px; font-size: 12px; }
  .project-map-scroll { overflow-x: auto; overflow-y: hidden; }
  .project-map-canvas { width: 700px; }
  .info-index { gap: 13px 22px; margin-bottom: 30px; }
  .info-essay { display: block; padding-bottom: 55px; }
  .info-essay>div:last-child { margin-top: 30px; font-size: 15px; }
  .client-logos { gap: 20px 28px; }
  .info-page { padding-bottom: 55px; }
  .info-section, .info-page .info-essay { padding-block: 52px 62px; }
  .info-section-heading { display: block; margin-bottom: 30px; }
  .info-section-heading h2 { margin-top: 17px; }
  .info-section-heading p { margin-top: 18px; font-size: 14px; }
  .info-studio-content { display: block; }
  .info-studio-content > p { font-size: 15px; }
  .info-studio-content > p + p { margin-top: 20px; }
  .awards-list li { display: block; }
  .award-date { display: block; margin-bottom: 10px; }
  .awards-list h3 { font-size: 17px; }
  .awards-list p { font-size: 14px; }
}
@media (max-height: 520px) and (min-width: 601px) {
  :root { --studio-logo-width: 152px; --studio-logo-top: 12px; }
  .landing-navigation { margin-top: 8px; }
}
@media (prefers-reduced-motion: reduce) { .landing-slide, .project-rail-dot, .client-logo img, .client-logo-caption { transition: none; } }
