@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Sora:wght@300;400;500;600;700&display=swap');

:root {
  --ink: #16110e;
  --ink-800: #1e1814;
  --ink-700: #2e2723;
  --ink-500: #5c534b;
  --ink-200: #c9c0b6;
  --paper: #f4f0ea;
  --paper-deep: #ede8e0;
  --orange: #ff5b22;
  --orange-press: #e04a16;
  --orange-tint: #ffe3d8;
  --signal: #f2c230;
  --line: #c9c0b6;
  --line-dark: #2e2723;
  --display: 'Sora', system-ui, sans-serif;
  --body: 'DM Sans', system-ui, sans-serif;
  --mono: 'DM Mono', ui-monospace, monospace;
  --shell: min(1240px, calc(100% - 48px));
  --ease: cubic-bezier(.2,0,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; overflow-x: clip; color: var(--ink); background: var(--paper); font-family: var(--body); font-size: 16px; line-height: 1.6; }
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }

.skip-link { position: fixed; left: 16px; top: -64px; z-index: 100; background: var(--orange); color: var(--ink); padding: 10px 14px; font-weight: 700; transition: top .14s var(--ease); }
.skip-link:focus { top: 16px; outline: 2px solid var(--paper); outline-offset: 2px; }
.shell { width: var(--shell); margin-inline: auto; }
.eyebrow, .eyebrow-dark, .label { margin: 0; font: 500 11px/1.3 var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.eyebrow { color: var(--orange); }.eyebrow-dark { color: var(--ink-500); }.label { color: var(--ink-500); }
.copy { color: var(--ink-500); max-width: 58ch; }.copy p:first-child { margin-top: 0; }.copy p:last-child { margin-bottom: 0; }
h1, h2, h3, h4 { font-family: var(--display); margin: 0; font-weight: 500; letter-spacing: -.01em; }
h1 { font-size: clamp(44px, 7vw, 96px); line-height: .98; max-width: 12ch; }
h2 { font-size: clamp(30px, 4.2vw, 56px); line-height: 1.04; max-width: 17ch; }
h3 { font-size: clamp(20px, 2vw, 28px); line-height: 1.18; }
h4 { font-size: 17px; line-height: 1.28; }

/* Original NOVA mark, kept in its own colors without a single-color treatment. */
.nova-logo { width: 126px; aspect-ratio: 1559 / 409; display: block; background: url('assets/nova-logo-original.svg') center / contain no-repeat; }
.site-header .nova-logo { animation: nova-brand-glow 5s ease-in-out infinite; }
@keyframes nova-brand-glow {
  0%, 76%, 100% { filter: drop-shadow(0 0 0 rgba(83,195,223,0)); }
  82% { filter: drop-shadow(0 0 6px rgba(83,195,223,.5)); }
  87% { filter: drop-shadow(0 0 15px rgba(83,195,223,.95)) drop-shadow(0 0 28px rgba(83,195,223,.48)); }
  93% { filter: drop-shadow(0 0 7px rgba(83,195,223,.42)); }
}
.brand { display: inline-flex; align-items: center; }.brand:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }

.site-header { height: 76px; background: var(--ink); color: var(--paper); border-bottom: 1px solid var(--line-dark); position: sticky; top: 0; z-index: 40; }
.header-inner { width: var(--shell); min-height: 76px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.brand-detail { display: flex; align-items: center; }
.nav { display: flex; align-items: center; gap: 24px; }.nav a { color: var(--ink-200); font: 500 11px/1 var(--mono); letter-spacing: .11em; text-transform: uppercase; padding: 8px 0; border-bottom: 1px solid transparent; transition: color .14s var(--ease), border-color .14s var(--ease); }.nav a:hover, .nav a[aria-current='page'] { color: var(--paper); border-color: var(--orange); }
.header-action { background: var(--orange); color: var(--ink); font: 600 11px/1 var(--mono); letter-spacing: .08em; padding: 12px 14px; text-transform: uppercase; border: 1px solid var(--orange); transition: background-color .14s var(--ease), border-color .14s var(--ease); }.header-action:hover { background: var(--orange-press); border-color: var(--orange-press); }
.menu-button { display: none; border: 0; background: transparent; color: var(--paper); font: 500 11px/1 var(--mono); letter-spacing: .13em; text-transform: uppercase; padding: 10px 0; }

.button { display: inline-flex; gap: 13px; align-items: center; justify-content: center; min-height: 46px; padding: 13px 16px; border: 1px solid currentColor; color: var(--ink); background: var(--orange); font: 600 11px/1 var(--mono); letter-spacing: .10em; text-transform: uppercase; transition: background-color .14s var(--ease), color .14s var(--ease), border-color .14s var(--ease); }
.button:hover { color: var(--paper); background: var(--orange-press); border-color: var(--orange-press); }.button.dark { color: var(--paper); background: var(--ink); border-color: var(--ink); }.button.dark:hover { color: var(--ink); background: var(--orange); border-color: var(--orange); }.button.ghost { color: var(--paper); background: transparent; border-color: var(--line-dark); }.button.ghost:hover { color: var(--ink); background: var(--paper); border-color: var(--paper); }.button .arrow { font: 18px/0 var(--display); }

.bevel { position: relative; clip-path: polygon(0 0, calc(100% - 44px) 0, 100% 44px, 100% 100%, 0 100%); }.bevel::after { content: ''; position: absolute; right: 0; top: 0; width: 21px; height: 21px; background: var(--orange); }
.bevel.reverse { clip-path: polygon(0 0, 100% 0, 100% 100%, 44px 100%, 0 calc(100% - 44px)); }.bevel.reverse::after { right: auto; top: auto; left: 0; bottom: 0; }

.home-hero { background: var(--ink); color: var(--paper); overflow: hidden; border-bottom: 1px solid var(--line-dark); }
.hero-grid { width: var(--shell); margin: auto; min-height: min(780px, calc(100svh - 76px)); display: grid; grid-template-columns: minmax(0, .86fr) minmax(390px, 1.14fr); align-items: end; gap: clamp(32px, 6vw, 96px); padding: 72px 0 56px; }
.hero-copy { align-self: center; padding: 44px 0; }.hero-copy h1 { margin: 18px 0 24px; }.hero-copy .lead { color: var(--ink-200); max-width: 48ch; margin: 0 0 30px; font-size: clamp(17px, 1.5vw, 21px); line-height: 1.45; }.hero-operator { display: flex; gap: 12px; border-top: 1px solid var(--line-dark); padding-top: 14px; margin-top: 46px; font-size: 13px; color: var(--ink-200); }.operator-bar { width: 3px; background: var(--orange); }
.hero-media { position: relative; align-self: stretch; min-height: 500px; background: var(--ink-800); border-left: 1px solid var(--line-dark); border-right: 1px solid var(--line-dark); overflow: hidden; }.hero-media video, .hero-media img { position: absolute; inset: 0; height: 100%; width: 100%; object-fit: cover; }.hero-media::before { content: ''; position: absolute; z-index: 2; inset: 0; border: 1px solid rgba(244,240,234,.18); pointer-events: none; }.hero-media::after { content: ''; position: absolute; z-index: 2; width: 48px; height: 48px; bottom: 0; right: 0; border-left: 1px solid rgba(244,240,234,.22); border-top: 1px solid rgba(244,240,234,.22); background: var(--ink); }.hero-meta { position: absolute; z-index: 3; left: 18px; bottom: 18px; right: 68px; display: flex; align-items: center; justify-content: space-between; gap: 12px; font: 500 10px/1 var(--mono); letter-spacing: .13em; text-transform: uppercase; }.tally { display: inline-flex; align-items: center; gap: 8px; color: var(--paper); }.tally::before { content: ''; height: 7px; width: 7px; background: var(--orange); animation: tally 1.4s step-end infinite; }@keyframes tally { 50% { opacity: .25; } }

.statement { padding: 120px 0; background: var(--paper); border-bottom: 1px solid var(--line); }.statement-inner { width: var(--shell); margin: auto; display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }.statement h2 { max-width: 19ch; }.statement .copy { align-self: end; font-size: 18px; }
.services { background: var(--ink); color: var(--paper); padding: 112px 0; }.section-head { width: var(--shell); margin: 0 auto 46px; display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }.section-head h2 { max-width: 15ch; }.section-head .copy { color: var(--ink-200); align-self: end; }
.service-grid { width: var(--shell); margin: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--line-dark); }.service { position: relative; display: flex; flex-direction: column; min-height: 420px; padding: 28px; background: var(--ink-800); overflow: hidden; }.service .number { color: var(--orange); font: 400 13px/1 var(--mono); letter-spacing: .12em; }.service h3 { margin-top: auto; max-width: 10ch; }.service p { color: var(--ink-200); margin: 12px 0 22px; max-width: 33ch; }.service .service-media { position: absolute; z-index: 0; inset: 0; opacity: .32; background: center / cover no-repeat; }.service .content { z-index: 1; position: relative; }.service:nth-child(1) .service-media { background-image: url('assets/leo-painter.jpg'); }.service:nth-child(2) .service-media { background-image: url('assets/live-band.jpg'); }.service:nth-child(3) .service-media { background-image: url('assets/videowall.jpg'); background-position: center top; }.service:hover .service-media { opacity: .48; }
.service-link { color: var(--paper); border-bottom: 1px solid var(--orange); width: max-content; font: 500 11px/1.4 var(--mono); letter-spacing: .10em; text-transform: uppercase; padding-bottom: 4px; }

