:root {
  --ink: #0d1f25;
  --ink-soft: #18343d;
  --paper: #f3f0e9;
  --paper-bright: #fbfaf6;
  --teal: #79b7ae;
  --orange: #e67d4b;
  --peach: #f1c5aa;
  --line: rgba(13, 31, 37, 0.16);
  --line-light: rgba(255, 255, 255, 0.2);
  --max: 1240px;
  --pad: clamp(1.25rem, 5vw, 4.5rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Inter, Avenir Next, Avenir, Helvetica Neue, Arial, sans-serif; font-size: 16px; line-height: 1.55; }
body.menu-open { overflow: hidden; }
a { color: inherit; }
img { max-width: 100%; display: block; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { letter-spacing: -0.04em; line-height: 1.03; }
h1 { max-width: 790px; font-size: clamp(3rem, 5.2vw, 5.4rem); font-weight: 500; line-height: .98; }
h2 { font-size: clamp(2.5rem, 5vw, 5.4rem); font-weight: 500; }
h3 { font-size: clamp(1.45rem, 2.2vw, 2rem); font-weight: 550; }
.page-shell { width: min(100%, calc(var(--max) + var(--pad) * 2)); margin: 0 auto; padding-inline: var(--pad); }
.section { padding-block: clamp(5rem, 10vw, 9rem); }
.section-dark { background: var(--ink); color: var(--paper-bright); }
.section-line-art { position: absolute; z-index: 0; overflow: hidden; fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; opacity: .16; }
.section-line-art path { stroke-dasharray: 8 11; }
.section-line-art circle { fill: var(--orange); stroke: none; }
.line-art-orbit .orbit-lines { animation: orbit-turn 24s linear infinite; transform-origin: center; }
.line-art-orbit circle { animation: line-pulse 5s ease-in-out infinite; }
.line-art-sectors { right: -3rem; bottom: 1.5rem; width: min(42vw, 570px); color: var(--peach); opacity: .13; transform: rotate(-3deg); }
.line-art-portfolio { top: 1rem; right: -5rem; width: min(32vw, 440px); color: var(--orange); opacity: .12; transform: rotate(11deg); }
.sector-section, .portfolio-section { position: relative; overflow: hidden; isolation: isolate; }
.sector-section { z-index: 4; border-top: 1px solid rgba(121,183,174,.4); background: linear-gradient(135deg,#17383f 0%,#102b31 100%); box-shadow: 0 -18px 50px rgba(0,0,0,.16); }
.sector-section > :not(.section-line-art), .portfolio-section > :not(.section-line-art) { position: relative; z-index: 1; }
@keyframes line-drift { to { stroke-dashoffset: -190; } }
@keyframes line-pulse { 0%, 100% { opacity: .35; transform: scale(.8); transform-origin: center; } 50% { opacity: 1; transform: scale(1.35); transform-origin: center; } }
@keyframes orbit-turn { to { transform: rotate(360deg); } }
.eyebrow { margin-bottom: 1.5rem; color: var(--teal); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.eyebrow.ink { color: #356b69; }
.skip-link { position: fixed; z-index: 100; top: 0.75rem; left: 0.75rem; padding: 0.6rem 0.85rem; transform: translateY(-150%); background: white; color: black; }
.skip-link:focus { transform: none; }

.site-header { position: fixed; z-index: 50; top: 0; left: 0; width: 100%; display: flex; align-items: center; gap: clamp(1rem, 2.3vw, 2rem); padding: 1.2rem var(--pad); color: white; transition: background 180ms ease, padding 180ms ease; }
.scroll-progress { position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--orange); transform: scaleX(0); transform-origin: left; will-change: transform; }
.site-header.scrolled { padding-block: 0.8rem; background: rgba(13, 31, 37, 0.94); backdrop-filter: blur(16px); }
.wordmark { display: inline-flex; align-items: center; gap: 0.65rem; color: inherit; font-weight: 650; letter-spacing: 0.03em; text-decoration: none; }
.wordmark-mark { display: grid; width: 2rem; aspect-ratio: 1; place-items: center; border: 1px solid currentColor; color: var(--orange); font-size: 0.68rem; }
.site-nav { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.25rem); margin-left: auto; font-size: 0.84rem; }
.site-nav a { text-decoration: none; }
.site-nav a:not(.nav-cta):hover { color: var(--teal); }
.nav-cta { padding: 0.7rem 1rem; border: 1px solid rgba(255,255,255,.45); }
.menu-toggle { display: none; border: 0; background: transparent; color: white; font: inherit; }
.language-switcher { display: inline-flex; align-items: center; gap: .32rem; min-height: 34px; padding: 0 .62rem; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; color: rgba(255,255,255,.5); font-size: .62rem; letter-spacing: .08em; }
.language-switcher button { min-width: 24px; padding: .35rem 0; border: 0; background: transparent; color: rgba(255,255,255,.55); cursor: pointer; font: inherit; font-weight: 700; letter-spacing: inherit; }
.language-switcher button:hover, .language-switcher button:focus-visible, .language-switcher button.active { color: #fff; outline: none; }
.language-switcher button.active { text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: .3em; }
.language-icon { position: relative; width: 13px; height: 13px; display: inline-block; border: 1px solid currentColor; border-radius: 50%; }
.language-icon::before { position: absolute; inset: 2px 4px; content: ""; border-inline: 1px solid currentColor; border-radius: 50%; }
.language-icon::after { position: absolute; top: 5px; left: 1px; width: 9px; content: ""; border-top: 1px solid currentColor; }

.hero { position: sticky; z-index: 1; top: 0; min-height: 100svh; overflow: hidden; isolation: isolate; }
.hero ~ section { position: relative; z-index: 2; }
.portfolio-section, .about-section { background: var(--paper); }
.hero::after { position: absolute; z-index: -1; inset: 0; content: ""; opacity: .2; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.025) 1px, transparent 1px); background-size: clamp(30px,3vw,52px) clamp(30px,3vw,52px); mask-image: linear-gradient(115deg,transparent 0%,#000 48%,transparent 100%); }
.hero-media { position: absolute; z-index: -2; inset: -20%; background: radial-gradient(circle at 70% 18%,rgba(121,183,174,.18),transparent 25%), radial-gradient(circle at 83% 79%,rgba(230,125,75,.09),transparent 22%), linear-gradient(118deg,#09191e 0%,#0c2228 52%,#12323a 100%); animation: hero-atmosphere 14s ease-in-out infinite alternate; }
.hero-rail { position: absolute; z-index: 1; top: 72px; right: clamp(.7rem,2vw,2rem); width: 1px; height: calc(100% - 100px); background: linear-gradient(transparent,rgba(230,125,75,.7),transparent); transform: scaleY(.2); transform-origin: top; animation: hero-rail-in 2.2s cubic-bezier(.2,.8,.2,1) forwards; pointer-events: none; }
.hero-rail::after { position: absolute; top: var(--rail-y,32%); left: 50%; width: 7px; height: 7px; content: ""; border-radius: 50%; background: var(--orange); box-shadow: 0 0 24px rgba(230,125,75,.9); transform: translate(-50%,-50%); transition: top 800ms cubic-bezier(.2,.8,.2,1); }
.hero-grid { min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; padding-top: 7rem; padding-bottom: 3rem; }
.hero-copy { width: 100%; align-self: center; margin-top: -3vh; padding-top: 0; transform: translate3d(var(--hero-move-x,0),var(--hero-move-y,0),0); transition: transform 900ms cubic-bezier(.2,.8,.2,1); }
.hero-services { width: 100%; max-width: none; display: flex; flex-direction: column; margin-bottom: 0; font-size: clamp(3rem, 7.1vw, 8rem); letter-spacing: -.068em; line-height: .86; }
.hero-services > span { --enter-x: -5vw; --enter-y: 82%; --enter-r: -1.2deg; --entry-duration: 1.35s; --entry-delay: .2s; --line-delay: 1.35s; position: relative; width: 100%; display: flex; align-items: flex-start; padding: .11em 0 .15em; color: #fff; overflow: visible; }
.hero-services > span:nth-child(2) { --enter-x: 12vw; --enter-y: 18%; --enter-r: 5.5deg; --entry-duration: 2.65s; --entry-delay: .75s; --line-delay: 3.05s; }
.hero-services > span:nth-child(3) { --enter-x: -4vw; --enter-y: -68%; --enter-r: -4deg; --entry-duration: 1.65s; --entry-delay: 1.75s; --line-delay: 3.1s; }
.hero-services > span:nth-child(4) { --enter-x: 15vw; --enter-y: 62%; --enter-r: 7deg; --entry-duration: 3.1s; --entry-delay: 2.55s; --line-delay: 5.2s; }
.hero-services > span::before, .hero-services > span:last-child::after { position: absolute; z-index: 0; right: 0; left: 0; height: 1px; content: ""; background: rgba(255,255,255,.22); transform: scaleX(0); transform-origin: left; animation: hero-draw-line 1.05s cubic-bezier(.2,.8,.2,1) forwards; animation-delay: var(--line-delay); }
.hero-services > span::before { top: 0; }
.hero-services > span:last-child::after { bottom: 0; animation-delay: 6.05s; }
.hero-services > span > span { position: relative; z-index: 1; display: block; width: max-content; max-width: 100%; opacity: 0; translate: var(--enter-x) var(--enter-y); rotate: var(--enter-r); filter: blur(8px); clip-path: inset(78% -5% -15% -5%); animation: hero-drop-in var(--entry-duration) cubic-bezier(.16,1,.3,1) forwards; animation-delay: var(--entry-delay); transition: transform 600ms cubic-bezier(.2,.8,.2,1),color 250ms ease; }
.hero-services > span:nth-child(2) > span { margin-left: clamp(1.5rem,8vw,10rem); color: var(--peach); }
.hero-services > span:nth-child(3) > span { margin-left: clamp(.5rem,3vw,4rem); color: transparent; -webkit-text-stroke: 1.4px rgba(255,255,255,.92); }
.hero-services > span:nth-child(4) > span { margin-left: clamp(2rem,15vw,18rem); color: var(--peach); }
.hero-services > span:hover > span { transform: translateX(clamp(.4rem,1.3vw,1.2rem)); color: var(--orange); }
.hero-services > span:nth-child(3):hover > span { color: transparent; -webkit-text-stroke: 1.4px var(--orange); }
.hero-lede { max-width: 690px; color: rgba(255,255,255,.78); font-size: clamp(1.08rem, 2vw, 1.4rem); }
.hero-actions { display: flex; align-items: center; gap: 2rem; margin-top: clamp(2.8rem,5vh,4.6rem); }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0.8rem 1.15rem; text-decoration: none; }
.button-light { background: var(--paper-bright); color: var(--ink); }
.button-light { transition: background 180ms ease, color 180ms ease, transform 180ms ease; }
.button-light:hover, .button-light:focus-visible { background: var(--orange); color: #fff; transform: translateY(-2px); outline: none; }
.text-link { text-underline-offset: 0.35em; }
.text-link span { color: var(--orange); }
@keyframes hero-drop-in { 0% { opacity: 0; translate: var(--enter-x) var(--enter-y); rotate: var(--enter-r); filter: blur(8px); clip-path: inset(78% -5% -15% -5%); } 48% { opacity: .82; } 82% { opacity: 1; translate: 0 -2%; rotate: -.25deg; filter: blur(0); clip-path: inset(-35% -5% -20% -5%); } 100% { opacity: 1; translate: 0 0; rotate: 0deg; filter: blur(0); clip-path: none; } }
@keyframes hero-draw-line { to { transform: scaleX(1); } }
@keyframes hero-atmosphere { to { transform: translate3d(-2%,2%,0) scale(1.06); } }
@keyframes hero-rail-in { to { transform: scaleY(1); } }

.section-intro { display: grid; grid-template-columns: 1fr 1.2fr; column-gap: 4rem; margin-bottom: clamp(3rem, 7vw, 6rem); }
.section-intro .eyebrow { grid-column: 1 / -1; }
.section-intro h2 { margin-bottom: 0; }
.section-intro > p:last-child { max-width: 520px; align-self: end; color: #596369; }

.sector-section { padding-block: clamp(5rem, 10vw, 9rem); }
.sector-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; }
.sector-grid .section-intro { display: block; margin: 0; }
.sector-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: center; gap: clamp(1.2rem,2.5vw,2.4rem) clamp(1.5rem,3vw,3rem); padding-block: 1rem 2.5rem; }
.sector-list span { position: relative; min-height: clamp(76px,8vw,108px); display: flex; align-items: flex-end; padding: 1.15rem .8rem .6rem 1.2rem; font-size: clamp(1.15rem,2vw,1.65rem); line-height: 1.08; transition: color 220ms ease, transform 320ms cubic-bezier(.2,.8,.2,1), background 220ms ease; }
.sector-list span:nth-child(even) { transform: translateY(1.6rem); }
.sector-list span::before { position: absolute; top: 0; left: 0; width: 28px; height: 28px; content: ""; border-top: 1px solid rgba(255,255,255,.28); border-left: 1px solid rgba(255,255,255,.28); transition: width 320ms cubic-bezier(.2,.8,.2,1), height 320ms cubic-bezier(.2,.8,.2,1), border-color 220ms ease; }
.sector-list span::after { position: absolute; top: 4px; left: 4px; width: 5px; height: 5px; content: ""; background: var(--orange); transform: scale(.7); transition: transform 260ms cubic-bezier(.2,.8,.2,1); }
.sector-list span:hover { color: var(--peach); background: linear-gradient(120deg,rgba(255,255,255,.045),transparent 72%); transform: translateX(6px); }
.sector-list span:nth-child(even):hover { transform: translate(6px,1.6rem); }
.sector-list span:hover::before { width: 42px; height: 42px; border-color: rgba(230,125,75,.8); }
.sector-list span:hover::after { transform: scale(1.35); }

.portfolio-section { overflow: hidden; }
.portfolio-intro { position: relative; }
.portfolio-intro::after { position: absolute; right: 1.5%; bottom: -1.2rem; width: clamp(70px, 9vw, 120px); height: 7px; content: ""; background: var(--orange); transform: rotate(-3deg); }
.featured-portfolio { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); align-items: start; }
.featured-card { position: relative; min-height: 390px; grid-column: span 6; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(1.5rem, 3vw, 2.6rem); overflow: hidden; border-radius: 28px; background: #dfe9e3; color: var(--ink); text-decoration: none; transition: transform 320ms cubic-bezier(.2,.8,.2,1), opacity 220ms ease, box-shadow 320ms ease, background 260ms ease; }
.featured-card:nth-child(1) { grid-column: 1 / 8; min-height: 410px; background: #dce8e2; }
.featured-card:nth-child(2) { grid-column: 8 / 13; min-height: 450px; margin-top: 5rem; background: #eadfd3; }
.featured-card:nth-child(3) { grid-column: 1 / 6; min-height: 430px; margin-top: -1.5rem; background: #e5e9e2; }
.featured-card:nth-child(4) { grid-column: 6 / 13; min-height: 370px; margin-top: 3rem; background: #d3e2e2; }
.featured-card:nth-child(5) { grid-column: 2 / 12; width: 100%; min-height: 410px; justify-self: auto; margin-top: 1.5rem; background: #eed1be; transform: rotate(-.35deg); }
.featured-card::before { position: absolute; z-index: 1; inset: auto -14% -52% auto; width: 66%; aspect-ratio: 1; content: ""; border: 1px solid rgba(13,31,37,.13); border-radius: 50%; pointer-events: none; transition: transform 520ms cubic-bezier(.2,.8,.2,1), background 240ms ease; }
.featured-card:hover, .featured-card:focus-visible { z-index: 2; transform: translateY(-8px) rotate(-.35deg); box-shadow: 0 28px 65px rgba(13,31,37,.15); outline: none; }
.featured-card:nth-child(even):hover, .featured-card:nth-child(even):focus-visible { transform: translateY(-8px) rotate(.35deg); }
.featured-card:nth-child(5):hover, .featured-card:nth-child(5):focus-visible { transform: translateY(-8px) rotate(0); }
.featured-card:hover::before, .featured-card:focus-visible::before { transform: translate(-14%, -14%) scale(1.12); background: rgba(230,125,75,.1); }
.featured-portfolio.has-active-card .featured-card:not(:hover):not(:focus-visible) { opacity: .64; }
.featured-number { position: relative; z-index: 4; align-self: flex-start; color: rgba(13,31,37,.5); font-size: .67rem; font-weight: 700; letter-spacing: .14em; }
.featured-name { position: absolute; z-index: 0; top: 50%; left: -.035em; max-width: 125%; overflow: hidden; color: rgba(13,31,37,.055); font-size: clamp(4.6rem, 10vw, 9.5rem); font-weight: 650; letter-spacing: -.075em; line-height: .8; text-transform: uppercase; white-space: nowrap; transform: translateY(-50%); transition: color 280ms ease, transform 520ms cubic-bezier(.2,.8,.2,1); }
.featured-card:nth-child(2) .featured-name, .featured-card:nth-child(3) .featured-name { writing-mode: vertical-rl; top: 38%; right: -.08em; left: auto; transform: translateY(-50%) rotate(180deg); }
.featured-card:nth-child(5) .featured-name { top: 66%; left: 24%; color: rgba(13,31,37,.045); }
.featured-card:hover .featured-name, .featured-card:focus-visible .featured-name { color: rgba(13,31,37,.095); transform: translate(-.025em,-50%); }
.featured-card:nth-child(2):hover .featured-name, .featured-card:nth-child(2):focus-visible .featured-name, .featured-card:nth-child(3):hover .featured-name, .featured-card:nth-child(3):focus-visible .featured-name { transform: translateY(-47%) rotate(180deg); }
.featured-card:nth-child(5):hover .featured-name, .featured-card:nth-child(5):focus-visible .featured-name { color: rgba(13,31,37,.075); transform: translate(.02em,-47%); }
.featured-logo { position: relative; z-index: 3; width: min(62%, 280px); min-height: 116px; display: flex; align-items: center; margin: auto 0 1.5rem; }
.featured-logo img { width: 100%; max-height: 92px; object-fit: contain; object-position: left center; mix-blend-mode: multiply; filter: grayscale(.08); transition: transform 320ms cubic-bezier(.2,.8,.2,1), filter 220ms ease; }
.featured-card:nth-child(3) .featured-logo img { mix-blend-mode: normal; }
.featured-card:nth-child(5) .featured-logo { width: min(48%, 230px); margin-left: 2%; }
.featured-card:hover .featured-logo img, .featured-card:focus-visible .featured-logo img { transform: scale(1.045); filter: grayscale(0); }
.featured-card .relationship-badge { position: relative; z-index: 3; left: auto; bottom: auto; display: block; margin: 0 0 .75rem; color: rgba(13,31,37,.55); }
.featured-description { position: relative; z-index: 3; display: block; max-width: 480px; margin: 0; color: rgba(13,31,37,.72); font-size: clamp(.95rem, 1.4vw, 1.08rem); }
.featured-lines { position: absolute; z-index: 2; right: 2rem; bottom: 2rem; width: min(32%, 180px); display: grid; gap: 8px; transform: rotate(-7deg); }
.featured-lines i { height: 1px; display: block; background: rgba(13,31,37,.22); transform-origin: right; transition: transform 420ms cubic-bezier(.2,.8,.2,1), background 220ms ease; }
.featured-lines i:nth-child(2) { width: 72%; justify-self: end; }
.featured-lines i:nth-child(3) { width: 46%; justify-self: end; }
.featured-card:hover .featured-lines i, .featured-card:focus-visible .featured-lines i { background: var(--orange); transform: scaleX(.7); }
.featured-card:hover .featured-lines i:nth-child(2), .featured-card:focus-visible .featured-lines i:nth-child(2) { transform: scaleX(1.22); }
.featured-arrow { position: absolute; z-index: 4; top: 1.2rem; right: 1.2rem; width: 42px; height: 42px; display: flex; align-items: center; justify-content: flex-end; gap: .45rem; padding: 0 14px; overflow: hidden; border: 1px solid rgba(13,31,37,.18); border-radius: 999px; color: var(--ink); white-space: nowrap; transition: width 280ms cubic-bezier(.2,.8,.2,1), transform 220ms ease, background 220ms ease, color 220ms ease; }
.featured-arrow::before { content: attr(data-label); font-size: .66rem; font-style: normal; opacity: 0; transition: opacity 160ms ease 40ms; }
.featured-card:hover .featured-arrow, .featured-card:focus-visible .featured-arrow { width: 126px; transform: none; background: var(--ink); color: #fff; }
.featured-card:hover .featured-arrow::before, .featured-card:focus-visible .featured-arrow::before { opacity: 1; }
.portfolio-archive { position: relative; margin-top: clamp(4.5rem, 8vw, 8rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--line); }
.portfolio-kicker { margin-bottom: 1.6rem; color: #56706f; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.logo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(.75rem, 1.4vw, 1.25rem); }
.logo-item { position: relative; min-height: 168px; display: grid; place-items: center; padding: 2rem 1.6rem; overflow: hidden; border: 1px solid rgba(13,31,37,.09); border-radius: 18px; background: rgba(255,255,255,.52); box-shadow: 0 8px 28px rgba(13,31,37,.04); }
.logo-item:is(a) { color: inherit; text-decoration: none; transition: transform 220ms cubic-bezier(.2,.8,.2,1), background 180ms ease, box-shadow 220ms ease; }
.logo-item:is(a)::after { position: absolute; top: .85rem; right: .9rem; width: 1.7rem; height: 1.7rem; display: grid; place-items: center; border-radius: 50%; content: "↗"; background: rgba(13,31,37,.06); color: #356b69; font-size: .8rem; opacity: .6; transition: transform 180ms ease, opacity 180ms ease; }
.logo-item:is(a):hover, .logo-item:is(a):focus-visible { z-index: 1; transform: translateY(-4px); background: #fff; box-shadow: 0 18px 42px rgba(13,31,37,.1); outline: none; }
.logo-item:is(a):hover::after, .logo-item:is(a):focus-visible::after { transform: rotate(8deg); opacity: 1; }
.logo-item[data-featured="true"] { background: #e8eee9; }
.logo-wrap { display: grid; width: min(100%, 210px); height: 92px; place-items: center; padding: 1rem 1.2rem; border: 1px solid rgba(13,31,37,.09); border-radius: 12px; background: rgba(249,248,243,.9); }
.logo-item img { width: 100%; height: 100%; max-height: 62px; object-fit: contain; mix-blend-mode: multiply; filter: grayscale(.18); transition: filter 180ms ease, transform 220ms ease; }
.logo-item:is(a):hover img, .logo-item:is(a):focus-visible img { filter: grayscale(0); transform: scale(1.035); }
.logo-item[data-link-status="pending"] { cursor: default; }
.relationship-badge { position: absolute; left: 1rem; bottom: .8rem; color: rgba(13,31,37,.42); font-size: .58rem; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; transition: color 180ms ease; }
.featured-card .relationship-badge::before { content: "•"; margin-right: .55rem; color: var(--orange); }
.logo-item:is(a):hover .relationship-badge, .logo-item:is(a):focus-visible .relationship-badge { color: rgba(13,31,37,.68); }
.portfolio-archive .logo-item { min-height: 150px; background: rgba(255,255,255,.34); box-shadow: none; }
.portfolio-archive .logo-item img { height: 66px; opacity: .82; }

.feature-section { display: grid; grid-template-columns: 1.15fr .85fr; min-height: 680px; overflow: hidden; }
.feature-image { position: relative; min-height: 520px; background: linear-gradient(rgba(20,56,59,.03),rgba(20,56,59,.11)), url("./public/assets/editorial/how-we-work-studio-v2.jpg") center/cover; }
.feature-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 7vw, 7rem); }
.feature-copy h2 { font-size: clamp(2.8rem, 4.5vw, 5rem); }
.feature-copy p:not(.eyebrow) { max-width: 520px; color: rgba(255,255,255,.72); font-size: 1.1rem; }
.feature-copy .text-link { margin-top: 2rem; align-self: flex-start; }

.about-section { display: grid; grid-template-columns: .7fr 1.3fr; gap: 8vw; }
.about-label { display: flex; flex-direction: column; justify-content: flex-start; gap: clamp(2rem, 6vw, 5.5rem); }
.portrait-frame { position: relative; width: min(100%, 265px); aspect-ratio: .82; margin: 0 0 0 clamp(0rem, 2vw, 2rem); overflow: visible; border-radius: 22px; background: #d7dfda; box-shadow: 0 18px 42px rgba(13,31,37,.12); }
.portrait-frame::before { position: absolute; z-index: -1; inset: 14px -14px -14px 14px; content: ""; border: 1px solid rgba(230,125,75,.68); border-radius: 22px; }
.portrait-frame::after { position: absolute; inset: 0; content: ""; border: 1px solid rgba(13,31,37,.15); border-radius: inherit; pointer-events: none; }
.portrait-frame img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; border-radius: inherit; }
.about-copy h2 { font-size: clamp(2.7rem, 4.5vw, 5rem); }
.about-copy .profile-title { margin: -0.45rem 0 2rem; color: #356b69; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.about-lede { font-size: 1.3rem; }
.about-copy p { max-width: 720px; color: #596369; }
.profile-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; max-width: 760px; margin: 2.5rem 0 1rem; background: var(--line); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.profile-facts > div { min-height: 130px; display: flex; flex-direction: column; justify-content: center; padding: 1.3rem clamp(.9rem, 2vw, 1.5rem); background: var(--paper); }
.profile-facts strong { color: var(--orange); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 500; line-height: 1; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.profile-facts span { margin-top: .6rem; color: #647174; font-size: .72rem; line-height: 1.3; text-transform: uppercase; letter-spacing: .08em; }
.profile-link { display: inline-block; margin-top: 1.25rem; color: #356b69; font-weight: 650; text-underline-offset: .35em; }

.contact { padding-block: clamp(5rem, 10vw, 9rem); }
.contact-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 8vw; }
.contact h2 { max-width: 760px; margin-bottom: 0; font-size: clamp(3rem, 5vw, 5.2rem); }
.contact-details { align-self: end; border-top: 1px solid var(--line-light); }
.contact-method { position: relative; display: grid; grid-template-columns: 90px 1fr 28px; gap: 1rem; align-items: center; min-height: 86px; border-bottom: 1px solid var(--line-light); text-decoration: none; transition: padding 180ms ease, background 180ms ease; }
.contact-method > span { color: var(--teal); font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.contact-method strong { overflow-wrap: anywhere; color: var(--paper-bright); font-size: clamp(1rem, 1.5vw, 1.22rem); font-weight: 500; }
.contact-method i { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: var(--teal); font-style: normal; transition: transform 180ms ease, background 180ms ease; }
.contact-method:hover, .contact-method:focus-visible { padding-inline: .75rem; background: rgba(255,255,255,.035); outline: none; }
.contact-method:hover i, .contact-method:focus-visible i { transform: rotate(8deg); background: rgba(255,255,255,.08); }
.site-footer { border-top: 1px solid var(--line-light); }
.footer-grid { min-height: 140px; display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: clamp(1.5rem, 3vw, 3rem); color: rgba(255,255,255,.6); font-size: .8rem; }
.footer-grid p { margin: 0; }
.footer-grid p:last-child { text-align: right; }
.footer-wordmark { color: white; }
.footer-legal { display: flex; gap: 1.25rem; }
.footer-legal a { text-underline-offset: .3em; }
.footer-legal a:hover { color: white; }

.legal-page { min-height: 100vh; background: var(--paper-bright); }
.legal-header { min-height: 96px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.legal-header .wordmark { color: var(--ink); }
.legal-actions { display: flex; align-items: center; gap: 1.25rem; }
.language-switcher-dark { border-color: rgba(13,31,37,.2); color: rgba(13,31,37,.5); }
.language-switcher-dark button { color: rgba(13,31,37,.55); }
.language-switcher-dark button:hover, .language-switcher-dark button:focus-visible, .language-switcher-dark button.active { color: var(--ink); }
.legal-back { color: #356b69; font-size: .82rem; text-underline-offset: .3em; }
.legal-main { max-width: 960px; padding-top: clamp(4rem, 8vw, 7rem); padding-bottom: clamp(5rem, 10vw, 9rem); }
.legal-main h1 { max-width: 820px; margin-bottom: clamp(3rem, 7vw, 5.5rem); color: var(--ink); }
.legal-data { margin: 0; border-top: 1px solid var(--line); }
.legal-data > div { display: grid; grid-template-columns: minmax(180px, .7fr) 1.3fr; gap: 2rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.legal-data dt { color: #637176; font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.legal-data dd { margin: 0; }
.legal-section { padding: clamp(2rem, 4vw, 3rem) 0; border-top: 1px solid var(--line); }
.legal-section h2 { margin-bottom: 1.5rem; font-size: clamp(1.7rem, 3vw, 2.5rem); }
.legal-section p { max-width: 780px; color: #4f6065; }
.legal-section a, .legal-data a { color: #356b69; text-underline-offset: .3em; }
.legal-updated { margin-top: 3rem; color: #748085; font-size: .78rem; }

.reveal { opacity: 0; transform: translate3d(0, calc(24px + var(--float-y, 0px)), 0); transition: opacity 650ms ease, transform 650ms cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity: 1; transform: translate3d(0, var(--float-y, 0px), 0); }
.featured-card.reveal { clip-path: inset(0 0 100% 0 round 28px); opacity: 1; transform: translate3d(0, 0, 0); transition: clip-path 760ms cubic-bezier(.2,.8,.2,1), transform 320ms cubic-bezier(.2,.8,.2,1), opacity 220ms ease, box-shadow 320ms ease; }
.featured-card.reveal.is-visible { clip-path: inset(0 0 0 0 round 28px); }
.scroll-float { transform: translate3d(0, var(--float-y, 0px), 0) scale(1.035); will-change: transform; }
[data-float] { will-change: transform; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .reveal, .scroll-float { opacity: 1; transform: none; transition: none; } .section-line-art path, .section-line-art circle, .line-art-orbit .orbit-lines, .hero-media, .hero-rail { animation: none; } .hero-services > span > span { opacity: 1; translate: 0 0; rotate: 0deg; filter: none; clip-path: none; animation: none; } .hero-services > span::before, .hero-services > span:last-child::after { transform: scaleX(1); animation: none; } }

@media (max-width: 900px) {
  .site-header.scrolled, body.menu-open .site-header { backdrop-filter: none; }
  .wordmark { position: relative; z-index: 4; min-height: 44px; padding-block: .35rem; }
  .menu-toggle { display: inline-flex; min-width: 48px; min-height: 48px; align-items: center; justify-content: center; }
  .site-nav { position: fixed; top: 0; right: 0; bottom: auto; left: 0; width: 100vw; height: 100dvh; max-height: 100dvh; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 1.5rem; margin: 0; padding: clamp(6.5rem,16vh,8.5rem) var(--pad) 2rem; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; visibility: hidden; pointer-events: none; background: var(--ink); transform: translateX(100%); transition: transform 250ms ease, visibility 0s linear 250ms; font-size: 1.7rem; }
  .site-nav.open { visibility: visible; pointer-events: auto; transform: none; transition: transform 250ms ease, visibility 0s; }
  .menu-toggle { position: relative; z-index: 2; }
  .language-switcher { position: relative; z-index: 3; order: 2; margin-left: auto; }
  .menu-toggle { order: 3; }
  .hero-grid { grid-template-columns: 1fr; }
  .section-intro, .sector-grid, .feature-section, .about-section, .contact-grid { grid-template-columns: 1fr; }
  .section-intro { gap: 1.5rem; }
  .logo-grid { grid-template-columns: repeat(3, 1fr); }
  .featured-portfolio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .featured-card, .featured-card:nth-child(1), .featured-card:nth-child(2), .featured-card:nth-child(3), .featured-card:nth-child(4) { grid-column: auto; min-height: 360px; margin-top: 0; }
  .featured-card:nth-child(5) { grid-column: 1 / -1; width: 78%; min-height: 380px; justify-self: center; }
  [data-float], .scroll-float { --float-y: 0px !important; will-change: auto; }
  .feature-copy { min-height: 520px; }
  .about-label { gap: 2rem; }
  .portrait-frame { width: min(64vw, 250px); margin-left: 0; }
  .line-art-sectors { right: -8rem; width: 390px; }
  .line-art-portfolio { top: 3rem; right: -8rem; width: 310px; }
}

@media (max-width: 620px) {
  h1 { font-size: clamp(2.65rem, 11.5vw, 4rem); }
  .hero-services { font-size: clamp(1.9rem, 9.3vw, 3.15rem); }
  .hero-services > span { padding-block: .18em; }
  .hero-services > span:nth-child(n) > span { margin-left: 0; }
  .hero-services > span:nth-child(2) > span, .hero-services > span:nth-child(4) > span { margin-left: clamp(.8rem,6vw,2rem); }
  .hero-copy { margin-top: -10vh; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.25rem; margin-top: 3.5rem; }
  .hero-actions .button { width: auto; min-height: 44px; padding: .62rem .9rem; font-size: .88rem; }
  .hero-actions .text-link { font-size: .9rem; }
  .sector-list { grid-template-columns: 1fr; gap: .7rem; padding-block: .5rem 0; }
  .sector-list span:nth-child(n), .sector-list span:nth-child(n):hover { min-height: 68px; transform: none; }
  .logo-grid { grid-template-columns: repeat(2, 1fr); }
  .featured-portfolio { grid-template-columns: 1fr; }
  .featured-card, .featured-card:nth-child(2), .featured-card:nth-child(3), .featured-card:nth-child(4), .featured-card:nth-child(5) { grid-column: auto; width: 100%; min-height: 0; margin-top: 0; transform: none; }
  .featured-card + .featured-card { margin-top: .25rem; }
  .featured-logo { width: min(68%, 225px); }
  .featured-name { font-size: clamp(4.1rem, 23vw, 7rem); }
  .contact-method { grid-template-columns: 68px 1fr 28px; }
  .logo-item { min-height: 132px; padding: 1.1rem; border-radius: 14px; }
  .logo-item img { width: min(76%, 150px); height: 62px; }
  .profile-facts { grid-template-columns: 1fr; }
  .profile-facts > div { min-height: 100px; }
  .section-line-art { opacity: .09; }
  .footer-grid { grid-template-columns: 1fr; padding-block: 2rem; }
  .footer-grid p:last-child { text-align: left; }
  .footer-legal { flex-wrap: wrap; }
  .legal-header { min-height: 82px; }
  .legal-data > div { grid-template-columns: 1fr; gap: .35rem; }
}

/* Keep the top rule clear of the Hungarian capital U double-acute. */
html[lang="hu"] .hero-services > span:first-child { padding-top: .22em; }

@media (max-width: 620px) {
  html[lang="hu"] .hero-services > span:first-child { padding-top: .36em; }
}
