:root{
  --bg:#f4f4f1; --paper:#ffffff; --ink:#111315; --ink-2:#4a4f55; --muted:#868b91; --line:#e3e3de;
  --yellow:#ffc21a; --yellow-ink:#111315;
  --display:"Bricolage Grotesque","Instrument Sans",system-ui,sans-serif;
  --text:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:16px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#141517;--paper:#1f2124;--ink:#f1f1ee;--ink-2:#bfc2c6;--muted:#8d9297;--line:#2b2d31;color-scheme:dark}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 var(--text);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:6px}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.narrow{max-width:720px;margin:0 auto;padding:0 24px}

/* cabecera */
.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px)}
.site-header .wrap{display:flex;justify-content:space-between;align-items:center;height:72px}
.brand{display:flex;align-items:center;gap:10px;font:700 18px/1 var(--display);letter-spacing:-.02em}
.brand i{width:14px;height:14px;border-radius:4px;background:var(--yellow);display:block}
.site-header nav{display:flex;gap:6px;font-size:15px;font-weight:500}
.site-header nav a{padding:8px 14px;border-radius:999px;color:var(--ink-2)}
.site-header nav a:hover{color:var(--ink);background:var(--paper)}
.site-header nav a[aria-current]{background:var(--ink);color:var(--bg)}

/* portada */
.hero{padding-top:56px;padding-bottom:40px}
.hero h1{font:800 clamp(44px,8.6vw,124px)/.92 var(--display);letter-spacing:-.045em;margin:0;max-width:11ch}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:36px;flex-wrap:wrap}
.hero-foot p{font-size:20px;line-height:1.45;color:var(--ink-2);margin:0;max-width:30em}
.hero-foot p a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px;text-underline-offset:4px}
.stats{display:flex;gap:36px}
.stats div{display:flex;flex-direction:column}
.stats b{font:700 40px/1 var(--display);letter-spacing:-.03em}
.stats span{font-size:14px;color:var(--muted);margin-top:6px}

.mosaic{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:8px}
.mosaic a{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--line)}
.mosaic a:first-child{grid-row:span 2;aspect-ratio:auto}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.mosaic a:hover img{transform:scale(1.04)}
.mosaic .cap{position:absolute;left:12px;bottom:12px;right:12px;display:flex}
.mosaic .cap span{background:var(--paper);color:var(--ink);font-weight:600;font-size:15px;line-height:1.3;padding:8px 12px;border-radius:10px;max-width:100%}
.mosaic a:first-child .cap span{font:700 22px/1.2 var(--display);letter-spacing:-.02em;padding:12px 16px}

.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:96px 0 24px}
.section-head h2{font:700 clamp(30px,4vw,44px)/1 var(--display);letter-spacing:-.035em;margin:0}

/* ranking */
.ranking{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;counter-reset:r}
.ranking li{counter-increment:r}
.ranking a{display:flex;flex-direction:column;height:100%;padding:20px;background:var(--paper);border-radius:var(--r);min-height:200px}
.ranking a::before{content:counter(r);font:800 56px/1 var(--display);letter-spacing:-.04em;margin-bottom:auto}
.ranking a:hover{background:var(--yellow);color:var(--yellow-ink)}
.ranking a:hover .n{color:var(--yellow-ink)}
.ranking .t{font-weight:600;font-size:17px;line-height:1.3;margin-top:28px}
.ranking .n{font-size:14px;color:var(--muted);margin-top:8px}

/* filtros */
.topics{display:flex;flex-wrap:wrap;gap:8px}
.topics a{font-size:15px;font-weight:500;padding:9px 16px;border-radius:999px;background:var(--paper);color:var(--ink-2)}
.topics a:hover{color:var(--ink)}
.topics a[aria-current]{background:var(--ink);color:var(--bg)}
.topics small{font-size:13px;opacity:.55;margin-left:6px}

/* rejilla de artículos */
.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:40px 24px}
.grid a{display:block}
.grid .ph{display:block;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:var(--line)}
.grid .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.grid a:hover .ph img{transform:scale(1.04)}
.grid .m{display:block;font-size:14px;color:var(--muted);margin:14px 0 6px}
.grid .t{display:block;font:700 22px/1.18 var(--display);letter-spacing:-.025em}
.grid a:hover .t{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px;text-underline-offset:4px}

/* página de tema */
.page-head{padding-top:56px;padding-bottom:32px}
.page-head h1{font:800 clamp(44px,7vw,96px)/.95 var(--display);letter-spacing:-.045em;margin:0 0 28px}