.proof { background: var(--orange); color: var(--ink); border-bottom: 1px solid var(--ink); }.proof-inner { width: var(--shell); margin: auto; padding: 24px 0; display: flex; gap: 24px; align-items: center; justify-content: space-between; }.proof strong { font: 500 clamp(20px, 2vw, 30px)/1.1 var(--display); }.proof p { margin: 0; max-width: 65ch; font-size: 14px; }.proof .eyebrow-dark { color: var(--ink-700); }.proof .ncore-mark { width: 91px; filter: brightness(0); }
.case-callout { width: var(--shell); margin: 0 auto; padding: 112px 0; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: clamp(34px, 8vw, 112px); align-items: center; }.case-callout-media { min-height: 500px; background: var(--ink); position: relative; }.case-callout-media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }.case-callout-copy h2 { margin: 15px 0 22px; }.case-callout-copy .button { margin-top: 26px; }

.page-hero { color: var(--paper); background: var(--ink); padding: 112px 0 72px; border-bottom: 1px solid var(--line-dark); }.page-hero .shell { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }.page-hero h1 { margin: 14px 0 20px; }.page-hero .lead { max-width: 57ch; color: var(--ink-200); font-size: 19px; line-height: 1.45; }
.page-hero.accent { background: var(--orange); color: var(--ink); border-color: var(--ink); }.page-hero.accent .eyebrow { color: var(--ink-700); }.page-hero.accent .lead { color: var(--ink-700); }

.live-hero { color: var(--paper); position: relative; overflow: hidden; min-height: min(800px, calc(100svh - 76px)); background: var(--ink); border-bottom: 1px solid var(--line-dark); }.live-hero > img { height: 100%; width: 100%; position: absolute; inset: 0; object-fit: cover; }.live-hero::before { content: ''; position: absolute; z-index: 1; inset: 0; background: rgba(22,17,14,.68); }.live-hero .shell { min-height: min(800px, calc(100svh - 76px)); position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: flex-end; padding: 86px 0 56px; }.live-hero h1 { max-width: 11ch; margin: 18px 0 22px; }.live-hero .lead { max-width: 57ch; font-size: clamp(17px, 2vw, 22px); color: var(--paper); }
.live-hero .tally { position: absolute; top: 26px; left: 0; }.live-hero .hero-buttons { display: flex; align-items: center; gap: 12px; margin-top: 32px; flex-wrap: wrap; }
.platform-strip { background: var(--ink-800); color: var(--paper); border-bottom: 1px solid var(--line-dark); }.platform-strip .shell { min-height: 85px; display: flex; align-items: center; gap: 24px; justify-content: space-between; }.platform-chips { display: flex; gap: 7px; flex-wrap: wrap; }.chip { color: var(--ink-200); border: 1px solid var(--line-dark); padding: 7px 10px; font: 500 10px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.live-intro { padding: 112px 0; background: var(--paper); }.live-intro .shell { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }.live-intro .statement-copy { font: 300 clamp(30px,4vw,58px)/1.08 var(--display); max-width: 20ch; }
.method-grid { width: var(--shell); margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); gap: 2px; background: var(--line); border-top: 1px solid var(--line); }.method { background: var(--paper); padding: 26px; min-height: 280px; }.method .number { display: block; margin-bottom: 70px; color: var(--orange); font: 500 12px/1 var(--mono); }.method p { color: var(--ink-500); font-size: 14px; margin: 14px 0 0; }
.live-cases { color: var(--paper); background: var(--ink); padding: 112px 0; }.case-grid { width: var(--shell); margin: auto; display: grid; grid-template-columns: 1.3fr .7fr .7fr; grid-auto-rows: 260px; gap: 2px; background: var(--line-dark); }.case-card { position: relative; overflow: hidden; background: var(--ink-800); }.case-card:nth-child(1) { grid-row: span 2; }.case-card:nth-child(4) { grid-column: span 2; }.case-card img { height: 100%; width: 100%; object-fit: cover; opacity: .78; transition: opacity .2s var(--ease), transform .2s var(--ease); }.case-card:hover img { opacity: 1; transform: scale(1.02); }.case-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 16px; color: var(--paper); background: rgba(22,17,14,.82); border-top: 1px solid rgba(244,240,234,.2); font: 500 10px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.camera-mosaic { width: var(--shell); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 225px 225px; gap: 2px; background: var(--line); }.camera-shot { background: var(--ink); position: relative; overflow: hidden; }.camera-shot:first-child { grid-row: span 2; }.camera-shot img { width: 100%; height: 100%; object-fit: cover; }.camera-shot b { position: absolute; left: 10px; bottom: 10px; background: var(--ink); color: var(--paper); border: 1px solid var(--line-dark); padding: 5px 7px; font: 500 9px/1 var(--mono); letter-spacing: .1em; }
.powered-block { color: var(--paper); background: var(--ink-800); padding: 112px 0; border-top: 1px solid var(--line-dark); }.powered-block .shell { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 40px; }.powered-card { border: 1px solid var(--line-dark); padding: 40px; position: relative; }.powered-card::before { content: ''; display: block; height: 3px; width: 48px; background: var(--orange); margin-bottom: 33px; }.powered-card h2 { max-width: 17ch; }.powered-card p { color: var(--ink-200); max-width: 58ch; font-size: 18px; }.powered-logo { width: 128px; margin-top: 28px; }

