/* Oddrix blog (loaded on /blog/* only) */
.bl-hero{position:relative;padding:22px 0 6px;isolation:isolate}
.bl-hero:before{content:"";position:absolute;inset:-40px 0 0;z-index:-1;background:radial-gradient(closest-side at 76% 45%,rgba(79,124,255,.2),transparent),radial-gradient(closest-side at 92% 20%,rgba(34,224,255,.12),transparent),radial-gradient(closest-side at 8% 10%,rgba(123,92,255,.12),transparent);pointer-events:none}
.bl-hero h1{font-size:clamp(2.1rem,5vw,3.6rem);margin:.1em 0 .25em}
.bl-hero .lead{color:var(--tx2);max-width:720px;font-size:1.05rem;margin:0}
.glow{background:linear-gradient(90deg,var(--cyan),var(--blue2) 55%,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.bl-tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.bl-tabs a{display:inline-flex;gap:7px;align-items:center;padding:7px 14px;border-radius:999px;border:1px solid var(--line);color:var(--tx2);font-weight:600;font-size:.9rem;text-decoration:none;background:#ffffff05}
.bl-tabs a span{font:600 .72rem Inter;color:var(--mut);background:#ffffff0d;border-radius:999px;padding:1px 7px}
.bl-tabs a[aria-current]{border-color:rgba(34,224,255,.55);color:#fff;box-shadow:var(--glow);background:rgba(34,224,255,.08)}
.bl-tabs a:hover{border-color:var(--line2);color:#fff}
.bl-tabs .bl-rss{margin-left:auto;font-size:.8rem;padding:5px 11px}
.bl-feat{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:16px;margin-bottom:8px}
.bl-side{display:grid;gap:12px;align-content:start}
.bl-side .bl-card{display:grid;grid-template-columns:140px minmax(0,1fr)}
.bl-side .bl-thumb{aspect-ratio:16/11}
.bl-side .bl-cbody{padding:10px 12px}
.bl-side .bl-cd,.bl-side .bl-by{display:none}
.bl-side .bl-ct{font-size:.98rem}
.bl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bl-sec{margin-top:28px}
.bl-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:1.3rem;margin:0 0 12px}
.bl-h a{font:600 .85rem Inter;color:var(--cyan);text-decoration:none}
.bl-card{position:relative;background:linear-gradient(180deg,rgba(16,22,40,.75),rgba(13,18,32,.9));border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s;min-width:0}
.bl-card:hover{transform:translateY(-3px);border-color:rgba(34,224,255,.4);box-shadow:var(--glow)}
.bl-thumb{display:block;aspect-ratio:16/9;overflow:hidden;background:#0b1020}
.bl-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.bl-card:hover .bl-thumb img{transform:scale(1.04)}
.bl-cbody{padding:14px 16px 16px}
.bl-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 6px}
.bl-meta{font-size:.78rem;color:var(--mut)}
.bl-ct{font:700 1.08rem/1.3 "Space Grotesk",Inter,sans-serif;margin:0 0 6px;letter-spacing:-.01em}
.bl-card.big .bl-ct{font-size:clamp(1.3rem,2.4vw,1.75rem)}
.bl-ct a{color:#fff;text-decoration:none}
.bl-ct a:after{content:"";position:absolute;inset:0}
.bl-cd{color:var(--tx2);font-size:.9rem;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bl-by{font-size:.78rem;color:var(--mut);margin:0}
.bl-cat.bl-news{background:rgba(255,92,122,.14);color:#ff8fa5}
.bl-cat.bl-guides{background:rgba(37,217,195,.13);color:var(--teal)}
.bl-foot{margin-top:26px}
/* article */
.bl-ahd{max-width:860px;padding-top:14px}
.bl-ahd h1{font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.08;margin:.15em 0 .3em}
.bl-dek{font-size:1.12rem;color:var(--tx2);margin:0 0 14px;max-width:760px}
.bl-byline{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px}
.bl-byline img{border-radius:50%;background:#0d1220;padding:4px;border:1px solid var(--line)}
.bl-byline>span{display:flex;flex-direction:column;line-height:1.35}
.bl-byline .btn{margin-left:auto}
.bl-cover{max-width:760px;margin:0 0 22px;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 80px -40px rgba(34,224,255,.45)}
.bl-cover img{display:block;width:100%;height:auto}
.bl-layout{display:grid;grid-template-columns:minmax(0,760px) 290px;gap:36px;justify-content:space-between}
.bl-body{max-width:760px;font-size:1.04rem;line-height:1.72}
.bl-body h2{font-size:1.45rem;margin:1.7em 0 .5em;scroll-margin-top:90px}
.bl-body h3{font-size:1.12rem;margin:1.4em 0 .4em}
.bl-body li{margin:.3em 0}
.bl-body blockquote{margin:1.2em 0;padding:10px 16px;border-left:3px solid var(--cyan);background:rgba(34,224,255,.06);border-radius:0 10px 10px 0;color:var(--tx2)}
.bl-body code{background:#ffffff10;padding:1px 5px;border-radius:5px;font-size:.88em}
.bl-body table{margin:1em 0}
.bl-body th{background:#ffffff08;color:#fff}
.bl-body a:not(.btn){color:var(--blue2)}
.bl-cta .btn{white-space:normal;text-align:center}
.bl-cta{margin:2em 0 1.4em;padding:20px 22px;border-radius:16px;border:1px solid rgba(34,224,255,.35);background:radial-gradient(ellipse 60% 120% at 100% 0,rgba(79,124,255,.18),transparent),linear-gradient(180deg,rgba(16,22,40,.85),rgba(10,14,26,.95));box-shadow:var(--glow)}
.bl-cta .kick{margin:0}
.bl-cta-t{font:700 1.3rem "Space Grotesk",Inter,sans-serif;color:#fff;margin:.2em 0 .3em}
.bl-cta .btn{margin-top:6px}
.bl-src ol{padding-left:1.2em}
.bl-src li{font-size:.92rem}
.bl-nfa{margin-top:1.6em}
.bl-aside{min-width:0}
.bl-sticky{position:sticky;top:84px;display:grid;gap:12px}
.bl-at{font:700 .7rem Inter;text-transform:uppercase;letter-spacing:.12em;color:var(--mut);margin:0 0 8px}
.bl-toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.bl-toc li{counter-increment:t;margin:0;border-left:2px solid var(--line)}
.bl-toc a{display:block;padding:5px 0 5px 10px;font-size:.86rem;color:var(--tx2);text-decoration:none;line-height:1.35}
.bl-toc a:before{content:counter(t) ". ";color:var(--mut)}
.bl-toc a:hover{color:#fff;border-color:var(--cyan)}
.bl-mini .btn{width:100%;text-align:center}
@media (max-width:1080px){.bl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bl-feat{grid-template-columns:minmax(0,1fr)}.bl-layout{grid-template-columns:minmax(0,1fr)}.bl-aside{order:-1}.bl-sticky{position:static}.bl-toc{display:none}.bl-mini{display:none}}
@media (max-width:640px){.bl-grid{grid-template-columns:minmax(0,1fr)}.bl-side .bl-card{grid-template-columns:110px minmax(0,1fr)}.bl-tabs .bl-rss{margin-left:0}.bl-body{font-size:1rem}.bl-byline .btn{margin-left:0}.bl-ahd h1{font-size:clamp(1.7rem,7.5vw,2.2rem)}}
@media (prefers-reduced-motion:reduce){.bl-card,.bl-thumb img{transition:none}.bl-card:hover{transform:none}}
.bl-body li a:not(.btn):not(.pill),.bl-body td a,.bl-foot a,.bl-src a{text-decoration:underline;text-underline-offset:2px}
