/* Editorial Portfolio full-homepage theme. The renderer maps every color, font, border, and background to the site's global theme tokens. */
.editorial-active {
  --ed-bg: var(--bg, #08090c);
  --ed-text: var(--text-primary, #f4f1eb);
  --ed-muted: var(--text-secondary, #9ca3af);
  --ed-faint: var(--text-faint, #555e6e);
  --ed-line: var(--border, rgba(244,241,235,.18));
  --ed-accent: var(--accent, #b7ff3c);
  --ed-display: var(--font-display, Arial Black, sans-serif);
  --ed-body: var(--font-body, Inter, sans-serif);
  --ed-ease: var(--ease, cubic-bezier(.2,.8,.2,1));
  background: var(--ed-bg);
  color: var(--ed-text);
  font-family: var(--ed-body);
}
body.editorial-active > #editorial-template-root {
  min-height: 100vh;
  overflow: hidden;
  background: var(--ed-bg);
  color: var(--ed-text);
  font-family: var(--ed-body);
}
.editorial-active *, .editorial-active *::before, .editorial-active *::after { box-sizing: border-box; }
.editorial-active a { color: inherit; text-decoration: none; }
.editorial-active img { display: block; max-width: 100%; }
.editorial-active button, .editorial-active input, .editorial-active textarea { font: inherit; }
.editorial-active .editorial-eyebrow, .editorial-active .editorial-mono { color: var(--ed-muted); font: 600 10px/1.25 var(--ed-body); letter-spacing: .1em; text-transform: uppercase; }
.editorial-active .editorial-eyebrow { color: var(--ed-accent); }
.editorial-active .editorial-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 30px; padding: 32px 5vw; border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-brand { display: grid; gap: 7px; }
.editorial-active .editorial-brand span { color: var(--ed-text); font: 400 clamp(22px, 2.2vw, 36px)/.9 var(--ed-display); letter-spacing: -.08em; }
.editorial-active .editorial-brand small { color: var(--ed-muted); font: 600 10px/1.25 var(--ed-body); letter-spacing: .1em; text-transform: uppercase; }
.editorial-active .editorial-header nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 21px; }
.editorial-active .editorial-header nav a { color: var(--ed-muted); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; transition: color .2s var(--ed-ease); }
.editorial-active .editorial-header nav a:hover { color: var(--ed-accent); }

.editorial-active .editorial-hero { display: grid; grid-template-columns: 175px minmax(0, 1fr) 245px; gap: 4vw; align-items: center; min-height: min(860px, 88vh); padding: 10vw 5vw 8vw; border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-hero > aside { align-self: start; padding-top: 5vw; }
.editorial-active .editorial-hero > aside h2 { margin: 18px 0; color: var(--ed-text); font: 400 18px/.9 var(--ed-display); letter-spacing: -.07em; text-transform: uppercase; }
.editorial-active .editorial-hero > aside p, .editorial-active .editorial-hero-copy > p { color: var(--ed-muted); font-size: 12px; line-height: 1.55; }
.editorial-active .editorial-hero-copy { position: relative; z-index: 1; }
.editorial-active .editorial-hero-copy h1 { margin: 0 0 38px -5vw; color: var(--ed-text); font: 400 clamp(54px, 9vw, 165px)/.77 var(--ed-display); letter-spacing: -.13em; }
.editorial-active .editorial-hero-copy h1 span { display: block; }
.editorial-active .editorial-hero-copy h1 .editorial-outline { color: transparent; -webkit-text-stroke: 1px var(--ed-muted); }
.editorial-active .editorial-hero-copy h1 .editorial-accent { color: var(--ed-accent); }
.editorial-active .editorial-hero-copy > p { max-width: 390px; margin: 0 0 0 12vw; }
.editorial-active .editorial-hero-action { display: inline-flex; gap: 14px; align-items: center; margin: 27px 0 0 12vw; color: var(--ed-accent); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.editorial-active .editorial-hero-action b { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid var(--ed-line); border-radius: 50%; font-size: 16px; font-weight: 400; }
.editorial-active .editorial-hero-art { aspect-ratio: 3 / 4; overflow: hidden; border: 1px solid var(--ed-line); background: color-mix(in srgb, var(--ed-accent), transparent 90%); }
.editorial-active .editorial-hero-art img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.editorial-active .editorial-media-empty { width: 100%; min-height: 100%; background: linear-gradient(135deg, color-mix(in srgb, var(--ed-accent), transparent 90%), var(--ed-bg)); }

.editorial-active .editorial-banner { display: grid; grid-template-columns: 1.7fr .8fr; min-height: 460px; border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-banner-art { min-height: 460px; overflow: hidden; background: color-mix(in srgb, var(--ed-accent), transparent 90%); }
.editorial-active .editorial-banner-art img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.editorial-active .editorial-banner-copy { display: flex; flex-direction: column; justify-content: center; padding: 6vw; border-left: 1px solid var(--ed-line); }
.editorial-active .editorial-banner-copy h2 { max-width: 8ch; margin: 22px 0; color: var(--ed-text); font: 400 clamp(42px, 5vw, 86px)/.82 var(--ed-display); letter-spacing: -.11em; }
.editorial-active .editorial-banner-copy p { max-width: 28ch; margin: 0 0 25px; color: var(--ed-muted); font-size: 13px; line-height: 1.6; }
.editorial-active .editorial-pill, .editorial-active .editorial-outline-link { display: inline-flex; gap: 12px; align-items: center; align-self: flex-start; padding: 12px 16px; border: 1px solid var(--ed-line); color: var(--ed-accent); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.editorial-active .editorial-pill b, .editorial-active .editorial-outline-link b { font-size: 16px; font-weight: 400; }

.editorial-active .editorial-section { padding: 8vw 5vw; border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-heading-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) 260px; align-items: end; gap: 28px; margin-bottom: 28px; }
.editorial-active .editorial-section-title { max-width: none; margin: 0; color: var(--ed-text); font: 800 clamp(48px, 6.7vw, 140px)/.8 var(--ed-display); letter-spacing: -.12em; white-space: nowrap; }
.editorial-active .editorial-section-note { max-width: 320px; margin: 0 0 4px auto; color: var(--ed-muted); font-size: 12px; line-height: 1.6; }
.editorial-active .editorial-project-list { border-top: 1px solid var(--ed-line); }
.editorial-active .editorial-project-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) minmax(280px, min(30vw, 430px)) 30px; gap: 22px; align-items: center; min-height: 315px; padding: 16px 0; border-bottom: 1px solid var(--ed-line); transition: background .25s var(--ed-ease); }
.editorial-active .editorial-project-row:hover { background: color-mix(in srgb, var(--ed-accent), transparent 94%); }
.editorial-active .editorial-project-row > div:nth-child(2) { min-width: 0; }
.editorial-active .editorial-project-row h3 { margin: 0 0 14px; color: var(--ed-text); font: 800 clamp(28px, 4vw, 62px)/.86 var(--ed-display); letter-spacing: -.1em; }
.editorial-active .editorial-project-meta { display: flex; flex-wrap: wrap; gap: 15px; color: var(--ed-muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.editorial-active .editorial-project-link { display: inline-flex; gap: 8px; margin-top: 22px; color: var(--ed-accent); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.editorial-active .editorial-project-link b { font-size: 15px; font-weight: 400; }
.editorial-active .editorial-project-thumb { grid-column: auto; grid-row: auto; justify-self: stretch; width: auto; aspect-ratio: 1.45; overflow: hidden; border: 1px solid var(--ed-line); background: color-mix(in srgb, var(--ed-accent), transparent 90%); }
.editorial-active .editorial-project-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ed-ease); }
.editorial-active .editorial-project-row:hover .editorial-project-thumb img { transform: scale(1.04); }
.editorial-active .editorial-row-arrow { color: var(--ed-accent); font-size: 20px; }
.editorial-active .editorial-empty { padding: 35px 0; color: var(--ed-muted); border-top: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-filter-bar { display: flex; flex-wrap: wrap; gap: 12px 28px; padding: 22px 0; border-top: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-filter-bar button { padding: 0; border: 0; background: transparent; color: var(--ed-muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.editorial-active .editorial-filter-bar button.active, .editorial-active .editorial-filter-bar button:hover { color: var(--ed-accent); }

.editorial-active .editorial-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ed-line); border-left: 1px solid var(--ed-line); }
.editorial-active .editorial-category-card { display: grid; grid-template-rows: auto 1fr; min-height: 420px; border-right: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); transition: background .3s var(--ed-ease), color .3s var(--ed-ease); }
.editorial-active .editorial-category-image { aspect-ratio: 1.15; margin: 14px; overflow: hidden; border: 1px solid var(--ed-line); background: color-mix(in srgb, var(--ed-accent), transparent 90%); }
.editorial-active .editorial-category-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ed-ease); }
.editorial-active .editorial-category-card:hover { background: var(--ed-accent); color: var(--ed-bg); }
.editorial-active .editorial-category-card:hover img { transform: scale(1.06); }
.editorial-active .editorial-category-copy { display: grid; grid-template-columns: 40px 1fr; align-items: end; gap: 12px; padding: 18px; }
.editorial-active .editorial-category-copy h3 { margin: 0; color: var(--ed-text); font: 400 clamp(26px, 3vw, 48px)/.86 var(--ed-display); letter-spacing: -.1em; }
.editorial-active .editorial-category-copy small { grid-column: 2; color: var(--ed-muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.editorial-active .editorial-category-card:hover .editorial-category-copy h3, .editorial-active .editorial-category-card:hover .editorial-category-copy small, .editorial-active .editorial-category-card:hover .editorial-category-copy .editorial-mono { color: var(--ed-bg); }

.editorial-active .editorial-motive { display: grid; grid-template-columns: .3fr 2fr; gap: 8vw; }
.editorial-active .editorial-motive h2 { max-width: 15ch; margin: 0; color: var(--ed-text); font: 400 clamp(42px, 6.5vw, 110px)/.83 var(--ed-display); letter-spacing: -.12em; }
.editorial-active .editorial-motive > div:last-child > p { max-width: 590px; margin: 35px 0 0 auto; color: var(--ed-muted); font-size: 13px; line-height: 1.65; }
.editorial-active .editorial-stats { display: flex; flex-wrap: wrap; gap: 50px; margin-top: 58px; padding-top: 22px; border-top: 1px solid var(--ed-line); }
.editorial-active .editorial-stats strong { display: block; color: var(--ed-accent); font: 400 50px/.9 var(--ed-display); letter-spacing: -.1em; }
.editorial-active .editorial-stats span { display: block; max-width: 140px; margin-top: 10px; color: var(--ed-muted); font-size: 10px; line-height: 1.4; }
.editorial-active .editorial-services-head { display: grid; grid-template-columns: 1.4fr .6fr; gap: 8vw; align-items: end; margin-bottom: 52px; }
.editorial-active .editorial-services-head h2 { max-width: 9ch; margin: 22px 0 0; color: var(--ed-text); font: 400 clamp(48px, 7vw, 120px)/.8 var(--ed-display); letter-spacing: -.12em; }
.editorial-active .editorial-services-head p { max-width: 230px; margin: 0 0 5px auto; color: var(--ed-muted); font-size: 12px; line-height: 1.6; }
.editorial-active .editorial-service-list { border-top: 1px solid var(--ed-line); }
.editorial-active .editorial-service-row { display: grid; grid-template-columns: 70px .8fr 1.2fr 40px; gap: 24px; align-items: start; padding: 29px 0; border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-service-row h3 { margin: 0; color: var(--ed-text); font: 400 30px/.9 var(--ed-display); letter-spacing: -.08em; }
.editorial-active .editorial-service-row p { max-width: 320px; margin: 0; color: var(--ed-muted); font-size: 12px; line-height: 1.55; }
.editorial-active .editorial-service-mark { color: var(--ed-accent); font-size: 20px; }
.editorial-active .editorial-outline-link { margin-top: 32px; }

.editorial-active .editorial-tools-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ed-line); border-left: 1px solid var(--ed-line); }
.editorial-active .editorial-tool { min-height: 130px; display: flex; align-items: flex-end; padding: 18px; border-right: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); color: var(--ed-text); font: 400 clamp(20px, 2.4vw, 36px)/.9 var(--ed-display); letter-spacing: -.08em; transition: background .3s var(--ed-ease), color .3s var(--ed-ease); }
.editorial-active .editorial-tool:hover { background: var(--ed-accent); color: var(--ed-bg); }
.editorial-active .editorial-client-strip { display: flex; flex-wrap: wrap; border-top: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-client { flex: 1 1 160px; min-height: 130px; display: grid; place-items: center; gap: 8px; padding: 15px; border-right: 1px solid var(--ed-line); color: var(--ed-muted); font: 400 20px/.9 var(--ed-display); letter-spacing: -.08em; text-align: center; transition: color .2s var(--ed-ease); }
.editorial-active .editorial-client:hover { color: var(--ed-accent); }
.editorial-active .editorial-client-logo { max-width: 120px; max-height: 48px; object-fit: contain; filter: grayscale(1); opacity: .82; }
.editorial-active .editorial-client span { max-width: 150px; }
.editorial-active .editorial-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ed-line); border-left: 1px solid var(--ed-line); }
.editorial-active .editorial-blog-card { min-height: 380px; display: grid; grid-template-rows: auto auto 1fr; gap: 18px; padding: 14px; border-right: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-blog-image { aspect-ratio: 1.45; overflow: hidden; border: 1px solid var(--ed-line); }
.editorial-active .editorial-blog-image img { width: 100%; height: 100%; object-fit: cover; }
.editorial-active .editorial-blog-card h3 { align-self: end; margin: 0; color: var(--ed-text); font: 400 clamp(25px, 2.5vw, 42px)/.88 var(--ed-display); letter-spacing: -.1em; }
.editorial-active .editorial-blog-card:hover h3 { color: var(--ed-accent); }
.editorial-active .editorial-custom-code-inner { display: grid; grid-template-columns: .35fr 1.65fr; gap: 7vw; align-items: end; padding: 28px 0; border-top: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); }
.editorial-active .editorial-custom-code-inner strong { max-width: 15ch; color: var(--ed-text); font: 400 clamp(35px, 5vw, 78px)/.84 var(--ed-display); letter-spacing: -.1em; }
.editorial-active .editorial-custom-code-inner p { max-width: 470px; margin: 22px 0 0; color: var(--ed-muted); font-size: 12px; line-height: 1.6; }
.editorial-active .editorial-custom-code-inner > div { grid-column: 2; }

.editorial-active .editorial-footer { padding: 8vw 5vw 28px; border-top: 1px solid var(--ed-line); }
.editorial-active .editorial-footer-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 8vw; }
.editorial-active .editorial-footer-grid h2 { max-width: 8ch; margin: 25px 0 0; color: var(--ed-text); font: 400 clamp(54px, 9vw, 150px)/.76 var(--ed-display); letter-spacing: -.13em; }
.editorial-active .editorial-footer-grid > div > p { max-width: 270px; margin-top: 25px; color: var(--ed-muted); font-size: 12px; line-height: 1.6; }
.editorial-active .editorial-contact-form { padding-top: 6px; }
.editorial-active .editorial-contact-form h3 { margin: 0 0 28px; color: var(--ed-text); font: 400 clamp(30px, 4vw, 62px)/.86 var(--ed-display); letter-spacing: -.1em; }
.editorial-active .editorial-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.editorial-active label { display: block; margin: 20px 0 8px; color: var(--ed-muted); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.editorial-active input, .editorial-active textarea { width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid var(--ed-line); outline: 0; resize: vertical; background: transparent; color: var(--ed-text); }
.editorial-active input:focus, .editorial-active textarea:focus { border-color: var(--ed-accent); }
.editorial-active .editorial-submit { display: inline-flex; gap: 13px; align-items: center; margin-top: 28px; padding: 14px 0; border: 0; border-bottom: 1px solid var(--ed-accent); background: transparent; color: var(--ed-accent); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.editorial-active .editorial-submit span { font-size: 17px; }
.editorial-active .editorial-footer-links { display: flex; flex-wrap: wrap; gap: 24px 35px; margin-top: 80px; padding-top: 22px; border-top: 1px solid var(--ed-line); }
.editorial-active .editorial-footer-links a { color: var(--ed-muted); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.editorial-active .editorial-footer-links a:hover { color: var(--ed-accent); }
.editorial-active .editorial-copyright { margin: 24px 0 0; color: var(--ed-faint); font-size: 10px; }
.editorial-active .editorial-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ed-ease) calc(var(--editorial-index, 0) * 35ms), transform .7s var(--ed-ease) calc(var(--editorial-index, 0) * 35ms); }
.editorial-active .editorial-reveal.editorial-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 850px) {
  .editorial-active .editorial-hero { grid-template-columns: 110px minmax(0, 1fr); min-height: 650px; }
  .editorial-active .editorial-hero-art { grid-column: 2; width: min(70%, 300px); }
  .editorial-active .editorial-hero > aside { grid-row: span 2; }
  .editorial-active .editorial-heading-row, .editorial-active .editorial-motive, .editorial-active .editorial-footer-grid { grid-template-columns: 1fr; }
  .editorial-active .editorial-section-title { white-space: normal; }
  .editorial-active .editorial-heading-row .editorial-section-note { margin-left: 0; }
  .editorial-active .editorial-category-grid, .editorial-active .editorial-blog-grid { grid-template-columns: repeat(2, 1fr); }
  .editorial-active .editorial-services-head { grid-template-columns: 1fr; }
  .editorial-active .editorial-services-head p { margin-left: 0; }
  .editorial-active .editorial-service-row { grid-template-columns: 48px 1fr 30px; }
  .editorial-active .editorial-service-row p { grid-column: 2; }
}
@media (max-width: 560px) {
  .editorial-active .editorial-header { display: block; padding-right: 6vw; padding-left: 6vw; }
  .editorial-active .editorial-header nav { justify-content: flex-start; margin-top: 24px; gap: 13px; }
  .editorial-active .editorial-section { padding: 19vw 6vw; }
  .editorial-active .editorial-hero { display: flex; flex-wrap: wrap; gap: 22px; min-height: 0; padding: 20vw 6vw 17vw; }
  .editorial-active .editorial-hero > aside { width: 28%; padding-top: 0; }
  .editorial-active .editorial-hero-copy { width: calc(72% - 22px); }
  .editorial-active .editorial-hero-copy h1 { margin-left: -20vw; font-size: clamp(43px, 14vw, 78px); }
  .editorial-active .editorial-hero-copy > p, .editorial-active .editorial-hero-action { margin-left: 0; }
  .editorial-active .editorial-hero-art { width: 100%; max-width: none; }
  .editorial-active .editorial-banner { display: block; }
  .editorial-active .editorial-banner-copy { border-top: 1px solid var(--ed-line); border-left: 0; }
  .editorial-active .editorial-project-row { grid-template-columns: 32px minmax(0, 1fr); gap: 12px; }
  .editorial-active .editorial-project-thumb { grid-column: 2; grid-row: auto; width: 100%; }
  .editorial-active .editorial-category-grid, .editorial-active .editorial-blog-grid, .editorial-active .editorial-tools-grid { grid-template-columns: 1fr; }
  .editorial-active .editorial-category-card { min-height: 380px; }
  .editorial-active .editorial-service-row { grid-template-columns: 34px 1fr 22px; }
  .editorial-active .editorial-field-row { grid-template-columns: 1fr; }
  .editorial-active .editorial-custom-code-inner { display: block; }
}