.story-section { padding: 112px 0; }.story-section.alt { background: var(--ink); color: var(--paper); }.story-section .shell { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 40px; }.story-section .copy { font-size: 18px; }.story-section.alt .copy { color: var(--ink-200); }.story-section .copy h2 { margin-bottom: 28px; }.story-section h2 + .copy { margin-top: 28px; }
.image-band { width: var(--shell); margin: 0 auto; min-height: 560px; position: relative; overflow: hidden; background: var(--ink); }.image-band img { width: 100%; height: 100%; min-height: 560px; object-fit: cover; position: absolute; inset: 0; }.image-band .caption { position: absolute; bottom: 0; left: 0; right: 0; background: var(--ink); border-top: 1px solid var(--line-dark); color: var(--paper); padding: 14px 18px; font: 500 10px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.case-list { width: var(--shell); margin: auto; border-top: 1px solid var(--line); }.case-list article { display: grid; grid-template-columns: 220px minmax(0,1fr) auto; gap: 40px; align-items: center; border-bottom: 1px solid var(--line); padding: 25px 0; }.case-list article p { margin: 0; color: var(--ink-500); }.case-list .tag { font: 500 10px/1.3 var(--mono); letter-spacing: .11em; text-transform: uppercase; color: var(--orange-press); }

.contact-grid { width: var(--shell); margin: auto; padding: 112px 0; display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(36px,8vw,112px); }.contact-list { border-top: 1px solid var(--line); }.contact-list a, .contact-list address { display: block; font-style: normal; padding: 18px 0; border-bottom: 1px solid var(--line); }.contact-list a:hover { color: var(--orange-press); }.contact-form { display: grid; gap: 24px; }.field { display: grid; gap: 8px; }.field label { color: var(--ink-500); font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; }.field input, .field textarea, .field select { min-height: 44px; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; color: var(--ink); background: transparent; padding: 8px 0; outline: none; }.field select { cursor: pointer; }.field textarea { min-height: 136px; resize: vertical; }.field input:focus, .field textarea:focus, .field select:focus { border-bottom: 2px solid var(--orange); }.field input::placeholder, .field textarea::placeholder { color: var(--ink-500); opacity: 1; }.form-note { margin: 0; color: var(--ink-500); font-size: 13px; }

.site-footer { background: var(--ink); color: var(--paper); border-top: 1px solid var(--line-dark); padding: 54px 0 22px; }.footer-grid { width: var(--shell); margin: auto; display: grid; grid-template-columns: 1.3fr .7fr 1fr; gap: 46px; }.footer-grid p { color: var(--ink-200); max-width: 38ch; }.footer-nav { display: grid; align-content: start; gap: 8px; }.footer-nav a { font: 500 11px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-200); }.footer-nav a:hover { color: var(--orange); }.footer-contact a { color: var(--paper); border-bottom: 1px solid var(--line-dark); display: inline-block; padding-bottom: 4px; }.footer-bottom { width: var(--shell); margin: 52px auto 0; padding-top: 16px; border-top: 1px solid var(--line-dark); display: flex; justify-content: space-between; gap: 20px; color: var(--ink-200); font: 400 10px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.made-by-ncore { display: inline-flex; align-items: center; gap: 10px; color: var(--ink-200); transition: color .22s var(--ease), transform .22s var(--ease); }.made-by-ncore:hover { color: var(--paper); transform: translateY(-2px); }.made-by-ncore img { width: 72px; height: auto; transition: filter .22s var(--ease), transform .22s var(--ease); }.made-by-ncore:hover img { filter: brightness(0) invert(1); transform: scale(1.045); }

.whatsapp-float { position: fixed; z-index: 60; right: 22px; bottom: 22px; display: inline-flex; align-items: center; gap: 10px; min-height: 54px; padding: 0 19px 0 14px; border: 1px solid rgba(7,36,20,.16); border-radius: 999px; background: #25d366; color: #072414; box-shadow: 0 14px 32px rgba(0,0,0,.25); font-weight: 800; letter-spacing: -.01em; transition: transform .22s var(--ease), box-shadow .22s var(--ease), background-color .22s var(--ease); }.whatsapp-float:hover { transform: translateY(-4px); background: #35e477; box-shadow: 0 20px 42px rgba(0,0,0,.31); }.whatsapp-float:focus-visible { outline: 3px solid var(--paper); outline-offset: 3px; }.whatsapp-float svg { width: 28px; height: 28px; flex: 0 0 28px; overflow: visible; fill: currentColor; }

@media (max-width: 940px) {
  :root { --shell: min(100% - 32px, 1240px); }
  .nav { position: fixed; z-index: 39; left: 0; right: 0; top: 76px; display: none; background: var(--ink); border-bottom: 1px solid var(--line-dark); padding: 20px 16px 24px; align-items: stretch; gap: 0; }.nav.is-open { display: grid; }.nav a { padding: 15px 0; }.header-action { display: none; }.menu-button { display: block; }
  .hero-grid { grid-template-columns: 1fr; min-height: auto; padding-top: 0; gap: 0; }.hero-copy { padding: 72px 0 46px; }.hero-media { min-height: 420px; border-left: 0; border-right: 0; }.hero-operator { margin-top: 32px; }
  .statement, .services, .live-intro, .live-cases, .powered-block, .story-section { padding: 78px 0; }.statement-inner, .section-head, .page-hero .shell, .live-intro .shell, .powered-block .shell, .story-section .shell { grid-template-columns: 1fr; gap: 22px; }.section-head { margin-bottom: 32px; }.service-grid { grid-template-columns: 1fr; }.service { min-height: 360px; }.proof-inner { align-items: flex-start; flex-direction: column; padding: 24px 0; }
  .case-callout { grid-template-columns: 1fr; gap: 0; padding: 78px 0; }.case-callout-copy { padding-top: 38px; }.case-callout-media { min-height: 400px; }.method-grid { grid-template-columns: 1fr 1fr; }.case-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 230px; }.case-card:nth-child(1), .case-card:nth-child(4) { grid-column: auto; grid-row: auto; }.camera-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 270px 185px 185px; }.camera-shot:first-child { grid-row: span 2; }.contact-grid { grid-template-columns: 1fr; padding: 78px 0; }.footer-grid { grid-template-columns: 1fr 1fr; }.footer-grid > :first-child { grid-column: span 2; }
}
@media (max-width: 600px) {
  h1 { font-size: clamp(42px, 13vw, 67px); }.site-header, .header-inner { min-height: 66px; height: 66px; }.nav { top: 66px; }.nova-logo { width: 106px; }
  .hero-copy { padding: 54px 0 38px; }.hero-media { min-height: 330px; }.home-hero .hero-grid, .live-hero .shell { min-height: calc(100svh - 66px); }.home-hero .hero-grid { display: flex; flex-direction: column; align-items: stretch; }.home-hero .hero-copy { min-height: 440px; }.live-hero .shell { padding: 56px 0 34px; }.live-hero h1 { font-size: clamp(43px, 13vw, 64px); }.live-hero-tools { right: 16px; bottom: 16px; }
  .whatsapp-float { right: 14px; bottom: 14px; width: 54px; min-height: 54px; justify-content: center; padding: 0; }.whatsapp-float span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .statement, .services, .live-intro, .live-cases, .powered-block, .story-section { padding: 64px 0; }.section-head h2, .statement h2 { max-width: 13ch; }.service { min-height: 330px; padding: 22px; }.case-callout { padding: 64px 0; }.case-callout-media { min-height: 330px; }.method-grid { grid-template-columns: 1fr; }.method { min-height: 220px; }.method .number { margin-bottom: 42px; }.case-grid { grid-template-columns: 1fr; grid-auto-rows: 260px; }.case-card:nth-child(1) { grid-row: span 1; }.case-card:nth-child(4) { grid-column: auto; }.camera-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 150px 150px; }.image-band, .image-band img { min-height: 365px; }.page-hero { padding: 72px 0 50px; }.page-hero .lead { font-size: 17px; }.case-list article { grid-template-columns: 1fr; gap: 10px; }.case-list article .arrow { display: none; }.footer-grid { grid-template-columns: 1fr; gap: 30px; }.footer-grid > :first-child { grid-column: auto; }.footer-bottom { display: block; }.footer-bottom span + span { display: block; margin-top: 9px; }.made-by-ncore { margin-top: 14px; }
}

