/* Editorial: um projeto por faixa, trailer alternando de lado. Fonte: Plus Jakarta Sans
   Modo claro e escuro: segue o sistema de quem acessa; o botão no topo troca e lembra a escolha. */
:root {
  --paper: #f4f2ee;      /* fundo claro, off-white quente */
  --paper-2: #f0e6e3;    /* faixas e blocos */
  --ink: #574141;        /* texto e títulos */
  --ink-soft: #7a6261;   /* texto secundário */
  --dust: #bfa5a4;       /* linhas e detalhes */
  --coral: #e77577;      /* destaque */
  --olive: #8e9f45;      /* detalhe */
  --moss: #596c10;       /* texto de destaque: função, produtoras */
  --pill-bg: #596c10;    /* etiquetas verdes */
  --pill-fg: #f4f2ee;
  --top-bg: rgba(244, 242, 238, .92);
  --band-bg: #574141;    /* faixa de contato */
  --band-fg: #f4f2ee;
  --band-soft: #bfa5a4;
  --frame-bg: #574141;   /* fundo do trailer antes da capa carregar */
  --shadow: rgba(87, 65, 65, .55);
  --display: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --body: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
  color-scheme: light;
}

/* Modo escuro: mesma paleta, com fundo marrom bem escuro e texto claro */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #1e1717; --paper-2: #2a2020; --ink: #f1e9e6; --ink-soft: #c7b0af; --dust: #4e3e3e;
    --moss: #b6c76c; --pill-bg: #596c10; --pill-fg: #f4f2ee; --top-bg: rgba(30, 23, 23, .9);
    --band-bg: #2e2323; --band-fg: #f4f2ee; --band-soft: #d4bebd; --frame-bg: #3a2d2d; --shadow: rgba(0, 0, 0, .6);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper: #1e1717; --paper-2: #2a2020; --ink: #f1e9e6; --ink-soft: #c7b0af; --dust: #4e3e3e;
  --moss: #b6c76c; --pill-bg: #596c10; --pill-fg: #f4f2ee; --top-bg: rgba(30, 23, 23, .9);
  --band-bg: #2e2323; --band-fg: #f4f2ee; --band-soft: #d4bebd; --frame-bg: #3a2d2d; --shadow: rgba(0, 0, 0, .6);
  color-scheme: dark;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--paper);
  transition: background-color .3s, color .3s;
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
ul { list-style: none; }
:focus-visible { outline: 2px solid var(--moss); outline-offset: 3px; }

.wrap {
  width: 100%;
  max-width: 1160px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 48px);
}

/* Topo */
.top {
  position: sticky; top: 0; z-index: 10;
  background: var(--top-bg);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--dust);
}
.top-inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 12px 24px; padding-block: 16px;
}
.brand { display: grid; gap: 2px; text-decoration: none; }
.name { font-family: var(--display); font-weight: 700; letter-spacing: -.02em; font-size: clamp(1.4rem, 2.4vw, 1.9rem); line-height: 1.1; }
.name em { color: var(--coral); font-style: normal; }
.kicker {
  font-family: var(--mono); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft);
}
.links { display: flex; flex-wrap: wrap; gap: 10px; }
.btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 18px; border-radius: 999px;
  border: 1px solid var(--ink); color: var(--ink);
  text-decoration: none; font-weight: 500; font-size: .92rem;
  transition: background .2s, color .2s;
}
.btn:hover { background: var(--ink); color: var(--paper); }
.links .btn:first-child { background: var(--ink); color: var(--paper); }
.links .btn:first-child:hover { background: var(--moss); border-color: var(--moss); }

/* Introdução */
.intro {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: end;
  padding-block: clamp(36px, 7vw, 72px) clamp(28px, 5vw, 48px);
}
.lead {
  font-family: var(--display); font-weight: 500; letter-spacing: -.01em; font-size: clamp(1.2rem, 2.3vw, 1.6rem); line-height: 1.4;
  max-width: 34em; text-wrap: balance;
}
.lead strong { font-weight: 700; color: var(--moss); }
@media (max-width: 720px) { .intro { grid-template-columns: 1fr; } }