/* artículo */
.post-head{padding-top:48px;padding-bottom:36px}
.post-head .topic{display:inline-block;font-size:14px;font-weight:600;background:var(--yellow);color:var(--yellow-ink);padding:5px 12px;border-radius:999px}
.post-head h1{font:800 clamp(38px,6.2vw,80px)/.98 var(--display);letter-spacing:-.04em;margin:22px 0 20px;max-width:16ch}
.post-head .m{font-size:16px;color:var(--muted);margin:0}
.cover{max-width:720px;margin:0 auto 48px;padding:0 24px}
.cover img{width:auto;max-width:100%;max-height:520px;margin:0 auto;border-radius:16px}
.prose{font-size:19px;line-height:1.72;color:var(--ink)}
.prose>*:first-child{margin-top:0}
.prose p{margin:0 0 1.25em}
.prose h2{font:700 32px/1.12 var(--display);letter-spacing:-.03em;margin:2.2em 0 .6em}
.prose h3{font:700 24px/1.2 var(--display);letter-spacing:-.02em;margin:1.8em 0 .5em}
.prose h4{font-size:19px;font-weight:600;margin:1.5em 0 .4em}
.prose strong{font-weight:600}
.prose a{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px;text-underline-offset:4px}
.prose a:hover{background:var(--yellow);color:var(--yellow-ink)}
.prose img{border-radius:14px;margin:2.2em auto}
.prose figure{margin:2.2em 0}.prose figure img{margin:0 auto}
.prose figcaption{font-size:14px;color:var(--muted);text-align:center;margin-top:10px}
.prose ul,.prose ol{padding-left:1.25em;margin:0 0 1.25em}
.prose li{margin:.4em 0}
.prose ul li::marker{color:var(--yellow);font-size:1.2em}
.prose blockquote{margin:2em 0;padding:20px 24px;background:var(--paper);border-radius:14px;color:var(--ink-2)}
.prose table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.45;margin:2em 0;display:block;overflow-x:auto}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 12px 10px 0;text-align:left;vertical-align:top}
.prose th{font-weight:600}
.prose hr{border:0;border-top:1px solid var(--line);margin:2.5em 0}
.video{position:relative;aspect-ratio:16/9;margin:2.2em 0;border-radius:14px;overflow:hidden;background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.btn{display:inline-block;margin-top:32px;padding:14px 24px;background:var(--yellow);color:var(--yellow-ink);border-radius:999px;font-weight:600}

/* pie */
.site-footer{margin-top:120px;background:#111315;color:#f1f1ee}
.site-footer .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;padding-top:56px;padding-bottom:48px}
.site-footer .big{font:800 clamp(36px,6vw,72px)/.95 var(--display);letter-spacing:-.045em;margin:0;max-width:12ch}
.site-footer .big i{display:inline-block;width:.42em;height:.42em;border-radius:.1em;background:var(--yellow);margin-left:.12em}
.site-footer nav{display:flex;gap:24px;font-size:15px;opacity:.75}
.site-footer nav a:hover{opacity:1;text-decoration:underline;text-decoration-color:var(--yellow)}

@media (max-width:1000px){
  .ranking{grid-template-columns:repeat(2,1fr)}
  .ranking li:first-child{grid-column:span 2}
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .wrap,.cover{padding:0 18px}
  .narrow{padding:0 18px}
  .site-header .wrap{height:64px}
  .site-header nav a{padding:7px 11px;font-size:14px}
  .hero{padding-top:28px;padding-bottom:28px}
  .hero-foot p{font-size:17px}
  .stats b{font-size:32px}
  .mosaic{grid-template-columns:1fr 1fr}
  .mosaic a:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:4/3}
  .mosaic a:nth-child(n+4){display:none}
  .mosaic .cap span{font-size:13px}
  .section-head{margin-top:64px}
  .ranking{grid-template-columns:1fr}
  .ranking li:first-child{grid-column:auto}
  .ranking a{min-height:0;flex-direction:row;align-items:center;gap:16px;padding:16px}
  .ranking a::before{font-size:34px;margin:0;min-width:28px}
  .ranking .t{margin-top:0;flex:1}
  .ranking .n{display:none}
  .grid{grid-template-columns:1fr;gap:32px}
  .prose{font-size:17.5px}
  .cover{margin-bottom:36px}.cover img{border-radius:14px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