.tv-page-hero { min-height: min(760px, calc(100svh - 76px)); position: relative; display: grid; align-items: end; overflow: hidden; background: #171319; color: #fff; }
.tv-page-hero > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tv-page-hero-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(23,19,25,.9) 0%, rgba(23,19,25,.53) 48%, rgba(23,19,25,.12)); }
.tv-page-hero-copy { width: var(--shell); position: relative; z-index: 1; margin: auto; padding: 86px 0 68px; }
.tv-page-hero-copy h1 { max-width: 10ch; margin: 17px 0 21px; font: 500 clamp(46px,7vw,96px)/1 var(--display); letter-spacing: -.06em; }.tv-page-hero-copy > p:not(.nova-kicker) { max-width: 48ch; margin: 0 0 30px; font-size: 19px; color: rgba(255,255,255,.91); }
.tv-page-intro { width: var(--shell); margin: auto; padding: 112px 0; display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(42px,8vw,120px); }.tv-page-intro h2, .tv-page-totem-copy h2 { max-width: 13ch; margin: 17px 0 22px; font: 500 clamp(34px,4.4vw,63px)/1.07 var(--display); letter-spacing: -.055em; }.tv-page-intro p:not(.nova-kicker), .tv-page-totem-copy p:not(.nova-kicker) { max-width: 47ch; color: #554d57; font-size: 17px; }.tv-page-intro figure { margin: 0; min-height: 440px; overflow: hidden; border-radius: 32px; background: #f2ddcf; }.tv-page-intro img { width: 100%; height: 100%; object-fit: cover; }
.tv-page-totem { display: grid; grid-template-columns: 1fr 1fr; background: #171319; color: var(--paper); }.tv-page-totem .totem-stage { min-height: 630px; }.tv-page-totem-copy { align-self: center; padding: clamp(48px,8vw,110px); }.tv-page-totem-copy .nova-kicker { color: var(--nova-peach); }.tv-page-totem-copy p:not(.nova-kicker) { color: rgba(255,255,255,.74); }
.tv-capabilities { width: var(--shell); margin: 100px auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }.tv-capabilities article { min-height: 260px; padding: 26px; background: #f5e5d8; border-radius: 24px; }.tv-capabilities b { color: var(--nova-pink); font: 500 11px/1 var(--mono); }.tv-capabilities h3 { margin: 75px 0 10px; font: 500 25px/1.1 var(--display); letter-spacing: -.04em; }.tv-capabilities p { margin: 0; color: #554d57; }

@media (max-width: 940px) {
  .tv-page-intro { grid-template-columns: 1fr; }.tv-page-totem { grid-template-columns: 1fr; }.tv-page-totem-copy { padding: 70px 32px; }.tv-capabilities { grid-template-columns: 1fr; gap: 10px; margin: 70px auto; }.tv-capabilities article { min-height: 210px; }.tv-capabilities h3 { margin-top: 45px; }
}
@media (max-width: 600px) {
  .tv-page-hero { min-height: calc(100svh - 66px); }.tv-page-hero-copy { padding: 55px 0 38px; }.tv-page-hero-copy h1 { font-size: clamp(45px,13vw,68px); }.tv-page-hero-copy > p:not(.nova-kicker) { font-size: 16px; }.tv-page-intro { padding: 70px 0; gap: 32px; }.tv-page-intro figure { min-height: 300px; border-radius: 21px; }.tv-page-totem-copy { padding: 65px 24px; }.tv-capabilities { margin: 62px auto; }.tv-capabilities article { padding: 23px; border-radius: 20px; }
}

.content-page-hero { min-height: min(690px, calc(100svh - 76px)); position: relative; overflow: hidden; display: grid; align-items: center; background: #171319; color: #fff; }.content-page-hero > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }.content-page-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(23,19,25,.88), rgba(23,19,25,.25)); }.content-page-copy { width: var(--shell); position: relative; z-index: 1; margin: auto; padding: 65px 0; }.content-page-copy h1 { max-width: 9ch; margin: 18px 0; font: 500 clamp(45px,6vw,84px)/1 var(--display); letter-spacing: -.06em; }.content-page-copy > p:not(.nova-kicker) { max-width: 43ch; margin: 0 0 30px; font-size: 19px; color: rgba(255,255,255,.92); }
@media (max-width: 600px) { .content-page-hero { min-height: calc(100svh - 66px); }.content-page-copy { padding: 48px 0; }.content-page-copy h1 { font-size: clamp(46px,13vw,67px); }.content-page-copy > p:not(.nova-kicker) { font-size: 16px; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* NOVA V2: a softer, more playful layer that brings back the motion and color cues
   of the original site while keeping TV Corporativa at the center of the story. */
.nova-v2 { --nova-pink: #f03d88; --nova-cyan: #53c3df; --nova-peach: #ffb369; --nova-paper: #fff9f2; background: var(--nova-paper); }
.nova-v2 .site-header { background: #171319; border-bottom-color: rgba(255,255,255,.16); }
.nova-v2 .header-action, .nova-v2 .nova-pill { border-radius: 999px; }
.nova-v2 .header-action { background: var(--nova-peach); border-color: var(--nova-peach); font-family: var(--body); letter-spacing: .03em; text-transform: none; font-weight: 700; }
.nova-v2 .header-action:hover { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.nova-v2 .nav a { font-family: var(--body); font-weight: 600; letter-spacing: .04em; text-transform: none; }

.nova-video-hero { min-height: min(790px, calc(100svh - 76px)); position: relative; isolation: isolate; overflow: hidden; color: #fff; background: var(--ink); }
.nova-hero-video { position: absolute; z-index: -4; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-wash { position: absolute; z-index: -3; inset: 0; background: linear-gradient(90deg, rgba(17,12,17,.78) 0%, rgba(17,12,17,.42) 45%, rgba(17,12,17,.08) 100%); }
.nova-hero-inner { width: var(--shell); min-height: min(790px, calc(100svh - 76px)); margin: auto; padding: clamp(34px,6vw,78px) 0 34px; display: flex; flex-direction: column; justify-content: space-between; }
.nova-kicker { margin: 0; color: var(--nova-peach); font: 500 11px/1.25 var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.nova-kicker.dark { color: #5f3050; }
.nova-hero-copy { max-width: 670px; margin: auto 0; padding: 54px 0 28px; }
.nova-hero-copy h1 { max-width: none; margin: 0; font: 500 clamp(42px, 6.1vw, 88px)/1.02 var(--display); letter-spacing: -.055em; }
.nova-hero-copy > p { max-width: 50ch; margin: 25px 0 0; font-size: clamp(17px, 1.65vw, 21px); line-height: 1.45; color: rgba(255,255,255,.92); }
.nova-v2 .hero-buttons { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 31px; }
.nova-pill { display: inline-flex; align-items: center; gap: 14px; min-height: 49px; padding: 13px 20px; background: var(--nova-peach); color: var(--ink); font-weight: 700; letter-spacing: -.01em; transition: transform .18s var(--ease), background-color .18s var(--ease); }
.nova-pill:hover { background: var(--orange); transform: translateY(-2px); }
.nova-pill span { font-size: 20px; line-height: 1; }
.nova-pill.dark { background: var(--ink); color: var(--paper); }
.nova-pill.dark:hover { background: var(--nova-pink); }
.nova-text-link { padding: 10px 0; color: #fff; border-bottom: 1px solid currentColor; font-weight: 600; }
.nova-text-link:hover { color: var(--nova-peach); }
.nova-text-link.light { color: var(--paper); }
.hero-bottom { display: flex; gap: 22px; color: rgba(255,255,255,.82); font: 500 10px/1 var(--mono); letter-spacing: .12em; }
.hero-bottom span + span::before { content: '•'; margin-right: 22px; color: var(--nova-peach); }

.tv-spotlight { overflow: hidden; display: grid; grid-template-columns: minmax(0, .95fr) minmax(440px, 1.05fr); min-height: 660px; background: var(--nova-paper); }
.tv-copy { max-width: 570px; align-self: center; justify-self: end; padding: 80px clamp(30px,7vw,100px) 80px 48px; }
.tv-copy h2, .nova-section-head h2, .screen-reel-copy h2, .nova-closing h2 { max-width: none; margin: 18px 0 21px; font: 500 clamp(34px, 4vw, 62px)/1.08 var(--display); letter-spacing: -.05em; }
.tv-copy > p:not(.nova-kicker) { max-width: 45ch; margin: 0 0 30px; color: #554d57; font-size: 18px; }
.totem-stage { position: relative; min-height: 660px; overflow: hidden; display: grid; place-items: center; background: #ffd4bb; }
.stage-shape { position: absolute; display: block; width: 360px; height: 360px; border-radius: 48% 52% 55% 45%; }
.shape-cyan { top: -105px; right: -96px; background: var(--nova-cyan); }
.shape-pink { width: 460px; height: 200px; bottom: -80px; left: -82px; background: var(--nova-pink); border-radius: 50% 50% 0 0; transform: rotate(12deg); }
.totem { z-index: 2; width: min(44%, 264px); min-width: 210px; filter: drop-shadow(15px 23px 0 rgba(45,27,38,.19)); }
.totem-cap { height: 20px; border-radius: 17px 17px 3px 3px; background: #2b2230; }
.totem-screen { padding: 12px; background: #2b2230; border-radius: 4px; }
.totem-screen video { width: 100%; height: auto; aspect-ratio: 9/16; object-fit: cover; background: #111; }
.totem-base { width: 145%; height: 42px; margin: 0 0 0 -22.5%; border-radius: 0 0 20px 20px; background: #2b2230; }
.totem-note { position: absolute; z-index: 3; left: 35px; bottom: 31px; margin: 0; color: #2b2230; font: 500 11px/1.28 var(--mono); letter-spacing: .07em; }

.nova-services { padding: 112px 0; background: #171319; color: var(--paper); }
.nova-section-head { width: var(--shell); margin: 0 auto 48px; display: grid; grid-template-columns: 220px minmax(0, 770px); gap: 40px; }
.nova-section-head h2 { margin: 0; font-size: clamp(34px,4.2vw,61px); }
.nova-service-grid { width: var(--shell); margin: auto; display: grid; grid-template-columns: 1.18fr .91fr .91fr; gap: 14px; }
.nova-service-card { position: relative; isolation: isolate; min-height: 440px; padding: 26px; overflow: hidden; border-radius: 26px; display: flex; flex-direction: column; background: #322433 center/cover no-repeat; }
.nova-service-card::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(17,12,17,.02), rgba(17,12,17,.86)); }
.card-tv { background-image: url('assets/videowall.jpg'); }.card-content { background-image: url('assets/leo-painter.jpg'); }.card-live { background-image: url('assets/live-band.jpg'); }
.nova-service-card > p { margin: 0; color: var(--nova-peach); font: 500 11px/1 var(--mono); }.nova-service-card h3 { max-width: 10ch; margin: auto 0 10px; font: 500 clamp(26px, 3vw, 42px)/1 var(--display); letter-spacing: -.05em; }.nova-service-card > span { max-width: 27ch; color: rgba(255,255,255,.85); line-height: 1.35; }.nova-service-card small { display: block; margin-top: 6px; color: var(--nova-peach); font: 500 10px/1.2 var(--mono); letter-spacing: .07em; }.nova-service-card a { margin-top: 24px; color: #fff; font-weight: 700; }.nova-service-card a b { display: inline-block; margin-left: 7px; font-size: 20px; transition: transform .18s var(--ease); }.nova-service-card a:hover b { transform: translate(3px,-3px); }

.screen-reel { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr); background: #f03d88; color: #fff; }
.screen-reel-video { min-height: 490px; overflow: hidden; background: #2d1631; }.screen-reel-video video { width: 100%; height: 100%; object-fit: cover; }
.screen-reel-copy { align-self: center; max-width: 560px; padding: clamp(50px,7vw,106px); }.screen-reel-copy .nova-kicker { color: #fff5d7; }.screen-reel-copy h2 { font-size: clamp(33px,4vw,58px); }.screen-reel-copy > p:not(.nova-kicker) { max-width: 40ch; margin: 0 0 27px; font-size: 18px; }
.nova-closing { padding: 118px 24px; text-align: center; background: var(--nova-paper); }.nova-closing .nova-kicker { margin-bottom: 16px; }.nova-closing h2 { margin: 0 auto 30px; }.nova-closing .nova-pill { margin-inline: auto; }

.nova-v2 .site-footer { background: #171319; }.nova-v2 .footer-grid { align-items: start; }.nova-v2 .footer-contact .eyebrow { color: var(--nova-peach); }

@media (max-width: 940px) {
  .nova-v2 .nav { background: #171319; }
  .nova-video-hero, .nova-hero-inner { min-height: 700px; }
  .tv-spotlight { grid-template-columns: 1fr; }.tv-copy { max-width: none; justify-self: stretch; padding: 76px 32px; }.totem-stage { min-height: 600px; }
  .nova-section-head { grid-template-columns: 1fr; gap: 20px; }.nova-service-grid { grid-template-columns: 1fr 1fr; }.nova-service-card:first-child { grid-column: span 2; }.screen-reel { grid-template-columns: 1fr; }.screen-reel-copy { max-width: none; }
}
@media (max-width: 600px) {
  .nova-v2 .header-action { display: none; }.nova-video-hero, .nova-hero-inner { min-height: calc(100svh - 66px); }.nova-hero-inner { padding: 29px 0 26px; }.nova-hero-copy { margin: auto 0; padding: 30px 0; }.nova-hero-copy h1 { font-size: clamp(42px,12vw,62px); }.nova-hero-copy > p { font-size: 16px; }.hero-bottom { gap: 9px; font-size: 8px; letter-spacing: .06em; }.hero-bottom span + span::before { margin-right: 9px; }
  .hero-wash { background: linear-gradient(0deg, rgba(17,12,17,.74), rgba(17,12,17,.21)); }
  .tv-copy { padding: 63px 24px; }.tv-copy h2, .nova-section-head h2, .screen-reel-copy h2, .nova-closing h2 { font-size: 36px; }.totem-stage { min-height: 520px; }.totem { min-width: 185px; }.totem-note { left: 20px; bottom: 21px; font-size: 9px; }
  .nova-services { padding: 70px 0; }.nova-section-head { margin-bottom: 31px; }.nova-service-grid { grid-template-columns: 1fr; gap: 10px; }.nova-service-card, .nova-service-card:first-child { grid-column: auto; min-height: 350px; border-radius: 20px; }.screen-reel-video { min-height: 300px; }.screen-reel-copy { padding: 60px 24px; }.nova-closing { padding: 78px 24px; }
}

/* Internal-page navigation and interaction layer. */
.page-subnav { position: sticky; top: 76px; z-index: 36; height: 48px; color: var(--paper); background: rgba(23,19,25,.94); border-bottom: 1px solid rgba(255,255,255,.13); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.page-subnav-inner { width: var(--shell); height: 100%; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.page-subnav-inner > span { color: var(--nova-peach); font: 500 10px/1 var(--mono); letter-spacing: .12em; white-space: nowrap; }
.page-subnav-inner > div { height: 100%; display: flex; align-items: center; gap: 24px; overflow-x: auto; scrollbar-width: none; }
.page-subnav-inner > div::-webkit-scrollbar { display: none; }
.page-subnav a { position: relative; color: rgba(255,255,255,.72); font-size: 12px; font-weight: 600; white-space: nowrap; transition: color .18s var(--ease); }
.page-subnav a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--nova-peach); transition: right .2s var(--ease); }
.page-subnav a:hover { color: #fff; }.page-subnav a:hover::after { right: 0; }

.button, .nova-pill, .header-action { position: relative; overflow: hidden; isolation: isolate; transform: translateZ(0); }
.button::before, .nova-pill::before, .header-action::before { content: ''; position: absolute; z-index: -1; inset: 0; background: rgba(255,255,255,.24); transform: translateX(-105%) skewX(-18deg); transition: transform .36s var(--ease); }
.button:hover::before, .nova-pill:hover::before, .header-action:hover::before { transform: translateX(105%) skewX(-18deg); }
.button:hover, .header-action:hover { transform: translateY(-2px); }

/* LIVE — NCORE capability, NOVA identity. */
.nova-live-page { background: var(--nova-paper); }
.live-reel-hero { position: relative; isolation: isolate; min-height: min(790px, calc(100svh - 124px)); overflow: hidden; display: flex; align-items: flex-end; color: #fff; background: #100e12; }
.live-reel-video { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.live-reel-wash { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(12,9,13,.9) 0%, rgba(12,9,13,.6) 45%, rgba(12,9,13,.16) 77%), linear-gradient(0deg, rgba(12,9,13,.64), transparent 42%); }
.live-reel-shell { width: var(--shell); margin: auto; padding: clamp(68px,9vw,128px) 0 40px; }
.live-reel-shell h1 { max-width: 10.8ch; margin: 17px 0 23px; font: 500 clamp(48px,7.2vw,104px)/.95 var(--display); letter-spacing: -.06em; }
.live-reel-shell > p:not(.nova-kicker) { max-width: 58ch; margin: 0; color: rgba(255,255,255,.86); font-size: clamp(17px,1.7vw,21px); line-height: 1.45; }
.live-reel-shell .hero-buttons { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-top: 32px; }
.live-hero-status { margin-top: 58px; display: flex; gap: 28px; flex-wrap: wrap; color: rgba(255,255,255,.78); font: 500 10px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.live-hero-status span { display: inline-flex; align-items: center; gap: 9px; }.live-hero-status span::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--nova-peach); }
.video-sound-toggle { position: absolute; z-index: 4; right: max(24px, calc((100vw - 1240px)/2)); bottom: 31px; min-height: 48px; display: inline-flex; align-items: center; gap: 9px; padding: 0 16px; color: #fff; background: rgba(18,14,20,.72); border: 1px solid rgba(255,255,255,.32); border-radius: 999px; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: transform .18s var(--ease), background .18s var(--ease); }
.video-sound-toggle:hover { transform: translateY(-3px); background: rgba(255,91,34,.88); }.video-sound-toggle svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; }.video-sound-toggle span { font-size: 12px; font-weight: 700; }
.live-platforms { overflow: hidden; color: var(--paper); background: #211a23; border-block: 1px solid rgba(255,255,255,.12); }
.live-platforms .shell { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 26px; }.live-platforms p { margin: 0; color: var(--nova-peach); font: 500 10px/1.2 var(--mono); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.platform-list { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }.platform-list span { padding: 9px 12px; color: rgba(255,255,255,.75); border: 1px solid rgba(255,255,255,.15); border-radius: 999px; font-size: 12px; font-weight: 600; transition: color .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease); }.platform-list span:hover { color: #fff; border-color: var(--nova-peach); transform: translateY(-2px); }
.live-method, .live-structure { padding: 112px 0; background: var(--nova-paper); }
.live-section-head { width: var(--shell); margin: 0 auto 48px; display: grid; grid-template-columns: 220px minmax(0,760px); gap: 40px; }.live-section-head h2 { max-width: none; font-size: clamp(34px,4.4vw,64px); letter-spacing: -.055em; }.live-section-head > div > p { max-width: 56ch; margin: 20px 0 0; color: #655967; font-size: 18px; }
.live-section-head.light { color: #fff; }.live-section-head.light > div > p { color: rgba(255,255,255,.66); }
.live-method-grid { width: var(--shell); margin: auto; display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; }
.live-method-grid article { min-height: 320px; display: flex; flex-direction: column; padding: 23px; color: #fff; background: #271e29; border: 1px solid rgba(255,255,255,.06); border-radius: 22px; transition: transform .22s var(--ease), background .22s var(--ease), box-shadow .22s var(--ease); }
.live-method-grid article:nth-child(2n) { background: #3a2939; }.live-method-grid article:hover { transform: translateY(-7px); background: #ff5b22; box-shadow: 0 22px 44px rgba(54,26,43,.16); }
.live-method-grid b { color: var(--nova-peach); font: 500 11px/1 var(--mono); }.live-method-grid article:hover b { color: #fff; }.live-method-grid h3 { margin-top: auto; font-size: 23px; letter-spacing: -.04em; }.live-method-grid p { margin: 12px 0 0; color: rgba(255,255,255,.68); font-size: 14px; line-height: 1.45; }.live-method-grid article:hover p { color: rgba(255,255,255,.9); }
.live-portfolio { padding: 112px 0 118px; overflow: hidden; color: #fff; background: #171319; }
.portfolio-scroller { position: relative; width: min(1390px, calc(100% - 28px)); margin: auto; }
.portfolio-track { overflow-x: auto; display: flex; gap: 34px; padding: 6px 64px 22px; scroll-snap-type: x mandatory; scrollbar-color: var(--nova-peach) rgba(255,255,255,.08); scrollbar-width: thin; cursor: grab; }.portfolio-track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.portfolio-group { flex: 0 0 auto; margin: 0; scroll-snap-align: start; }.portfolio-group > p { margin: 0 0 13px; color: rgba(255,255,255,.64); font: 500 10px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; }.portfolio-group-row { display: flex; gap: 12px; }
.portfolio-tile { position: relative; flex: 0 0 310px; width: 310px; aspect-ratio: 4/5; overflow: hidden; padding: 0; color: #fff; text-align: left; background: #2a222b; border: 1px solid rgba(255,255,255,.14); border-radius: 22px; scroll-snap-align: start; transition: transform .22s var(--ease), border-color .22s var(--ease), box-shadow .22s var(--ease); }
.portfolio-tile::after { content: 'ABRIR ↗'; position: absolute; top: 15px; right: 15px; padding: 8px 10px; color: #171319; background: var(--nova-peach); border-radius: 999px; font: 600 9px/1 var(--mono); letter-spacing: .08em; opacity: 0; transform: translateY(-7px); transition: opacity .2s var(--ease), transform .2s var(--ease); }.portfolio-tile:hover, .portfolio-tile:focus-visible { transform: translateY(-6px); border-color: var(--nova-peach); box-shadow: 0 24px 54px rgba(0,0,0,.32); }.portfolio-tile:hover::after, .portfolio-tile:focus-visible::after { opacity: 1; transform: translateY(0); }
.portfolio-tile video { width: 100%; height: 100%; object-fit: cover; filter: saturate(.86); transition: transform .35s var(--ease), filter .35s var(--ease); }.portfolio-tile:hover video, .portfolio-tile:focus-visible video { transform: scale(1.035); filter: saturate(1.08); }
.portfolio-tile > span { position: absolute; left: 0; right: 0; bottom: 0; padding: 56px 18px 18px; background: linear-gradient(transparent, rgba(12,9,13,.94)); }.portfolio-tile b, .portfolio-tile small { display: block; }.portfolio-tile b { font: 600 20px/1.05 var(--display); letter-spacing: -.03em; }.portfolio-tile small { margin-top: 7px; color: rgba(255,255,255,.7); font-size: 12px; }
.portfolio-nav { position: absolute; z-index: 4; top: 54%; width: 48px; height: 48px; display: grid; place-items: center; color: #171319; background: var(--nova-peach); border: 0; border-radius: 50%; box-shadow: 0 12px 30px rgba(0,0,0,.28); font-size: 21px; transition: transform .18s var(--ease), background .18s var(--ease); }.portfolio-nav:hover { transform: scale(1.08); background: #fff; }.portfolio-nav.prev { left: 8px; }.portfolio-nav.next { right: 8px; }
.structure-grid { width: var(--shell); margin: auto; display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid #d4c8ce; border-radius: 25px; overflow: hidden; }.structure-grid article { min-height: 290px; padding: 30px; border-right: 1px solid #d4c8ce; transition: background .2s var(--ease); }.structure-grid article:last-child { border-right: 0; }.structure-grid article:hover { background: #f6e2d6; }.structure-grid span { color: #a33c69; font: 500 11px/1 var(--mono); }.structure-grid h3 { margin: 96px 0 13px; }.structure-grid p { margin: 0; color: #655967; max-width: 34ch; }
.live-powered { padding: 104px 0; color: var(--ink); background: var(--orange); border-block: 1px solid rgba(22,17,14,.22); }.live-powered-card { width: var(--shell); margin: auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px,9vw,130px); align-items: end; }.live-powered h2 { max-width: 11ch; margin-top: 15px; font-size: clamp(38px,5vw,72px); letter-spacing: -.06em; }.live-powered .nova-kicker { color: rgba(22,17,14,.68); }.live-powered-card > div:last-child p { max-width: 48ch; margin: 0; color: rgba(22,17,14,.8); font-size: 18px; }
.ncore-inline { color: inherit; text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .16em; transition: color .2s var(--ease), text-decoration-color .2s var(--ease); }.ncore-inline:hover { color: var(--orange); text-decoration-color: currentColor; }.live-powered .ncore-inline:hover { color: #fff; }
.live-powered-card .ncore-logo-link { width: 250px; max-width: 62%; display: block; margin-top: 28px; transition: transform .24s var(--ease); }.live-powered-card .ncore-logo-link:hover { transform: translateY(-5px); }.live-powered-card .ncore-logo-link img { width: 100%; height: auto; margin: 0; filter: brightness(0) saturate(100%); transition: filter .24s var(--ease), transform .24s var(--ease); }.live-powered-card .ncore-logo-link:hover img { filter: brightness(0) invert(1); transform: scale(1.025); }
.live-contact > p:not(.nova-kicker) { max-width: 55ch; margin: -13px auto 27px; color: #655967; }

.video-lightbox, .image-lightbox { width: min(1120px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); padding: 0; overflow: hidden; color: #fff; background: #0e0c0f; border: 1px solid rgba(255,255,255,.2); border-radius: 20px; box-shadow: 0 35px 100px rgba(0,0,0,.62); }.video-lightbox::backdrop, .image-lightbox::backdrop { background: rgba(9,7,10,.83); -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px); }
.video-lightbox-bar { min-height: 54px; padding: 10px 14px 10px 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid rgba(255,255,255,.14); }.video-lightbox-bar p { margin: 0; font-weight: 700; }.video-lightbox-bar button { color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; padding: 8px 12px; font-size: 12px; }.video-lightbox-bar button:hover { border-color: var(--nova-peach); color: var(--nova-peach); }
.video-lightbox video { width: 100%; max-height: calc(100dvh - 88px); background: #000; }.image-lightbox img { width: 100%; max-height: calc(100dvh - 88px); object-fit: contain; background: #000; }

/* TV Corporativa — clients, cases and operating model. */
.client-marquee { overflow: hidden; padding: 25px 0 29px; color: #fff; background: #f03d88; border-block: 1px solid rgba(0,0,0,.18); }.client-marquee-label { width: var(--shell); margin: 0 auto 17px; color: rgba(255,255,255,.76); font: 500 10px/1 var(--mono); letter-spacing: .13em; text-transform: uppercase; }.client-marquee-window { overflow: hidden; }.client-marquee-track { width: max-content; display: flex; animation: nova-client-marquee 35s linear infinite; }.client-marquee:hover .client-marquee-track { animation-play-state: paused; }.client-set { display: flex; align-items: center; }.client-set span { display: inline-flex; align-items: center; gap: 24px; margin-right: 24px; font: 600 clamp(20px,2.4vw,34px)/1 var(--display); letter-spacing: -.04em; white-space: nowrap; }.client-set span::after { content: '✦'; color: #ffd8a6; font-size: 14px; }
@keyframes nova-client-marquee { to { transform: translateX(-50%); } }
.tv-cases-section { padding: 112px 0; color: #fff; background: #171319; }.tv-cases-head { width: var(--shell); margin: 0 auto 46px; display: grid; grid-template-columns: 220px minmax(0,760px); gap: 40px; }.tv-cases-head h2 { max-width: none; font-size: clamp(34px,4.4vw,64px); letter-spacing: -.055em; }.tv-cases-head > div > p { margin: 17px 0 0; color: rgba(255,255,255,.63); font-size: 18px; }.tv-process .tv-cases-head > div > p { color: #655967; }
.tv-case-grid { width: var(--shell); margin: auto; display: grid; grid-template-columns: repeat(3,1fr); grid-auto-rows: 290px; gap: 12px; }.tv-case-card { position: relative; overflow: hidden; padding: 0; color: #fff; text-align: left; background: #2a222b; border: 1px solid rgba(255,255,255,.13); border-radius: 23px; }.tv-case-card.wide { grid-column: span 2; }.tv-case-card.tall { grid-row: span 2; }.tv-case-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) brightness(.9); transition: transform .42s var(--ease), filter .42s var(--ease); }.tv-case-card:hover img, .tv-case-card:focus-visible img { transform: scale(1.035); filter: saturate(1.08) brightness(1); }
.tv-case-card > span { position: absolute; left: 0; right: 0; bottom: 0; min-height: 96px; padding: 38px 64px 18px 18px; background: linear-gradient(transparent, rgba(13,10,14,.94)); }.tv-case-card b, .tv-case-card small { display: block; }.tv-case-card b { font: 600 21px/1.05 var(--display); letter-spacing: -.03em; }.tv-case-card small { margin-top: 6px; color: rgba(255,255,255,.7); font-size: 12px; }.tv-case-card i { position: absolute; right: 17px; bottom: 18px; width: 36px; height: 36px; display: grid; place-items: center; color: #171319; background: var(--nova-peach); border-radius: 50%; font-style: normal; transition: transform .2s var(--ease), background .2s var(--ease); }.tv-case-card:hover i { transform: rotate(45deg); background: #fff; }
.tv-formats { padding: 112px 0; overflow: hidden; background: #f5ece6; }.tv-formats-head { width: var(--shell); margin: 0 auto 52px; display: grid; grid-template-columns: 220px minmax(0,800px); gap: 40px; }.tv-formats-head h2 { max-width: 17ch; font-size: clamp(34px,4.4vw,64px); letter-spacing: -.055em; }.tv-formats-head > div > p { max-width: 63ch; margin: 19px 0 0; color: #655967; font-size: 18px; }
.tv-formats-layout { width: var(--shell); margin: auto; display: grid; grid-template-columns: minmax(0,1.5fr) minmax(260px,.5fr); gap: clamp(24px,4vw,58px); align-items: center; }.tv-format-art { position: relative; aspect-ratio: 1920 / 2034; overflow: hidden; background: #fff; border: 1px solid #ded2d7; border-radius: 34px; box-shadow: 0 34px 80px rgba(51,31,44,.14); }.tv-format-plane { position: absolute; top: 0; left: 0; width: 100%; aspect-ratio: 1920 / 2484; transform: translateY(-16.103%); }.tv-format-plane > img { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; pointer-events: none; }.tv-format-video { position: absolute; z-index: 1; display: block; object-fit: cover; background: #171319; }.tv-format-video-wide { left: 6.6146%; top: 26.5298%; width: 53.8542%; height: 22.8663%; }.tv-format-video-vertical { left: 66.3021%; top: 27.0531%; width: 27.0313%; height: 36.7552%; }.tv-format-art::after { content: 'CONTEÚDO EM MOVIMENTO'; position: absolute; z-index: 4; left: 22px; bottom: 19px; padding: 9px 12px; color: #fff; background: #171319; border-radius: 999px; font: 500 9px/1 var(--mono); letter-spacing: .11em; }
.tv-format-notes { display: grid; gap: 10px; }.tv-format-notes article { min-height: 205px; display: flex; flex-direction: column; padding: 23px; background: #fff; border: 1px solid #ded2d7; border-radius: 22px; transition: transform .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease); }.tv-format-notes article:hover { transform: translateX(-7px); background: #ffd7c0; box-shadow: 0 18px 36px rgba(51,31,44,.1); }.tv-format-notes span { color: #a33c69; font: 500 10px/1 var(--mono); letter-spacing: .08em; }.tv-format-notes h3 { margin-top: auto; font-size: 25px; letter-spacing: -.04em; }.tv-format-notes p { margin: 10px 0 0; color: #655967; font-size: 14px; line-height: 1.45; }
.tv-process { padding: 112px 0; background: var(--nova-paper); }.tv-process-grid { width: var(--shell); margin: auto; display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }.tv-process-grid article { min-height: 285px; display: flex; flex-direction: column; padding: 25px; background: #f6e4d8; border-radius: 22px; transition: transform .2s var(--ease), background .2s var(--ease); }.tv-process-grid article:hover { transform: translateY(-6px); background: #ffd4bb; }.tv-process-grid b { color: #a33c69; font: 500 11px/1 var(--mono); }.tv-process-grid h3 { margin-top: auto; }.tv-process-grid p { margin: 11px 0 0; color: #655967; font-size: 14px; }
.tv-page-pro .nova-closing > p:not(.nova-kicker) { max-width: 57ch; margin: -13px auto 28px; color: #655967; }

/* Projects index. */
.projects-hero { padding: 112px 0 82px; color: #fff; background: #171319; }.projects-hero h1 { max-width: 12ch; margin: 19px 0 25px; font-size: clamp(48px,7vw,96px); letter-spacing: -.06em; }.projects-hero .shell > p:last-child { max-width: 55ch; margin: 0; color: rgba(255,255,255,.68); font-size: 19px; }
.projects-browser { padding: 104px 0 118px; background: var(--nova-paper); }.projects-browser-head { width: var(--shell); margin: 0 auto 45px; display: flex; align-items: end; justify-content: space-between; gap: 38px; }.projects-browser-head h2 { max-width: 12ch; margin-top: 14px; }.project-filters { display: flex; gap: 7px; flex-wrap: wrap; }.project-filters button { min-height: 40px; padding: 0 14px; color: #554d57; background: transparent; border: 1px solid #ccbfc5; border-radius: 999px; font-size: 12px; font-weight: 700; transition: color .18s var(--ease), background .18s var(--ease), transform .18s var(--ease); }.project-filters button:hover { transform: translateY(-2px); border-color: #171319; }.project-filters button.is-active { color: #fff; background: #171319; border-color: #171319; }
.projects-grid { width: var(--shell); margin: auto; display: grid; grid-template-columns: repeat(3,1fr); grid-auto-rows: 330px; gap: 12px; }.project-card { position: relative; overflow: hidden; padding: 0; color: #fff; text-align: left; background: #251e27; border: 0; border-radius: 23px; transition: transform .23s var(--ease), box-shadow .23s var(--ease); }.project-card.feature { grid-row: span 2; }.project-card.wide { grid-column: span 2; }.project-card[hidden] { display: none; }.project-card:hover, .project-card:focus-visible { transform: translateY(-6px); box-shadow: 0 24px 48px rgba(54,26,43,.18); }.project-card img, .project-card video { width: 100%; height: 100%; object-fit: cover; filter: saturate(.82); transition: transform .4s var(--ease), filter .4s var(--ease); }.project-card:hover img, .project-card:hover video, .project-card:focus-visible img, .project-card:focus-visible video { transform: scale(1.035); filter: saturate(1.08); }.project-card > span { position: absolute; left: 0; right: 0; bottom: 0; padding: 72px 20px 20px; background: linear-gradient(transparent, rgba(12,9,13,.94)); }.project-card small, .project-card b, .project-card i { display: block; }.project-card small { margin-bottom: 8px; color: var(--nova-peach); font: 500 9px/1 var(--mono); letter-spacing: .12em; }.project-card b { font: 600 24px/1.05 var(--display); letter-spacing: -.04em; }.project-card i { margin-top: 7px; color: rgba(255,255,255,.7); font-size: 12px; font-style: normal; }
.projects-links { display: grid; grid-template-columns: repeat(3,1fr); color: #fff; background: #171319; }.projects-links a { min-height: 260px; display: flex; flex-direction: column; padding: 30px; border-right: 1px solid rgba(255,255,255,.12); transition: color .2s var(--ease), background .2s var(--ease); }.projects-links a:last-child { border-right: 0; }.projects-links a:hover { color: #171319; background: var(--nova-peach); }.projects-links span { color: var(--nova-peach); font: 500 10px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; }.projects-links a:hover span { color: #71301b; }.projects-links b { max-width: 13ch; margin-top: auto; font: 500 27px/1.08 var(--display); letter-spacing: -.04em; }.projects-links i { margin-top: 12px; font-size: 22px; font-style: normal; }

/* Scroll reveal is progressive: content is visible until JS enables it. */
.reveal-ready [data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .65s var(--ease), transform .65s var(--ease); transition-delay: var(--reveal-delay,0ms); }.reveal-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }

/* Motion system: restrained feedback that keeps the editorial layout in control. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: nova-page-out .16s ease both; }
::view-transition-new(root) { animation: nova-page-in .28s var(--ease) both; }
@keyframes nova-page-out { to { opacity: .72; transform: scale(.995); } }
@keyframes nova-page-in { from { opacity: 0; transform: translateY(7px); } }
.site-header { view-transition-name: nova-header; }
.site-header .nova-logo { view-transition-name: nova-mark; }
.nova-services, .screen-reel, .live-method, .live-portfolio, .live-structure, .live-powered, .tv-cases-section, .tv-formats, .tv-process, .story-section, .image-band, .projects-browser { content-visibility: auto; contain-intrinsic-size: 1px 720px; }
.scroll-progress { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; height: 3px; pointer-events: none; background: linear-gradient(90deg, var(--orange), var(--nova-peach, #ffb369)); transform: scaleX(0); transform-origin: 0 50%; }
.site-header { transition: background-color .28s var(--ease), border-color .28s var(--ease), box-shadow .28s var(--ease); }
.header-inner, .nova-logo { transition: transform .28s var(--ease); }
.site-header.is-scrolled { background: rgba(23,19,25,.9); border-bottom-color: rgba(255,255,255,.1); box-shadow: 0 14px 38px rgba(12,9,13,.18); -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); }
.site-header.is-scrolled .nova-logo { transform: scale(.94); transform-origin: left center; }
.motion-hero { --hero-x: 0px; --hero-y: 0px; }
.motion-hero > video { width: calc(100% + 24px); height: calc(100% + 24px); inset: -12px; max-width: none; transform: translate3d(var(--hero-x), var(--hero-y), 0) scale(1.025); transition: transform .48s var(--ease); will-change: transform; }
.is-magnetic { will-change: transform; }
.pointer-card { --pointer-x: 50%; --pointer-y: 50%; position: relative; isolation: isolate; }
.pointer-card::after { content: ''; position: absolute; z-index: 4; inset: 0; pointer-events: none; border-radius: inherit; background: radial-gradient(300px circle at var(--pointer-x) var(--pointer-y), rgba(255,255,255,.2), transparent 58%); opacity: 0; transition: opacity .3s var(--ease); }
.pointer-card:hover::after, .pointer-card:focus-within::after { opacity: 1; }
.nova-service-card { transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.nova-service-card:hover { transform: translateY(-7px); box-shadow: 0 28px 60px rgba(0,0,0,.3); }
.nova-service-card:hover h3 { color: var(--nova-peach); }
.nova-service-card h3 { transition: color .24s var(--ease); }
.projects-links i, .case-list .arrow { display: inline-block; transition: transform .22s var(--ease); }
.projects-links a:hover i { transform: translate(5px,-5px); }
.case-list article { transition: padding-left .24s var(--ease), background-color .24s var(--ease); }
.case-list article:hover { padding-left: 16px; background: rgba(255,91,34,.055); }
.case-list article:hover .arrow { transform: translateX(7px); }

@media (max-width: 1100px) {
  .live-method-grid { grid-template-columns: repeat(3,1fr); }.live-method-grid article { min-height: 275px; }.live-method-grid article:nth-child(4), .live-method-grid article:nth-child(5) { grid-column: span 1; }
  .tv-case-grid { grid-template-columns: repeat(2,1fr); }.tv-case-card.wide { grid-column: span 2; }.tv-process-grid { grid-template-columns: repeat(2,1fr); }
  .projects-grid { grid-template-columns: repeat(2,1fr); }.project-card.wide { grid-column: span 2; }
}

@media (max-width: 940px) {
  .page-subnav { top: 76px; }.page-subnav-inner > span { display: none; }.page-subnav-inner > div { width: 100%; justify-content: flex-start; }
  .live-section-head, .tv-cases-head { grid-template-columns: 1fr; gap: 20px; }.live-method, .live-structure, .live-portfolio, .tv-cases-section, .tv-process { padding: 80px 0; }
  .structure-grid { grid-template-columns: 1fr; }.structure-grid article { min-height: 220px; border-right: 0; border-bottom: 1px solid #d4c8ce; }.structure-grid article:last-child { border-bottom: 0; }.structure-grid h3 { margin-top: 58px; }
  .live-powered-card { grid-template-columns: 1fr; gap: 30px; }.live-powered h2 { max-width: 13ch; }
  .portfolio-track { padding-inline: 48px; }.portfolio-nav { display: none; }
  .tv-formats-head { grid-template-columns: 1fr; gap: 20px; }.tv-formats-layout { grid-template-columns: 1fr; }.tv-format-art { width: min(780px,100%); margin: auto; }.tv-format-notes { grid-template-columns: repeat(3,1fr); }.tv-format-notes article { min-height: 220px; }.tv-format-notes article:hover { transform: translateY(-6px); }
  .projects-browser-head { align-items: flex-start; flex-direction: column; }.projects-links { grid-template-columns: 1fr; }.projects-links a { min-height: 210px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
}

@media (max-width: 600px) {
  .nova-v2 .menu-button { display: block; flex: 0 0 auto; margin-left: auto; position: relative; z-index: 2; color: #fff; }
  .page-subnav { top: 66px; height: 44px; }.page-subnav-inner > div { gap: 19px; }.page-subnav a { font-size: 11px; }
  .live-reel-hero { min-height: calc(100svh - 110px); }.live-reel-wash { background: linear-gradient(0deg, rgba(12,9,13,.91), rgba(12,9,13,.24)); }.live-reel-shell { padding: 78px 0 28px; }.live-reel-shell h1 { max-width: 9.7ch; font-size: clamp(38px,11vw,48px); line-height: .98; }.live-reel-shell > p:not(.nova-kicker) { max-width: 100%; font-size: 16px; }.live-hero-status { margin-top: 38px; gap: 14px; }.video-sound-toggle { right: 15px; bottom: 16px; width: 48px; padding: 0; justify-content: center; }.video-sound-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .live-platforms .shell { align-items: flex-start; flex-direction: column; padding: 23px 0; }.platform-list { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; padding-bottom: 5px; }.platform-list span { flex: 0 0 auto; }
  .live-method-grid { grid-template-columns: 1fr; gap: 8px; }.live-method-grid article { min-height: 235px; }.live-method-grid h3 { font-size: 26px; }
  .portfolio-scroller { width: 100%; }.portfolio-track { padding: 4px 16px 20px; gap: 22px; }.portfolio-tile { flex-basis: 76vw; width: 76vw; }.portfolio-group-row { gap: 9px; }
  .live-powered { padding: 76px 0; }.live-powered-card > div:last-child p { font-size: 16px; }.live-contact > p:not(.nova-kicker), .tv-page-pro .nova-closing > p:not(.nova-kicker) { font-size: 15px; }
  .client-marquee { padding-block: 21px 24px; }.client-marquee-label { margin-bottom: 14px; }.client-set span { font-size: 22px; }
  .tv-case-grid { grid-template-columns: 1fr; grid-auto-rows: 270px; }.tv-case-card.wide, .tv-case-card.tall { grid-column: auto; grid-row: auto; }.tv-case-card:nth-child(2) { min-height: 380px; }
  .tv-formats { padding: 76px 0; }.tv-formats-head { margin-bottom: 34px; }.tv-formats-head > div > p { font-size: 16px; }.tv-format-art { border-radius: 22px; }.tv-format-art::after { left: 12px; bottom: 11px; padding: 7px 9px; font-size: 7px; }.tv-format-notes { grid-template-columns: 1fr; }.tv-format-notes article { min-height: 190px; }
  .tv-process-grid { grid-template-columns: 1fr; }.tv-process-grid article { min-height: 230px; }
  .video-lightbox, .image-lightbox { width: calc(100% - 18px); max-height: calc(100dvh - 18px); border-radius: 14px; }.video-lightbox-bar p { max-width: 70%; font-size: 13px; }
  .projects-hero { padding: 78px 0 62px; }.projects-hero h1 { font-size: clamp(45px,13vw,67px); }.projects-hero .shell > p:last-child { font-size: 16px; }.projects-browser { padding: 70px 0; }.project-filters { flex-wrap: nowrap; width: 100%; overflow-x: auto; padding-bottom: 5px; }.project-filters button { flex: 0 0 auto; }.projects-grid { grid-template-columns: 1fr; grid-auto-rows: 300px; }.project-card.feature, .project-card.wide { grid-column: auto; grid-row: auto; }.project-card.feature { min-height: 410px; }
}

@media (prefers-reduced-motion: reduce) {
  .client-marquee-track, .site-header .nova-logo { animation: none; }.reveal-ready [data-reveal] { opacity: 1; transform: none; }.portfolio-track { scroll-behavior: auto; }.motion-hero > video, .is-magnetic { transform: none !important; }.pointer-card::after { display: none; }::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}
