﻿/* Freelance News block */
.fn{--fn-ink:var(--text,var(--ink,#eee));--fn-muted:var(--muted,#9a9bb5);--fn-line:var(--line,#232340);--fn-card:var(--card,var(--surface,#15152a));--fn-accent:var(--accent2,var(--lime,#7dc4ff))}
.fn-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:28px}
.fn-head p{max-width:640px;margin:10px 0 0;color:var(--fn-muted)}
.fn-live{display:inline-flex;align-items:center;gap:8px;font:11px/1 'Courier New',monospace;letter-spacing:.09em;color:var(--fn-muted);text-transform:uppercase;margin-bottom:14px}
.fn-live i{width:8px;height:8px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 0 rgba(61,220,132,.6);animation:fnpulse 2s infinite}
.fn.is-soon .fn-live i{background:#f5b63a;animation:none;box-shadow:none}
@keyframes fnpulse{0%{box-shadow:0 0 0 0 rgba(61,220,132,.55)}70%{box-shadow:0 0 0 9px rgba(61,220,132,0)}100%{box-shadow:0 0 0 0 rgba(61,220,132,0)}}
.fn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fn-card{display:flex;flex-direction:column;gap:10px;background:var(--fn-card);border:1px solid var(--fn-line);border-radius:16px;padding:22px 22px 20px;color:var(--fn-ink);text-decoration:none;min-height:220px;transition:transform .2s,border-color .2s}
.fn-card:hover{transform:translateY(-3px);border-color:var(--fn-accent);text-decoration:none}
.fn-meta{display:flex;justify-content:space-between;align-items:center;font:11px/1 'Courier New',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--fn-muted)}
.fn-tag{color:var(--fn-accent)}
.fn-card h3{margin:0;font-size:18px;line-height:1.3;letter-spacing:-.01em;color:var(--fn-ink);font-weight:600}
.fn-card p{margin:0;color:var(--fn-muted);font-size:14px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fn-more{margin-top:auto;font-size:13px;font-weight:600;color:var(--fn-ink)}
.fn-skel{position:relative;overflow:hidden;min-height:220px}
.fn-skel:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:fnshine 1.4s infinite}
@keyframes fnshine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.fn-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:26px}
.fn-note{font-size:13px;color:var(--fn-muted);margin:14px 0 0}
@media (max-width:900px){.fn-grid{grid-template-columns:1fr}.fn-card{min-height:0}}