/* Projetos */
.projects { display: grid; }
.project {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(20px, 4vw, 52px); align-items: center;
  padding-block: clamp(32px, 5vw, 56px);
  border-top: 1px solid var(--dust);
}
.project:nth-of-type(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); }
.project:nth-of-type(even) .trailer { order: 2; }
.info { display: grid; gap: 12px; min-width: 0; }
.num { font-family: var(--mono); font-size: .76rem; letter-spacing: .08em; color: var(--ink-soft); }
.title {
  font-family: var(--display); font-weight: 700; letter-spacing: -.02em; font-size: clamp(1.5rem, 2.8vw, 2.2rem);
  line-height: 1.12; text-wrap: balance;
}
.role { color: var(--moss); font-weight: 600; font-size: .95rem; }
.role.lead-role {
  justify-self: start; color: var(--pill-fg); background: var(--pill-bg);
  padding: 3px 12px; border-radius: 999px; font-size: .85rem;
}
.meta { display: grid; margin-top: 4px; font-size: .95rem; font-variant-numeric: tabular-nums; }
.meta div { display: flex; justify-content: space-between; gap: 16px; padding-block: 8px; border-top: 1px solid var(--dust); }
.meta dt { font-family: var(--mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); padding-top: 3px; }
.meta dd { text-align: right; }

/* Trailer */
.trailer { display: grid; gap: 8px; min-width: 0; }
.frame {
  position: relative; aspect-ratio: 16 / 9; width: 100%; max-width: 100%;
  border-radius: 10px; overflow: hidden; background: var(--frame-bg);
  box-shadow: 0 18px 40px -22px var(--shadow);
}
.frame.soon {
  display: grid; place-items: center; color: #f4f2ee;
  font-family: var(--mono); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase;
  background: linear-gradient(135deg, #574141, #6e4f4f);
}
.facade { all: unset; position: absolute; inset: 0; cursor: pointer; display: grid; place-items: center; }
.facade img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s, filter .3s; }
.facade::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(87,65,65,.55), transparent 50%); }
.facade:hover img { transform: scale(1.03); filter: saturate(1.1); }
.facade:focus-visible { outline: 3px solid var(--moss); outline-offset: -3px; }
.play {
  position: relative; z-index: 1; width: 68px; height: 68px; border-radius: 50%;
  background: var(--coral); display: grid; place-items: center;
  box-shadow: 0 8px 24px rgba(0,0,0,.25); transition: transform .2s;
}
.play::before {
  content: ""; margin-left: 5px;
  border-left: 19px solid #fff; border-top: 12px solid transparent; border-bottom: 12px solid transparent;
}
.facade:hover .play { transform: scale(1.08); }
.label {
  position: absolute; z-index: 1; left: 14px; bottom: 12px; color: #fff;
  font-family: var(--mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
}
.frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.yt { justify-self: end; font-size: .82rem; color: var(--ink-soft); text-decoration: none; }
.yt:hover { color: var(--moss); text-decoration: underline; }

@media (max-width: 760px) {
  .project, .project:nth-of-type(even) { grid-template-columns: 1fr; }
  .project:nth-of-type(even) .trailer { order: 0; }
}

/* Contato */
.contact { background: var(--band-bg); color: var(--band-fg); margin-top: clamp(24px, 4vw, 40px); }
.contact-inner { display: grid; gap: 16px; justify-items: start; padding-block: clamp(48px, 8vw, 88px); }
.sec { font-family: var(--display); font-weight: 700; letter-spacing: -.02em; font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1.1; }
.mail { font-size: clamp(1rem, 2vw, 1.2rem); color: var(--band-soft); text-underline-offset: 4px; overflow-wrap: anywhere; }
.mail:hover { color: var(--coral); }
.contact .btn { border-color: var(--band-soft); color: var(--band-fg); background: transparent; }
.contact .btn:hover, .contact .links .btn:first-child:hover { background: var(--coral); border-color: var(--coral); color: #3a2a2a; }
.contact .links .btn:first-child { background: transparent; }

.foot {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px;
  padding-block: 20px; color: var(--ink-soft); font-size: .85rem;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}

/* Detalhe em oliva */
.num::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--olive); margin-right: 8px; vertical-align: 1px; }

/* Indicação de portfólio */
.kicker { display: flex; align-items: center; gap: 8px; }
.kicker mark { background: var(--pill-bg); color: var(--pill-fg); padding: 1px 8px; border-radius: 999px; letter-spacing: .12em; }
.port-head {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px;
  padding-bottom: 12px; border-bottom: 1px solid var(--dust);
}
.port-head h1 { font-family: var(--display); font-weight: 700; letter-spacing: -.02em; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.1; }
.port-head p { font-family: var(--mono); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.port-head + .project { border-top: 0; }
.intro { grid-template-columns: 1fr; padding-bottom: clamp(24px, 4vw, 40px); }

/* Botão de modo claro / escuro */
.theme-toggle {
  display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer;
  transition: background .2s, color .2s;
}
.theme-toggle:hover { background: var(--ink); color: var(--paper); }
.theme-toggle svg { width: 18px; height: 18px; }
.theme-toggle .sun { display: none; }
:root[data-mode="dark"] .theme-toggle .sun { display: block; }
:root[data-mode="dark"] .theme-toggle .moon { display: none; }
