@font-face { font-family: "Bricolage Grotesque"; src: url("fontes/BricolageGrotesque.ttf") format("truetype"); font-weight: 200 800; font-display: swap; }
@font-face { font-family: "DM Mono"; src: url("fontes/DMMono-Regular.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "DM Mono"; src: url("fontes/DMMono-Medium.ttf") format("truetype"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Caveat"; src: url("fontes/Caveat.ttf") format("truetype"); font-weight: 400 700; font-display: swap; }

/* Caderno Pop: papel quadriculado, tinta berinjela, marca-texto, tomate e menta. Visual único (claro), de propósito. */
:root {
  --papel: #FFFAF0; --grade: #E9E3D4; --tinta: #22162B; --tinta-suave: #4a3d52;
  --tomate: #FF4F3A; --marca: #FFD84A; --menta: #2BB38A;
  --f-titulo: "Bricolage Grotesque", "Arial Black", system-ui, sans-serif;
  --f-mono: "DM Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --f-mao: "Caveat", "Comic Sans MS", cursive;
  --f-texto: "Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", sans-serif;
  --sombra: 5px 5px 0 var(--tinta);
  color-scheme: light;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; color: var(--tinta); font-family: var(--f-texto); font-size: 18px; line-height: 1.55;
  background-color: var(--papel);
  background-image: linear-gradient(var(--grade) 1px, transparent 1px), linear-gradient(90deg, var(--grade) 1px, transparent 1px);
  background-size: 28px 28px;
}
a { color: inherit; }
img, svg { max-width: 100%; }
.wrap { max-width: 1120px; margin: 0 auto; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
h1, h2, h3 { font-family: var(--f-titulo); font-weight: 800; letter-spacing: -.02em; line-height: 1.04; margin: 0; text-wrap: balance; }
p { margin: 0; }
.mono { font-family: var(--f-mono); }
.mao { font-family: var(--f-mao); font-weight: 700; color: var(--tomate); }
mark { background: linear-gradient(transparent 52%, var(--marca) 52%); color: inherit; padding: 0 .06em; }
:focus-visible { outline: 3px solid var(--tomate); outline-offset: 3px; border-radius: 6px; }

/* Cabeçalho */
.topo { padding-block: 20px; }
.topo .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.marca-nome { display: flex; align-items: center; gap: 10px; text-decoration: none; font-family: var(--f-titulo); font-weight: 800; font-size: 22px; letter-spacing: -.02em; }
.marca-nome img { width: 44px; height: 44px; }
.topo nav { display: flex; gap: 20px; font-family: var(--f-mono); font-size: 15px; flex-wrap: wrap; }
.topo nav a { text-decoration: none; border-bottom: 2px solid transparent; }
.topo nav a:hover, .topo nav a[aria-current="page"] { border-bottom-color: var(--tomate); }

/* Botões */
.botoes { display: flex; gap: 14px; flex-wrap: wrap; }
.btn { display: inline-flex; align-items: center; gap: 10px; padding: 13px 20px; border: 3px solid var(--tinta); border-radius: 14px; background: var(--papel); box-shadow: var(--sombra); text-decoration: none; font-weight: 700; font-size: 17px; color: var(--tinta); transition: transform .12s, box-shadow .12s; cursor: pointer; font-family: var(--f-texto); }
.btn:hover { transform: translate(-2px, -2px); box-shadow: 7px 7px 0 var(--tinta); }
.btn:active { transform: translate(3px, 3px); box-shadow: 2px 2px 0 var(--tinta); }
.btn.principal { background: var(--tomate); color: var(--papel); }
.btn.amarelo { background: var(--marca); }
.btn svg { width: 22px; height: 22px; flex: none; }

/* Hero */
.hero { padding-block: 40px 64px; }
.hero .wrap { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, .6fr); gap: 40px; align-items: center; }
.hero-texto { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.nota { font-size: 30px; transform: rotate(-3deg); transform-origin: left; display: inline-block; }
.hero h1 { font-size: clamp(42px, 6.4vw, 80px); }
.hero h1 span { display: block; }
.hero .sub { font-size: clamp(18px, 2vw, 21px); max-width: 40ch; color: var(--tinta-suave); }
.hero-arte { position: relative; min-width: 0; }
.hero-arte svg { width: 100%; height: auto; display: block; }
@media (prefers-reduced-motion: no-preference) {
  .escapa { animation: escapa 3.6s ease-in-out infinite; transform-origin: 59px 15px; transform-box: view-box; }
  @keyframes escapa { 0%, 100% { transform: translate(0, 0) rotate(12deg); } 50% { transform: translate(2px, -3px) rotate(18deg); } }
}

/* Seções */
section { padding-block: 64px; }
.cabeca { display: flex; flex-direction: column; gap: 10px; margin-bottom: 32px; max-width: 62ch; }
.rotulo { font-family: var(--f-mono); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
.cabeca h2 { font-size: clamp(34px, 5vw, 54px); }
.cabeca p { color: var(--tinta-suave); }
.cartao { background: var(--papel); border: 3px solid var(--tinta); border-radius: 16px; box-shadow: var(--sombra); }

/* Números da faculdade */
.numeros { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-bottom: 40px; }
.numero { padding: 20px 22px; display: flex; flex-direction: column; gap: 2px; }
.numero b { font-family: var(--f-titulo); font-weight: 800; font-size: clamp(40px, 5vw, 58px); line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.numero span { font-family: var(--f-mono); font-size: 14px; }
.numero:nth-child(1) b { color: var(--tomate); }
.numero:nth-child(2) { background: var(--marca); }
.numero:nth-child(3) b { color: var(--menta); }

/* Trilhas */
.trilhas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 12px; }
.trilha { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 2px solid var(--tinta); border-radius: 12px; background: var(--papel); text-decoration: none; font-weight: 700; }
.trilha:hover { background: var(--marca); }
.sigla { font-family: var(--f-mono); font-weight: 500; font-size: 13px; padding: 4px 8px; border-radius: 8px; background: var(--tinta); color: var(--papel); flex: none; min-width: 46px; text-align: center; }

/* Semestres */
.semestres { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.semestre { padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.semestre .num { font-family: var(--f-mono); font-size: 14px; }
.semestre h3 { font-size: 24px; }
.codigos { display: flex; flex-wrap: wrap; gap: 6px; }
.codigos a, .codigos span { font-family: var(--f-mono); font-size: 13px; padding: 3px 8px; border: 2px solid var(--tinta); border-radius: 8px; text-decoration: none; background: var(--papel); }
.codigos a:hover { background: var(--marca); }
.semestre .pi { font-size: 15px; color: var(--tinta-suave); margin-top: auto; padding-top: 8px; border-top: 2px dashed var(--grade); }
.semestre .pi strong { color: var(--tinta); }
.optativas { margin-top: 20px; padding: 18px 22px; display: flex; flex-direction: column; gap: 10px; }
.mais { margin-top: 28px; }

/* Padrão de aula */
.passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: passo; }
.passos li { counter-increment: passo; padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; }
.passos li::before { content: counter(passo, decimal-leading-zero); font-family: var(--f-mono); font-size: 14px; color: var(--tomate); font-weight: 500; }
.passos b { font-size: 19px; }
.passos span { font-size: 15px; color: var(--tinta-suave); }
.passos li:nth-child(5), .passos li:nth-child(6) { background: var(--marca); }

/* Pilares livres */
.pilares { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.pilar { padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.pilar .chip { width: 38px; height: 38px; border: 3px solid var(--tinta); border-radius: 10px; }
.pilar h3 { font-size: 23px; }
.pilar p { font-size: 16px; color: var(--tinta-suave); }
.pilar .formato { font-family: var(--f-mono); font-size: 13px; margin-top: auto; padding-top: 6px; }

/* Primeiros episódios */
.eps { display: flex; flex-direction: column; overflow: hidden; }
.ep { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 18px 22px; border-top: 2px solid var(--tinta); }
.ep:first-child { border-top: 0; }
.ep .num { font-family: var(--f-mono); font-size: 14px; line-height: 1.35; }
.ep .num small { display: block; color: var(--tinta-suave); font-size: 12px; }
.ep h3 { font-size: 24px; }
.ep p { font-size: 15px; color: var(--tinta-suave); margin-top: 4px; }
.status { font-family: var(--f-mono); font-size: 13px; padding: 5px 10px; border: 2px solid var(--tinta); border-radius: 999px; background: var(--marca); white-space: nowrap; }
.eps-nota { margin-top: 14px; font-size: 26px; transform: rotate(-2deg); display: inline-block; }

/* Clube das Outliers */
.clube { background: var(--tinta); color: var(--papel); }
.clube .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.clube .cabeca { margin-bottom: 0; }
.clube .cabeca p { color: #d9d0dc; }
.clube mark { background: linear-gradient(transparent 52%, var(--tomate) 52%); }
.nomes { display: flex; flex-wrap: wrap; gap: 12px; }
.nomes span { border: 2px solid var(--papel); border-radius: 12px; padding: 10px 14px; font-weight: 700; }
.nomes span small { display: block; font-family: var(--f-mono); font-weight: 400; font-size: 12px; opacity: .8; }
.nomes span:nth-child(3n+1) { background: var(--menta); border-color: var(--menta); color: var(--tinta); }

/* Página da grade */
.pg-titulo { padding-block: 32px 8px; }
.pg-titulo h1 { font-size: clamp(40px, 6vw, 72px); }
.pg-titulo p { color: var(--tinta-suave); max-width: 62ch; margin-top: 14px; font-size: 19px; }
.legenda { display: flex; flex-wrap: wrap; gap: 16px; font-family: var(--f-mono); font-size: 14px; margin-top: 18px; align-items: center; }
.nivel { font-family: var(--f-mono); font-size: 12px; padding: 3px 8px; border: 2px solid var(--tinta); border-radius: 999px; white-space: nowrap; }
.nivel.n1 { background: var(--menta); }
.nivel.n2 { background: var(--marca); }
.nivel.n3 { background: var(--tomate); color: var(--papel); }
.filtros { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 5; background: var(--papel); border-bottom: 2px solid var(--tinta); padding-block: 12px; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 10; background: var(--papel); }
.filtros .wrap { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
.filtro { font-family: var(--f-mono); font-size: 14px; padding: 7px 12px; border: 2px solid var(--tinta); border-radius: 999px; background: var(--papel); color: var(--tinta); cursor: pointer; white-space: nowrap; }
.filtro[aria-pressed="true"] { background: var(--tinta); color: var(--papel); }
.bloco-trilha { padding-block: 40px 8px; scroll-margin-top: 80px; }
.bloco-trilha > .wrap > h2 { font-size: clamp(28px, 4vw, 40px); display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 20px; }
.bloco-trilha .sigla { font-size: 16px; padding: 6px 10px; }
.disciplinas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.disc { scroll-margin-top: 80px; }
.disc summary { list-style: none; cursor: pointer; padding: 18px 20px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; align-items: start; }
.disc summary::-webkit-details-marker { display: none; }
.disc .cod { font-family: var(--f-mono); font-size: 14px; font-weight: 500; }
.disc h3 { font-size: 22px; grid-column: 1; }
.disc .meta { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.disc .qtd { font-family: var(--f-mono); font-size: 13px; color: var(--tinta-suave); }
.disc .abrir { grid-column: 1 / -1; font-family: var(--f-mono); font-size: 13px; color: var(--tomate); }
.disc[open] .abrir::after { content: " (fechar)"; }
.disc ol { margin: 0; padding: 4px 20px 20px 20px; list-style: none; border-top: 2px dashed var(--grade); display: flex; flex-direction: column; }
.disc li { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--grade); font-size: 16px; }
.disc li:last-child { border-bottom: 0; }
.disc li .cod-aula { font-family: var(--f-mono); font-size: 13px; color: var(--tinta-suave); padding-top: 2px; }
.disc .comeco { font-family: var(--f-mao); color: var(--tomate); font-size: 22px; font-weight: 700; grid-column: 1 / -1; }
.tabela-sem { overflow-x: auto; }
.tabela-sem table { border-collapse: collapse; width: 100%; min-width: 640px; background: var(--papel); }
.tabela-sem th, .tabela-sem td { text-align: left; padding: 12px 14px; border-bottom: 2px solid var(--grade); vertical-align: top; font-size: 16px; }
.tabela-sem th { font-family: var(--f-mono); font-size: 13px; text-transform: uppercase; letter-spacing: .06em; border-bottom: 2px solid var(--tinta); }

/* Rodapé */
footer { padding-block: 56px 40px; }
footer .wrap { display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
footer h2 { font-size: clamp(30px, 4.4vw, 46px); }
.rodape-fim { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; width: 100%; font-family: var(--f-mono); font-size: 14px; color: var(--tinta-suave); padding-top: 22px; border-top: 2px dashed var(--grade); }

@media (max-width: 960px) {
  .semestres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .passos, .pilares { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .disciplinas { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 820px) {
  .hero .wrap, .clube .wrap { grid-template-columns: minmax(0, 1fr); }
  .hero-arte { max-width: 300px; justify-self: center; order: -1; }
  .hero { padding-block: 12px 48px; }
  .numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ep { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .ep .status { justify-self: start; }
  .topo nav { display: none; }
}
@media (max-width: 640px) {
  .tabela-sem table { min-width: 0; }
  .tabela-sem thead { display: none; }
  .tabela-sem tr { display: flex; flex-direction: column; gap: 8px; padding: 14px; border-bottom: 2px solid var(--grade); }
  .tabela-sem td { display: block; padding: 0; border: 0; }
}
@media (max-width: 560px) {
  .semestres, .passos, .pilares { grid-template-columns: minmax(0, 1fr); }
  .disc li { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .btn { transition: none; } }

/* Contagem de séries por categoria */
.qtd-cat { font-family: var(--f-mono); font-weight: 400; font-size: 13px; color: var(--tinta-suave); white-space: nowrap; letter-spacing: 0; }
.bloco-trilha > .wrap > h2 .qtd-cat { font-size: 15px; padding: 4px 10px; border: 2px solid var(--tinta); border-radius: 999px; background: var(--marca); color: var(--tinta); }
.disc .sub-serie { grid-column: 1; font-family: var(--f-mono); font-size: 13px; color: var(--tinta-suave); margin-top: -2px; }
