/* ==========================================================================
   PHANTOM MINECRAFT — public design system
   Dark End-dimension theme · RTL · mobile first · no framework
   Tokens can be overridden from Admin → Settings → Appearance.
   ========================================================================== */
@font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/Inter-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2191,U+2193}

:root{
  --c-primary:#8B35FF;--c-accent:#79E34B;--c-bg:#08070D;--c-surface:#171321;--c-card:#120F1B;--c-text:#F5F2FA;--c-muted:#A49AAF;
  --c-primary-soft:color-mix(in srgb,var(--c-primary) 16%,transparent);
  --c-accent-soft:color-mix(in srgb,var(--c-accent) 14%,transparent);
  --c-border:rgba(255,255,255,.08);--c-border-strong:rgba(255,255,255,.14);
  --c-danger:#FF5C7A;--c-warn:#F5B94C;--c-info:#5CB8FF;--c-telegram:#2AABEE;
  --radius-sm:6px;--radius:10px;--radius-lg:14px;
  --shadow:0 10px 30px rgba(0,0,0,.35);--shadow-glow:0 0 0 1px color-mix(in srgb,var(--c-primary) 45%,transparent),0 8px 28px color-mix(in srgb,var(--c-primary) 22%,transparent);
  --container:1240px;--gap:24px;--header-h:68px;
  --font:"Vazirmatn","Inter",system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif;--font-en:"Inter","Vazirmatn",system-ui,sans-serif;--font-mono:ui-monospace,"Cascadia Code","SF Mono",Consolas,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font);font-size:16px;line-height:1.85;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(50% 40% at 85% 0%,color-mix(in srgb,var(--c-primary) 13%,transparent),transparent 70%),radial-gradient(40% 35% at 5% 30%,color-mix(in srgb,var(--c-accent) 4%,transparent),transparent 70%)}
img,svg,video{max-width:100%;height:auto;display:block}
svg.icon{flex:none;display:inline-block;vertical-align:middle}
a{color:inherit;text-decoration:none;transition:color .18s var(--ease)}
a:hover{color:var(--c-primary)}
h1,h2,h3,h4{margin:0;line-height:1.5;font-weight:800;letter-spacing:-.01em}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
[hidden]{display:none!important}
[dir="ltr"],code,kbd{font-family:var(--font-en)}
code,pre,kbd{font-family:var(--font-mono)}
:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:4px}
::selection{background:color-mix(in srgb,var(--c-primary) 55%,transparent);color:#fff}
mark{background:color-mix(in srgb,var(--c-accent) 28%,transparent);color:var(--c-text);padding:0 .15em;border-radius:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;inset-inline-start:12px;top:-60px;z-index:200;background:var(--c-primary);color:#fff;padding:10px 16px;border-radius:var(--radius);transition:top .2s}
.skip-link:focus{top:12px;color:#fff}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:16px}
.narrow{max-width:520px}.narrow-lg{max-width:960px}
.site-main{flex:1;padding-bottom:64px}
.site-main:focus{outline:0}
.particles{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.7}
.scroll-x{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap!important}
.scroll-x::-webkit-scrollbar{display:none}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 18px;border-radius:var(--radius);border:1px solid transparent;font-weight:700;font-size:.94rem;line-height:1.4;white-space:nowrap;cursor:pointer;transition:background .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease),color .18s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--c-primary);color:#fff}
.btn-primary:hover{background:color-mix(in srgb,var(--c-primary) 86%,#fff);color:#fff;box-shadow:0 6px 20px color-mix(in srgb,var(--c-primary) 35%,transparent)}
.btn-ghost{background:rgba(255,255,255,.04);border-color:var(--c-border-strong);color:var(--c-text)}
.btn-ghost:hover{background:rgba(255,255,255,.08);border-color:color-mix(in srgb,var(--c-primary) 60%,transparent);color:var(--c-text)}
.btn-accent,.btn-download{background:var(--c-accent);color:#0B1405}
.btn-accent:hover,.btn-download:hover{background:color-mix(in srgb,var(--c-accent) 88%,#fff);color:#0B1405;box-shadow:0 6px 20px color-mix(in srgb,var(--c-accent) 28%,transparent)}
.btn-download.is-external{background:transparent;border-color:color-mix(in srgb,var(--c-accent) 55%,transparent);color:var(--c-accent)}
.btn-download.is-external:hover{background:var(--c-accent-soft);color:var(--c-accent);box-shadow:none}
.btn-telegram{background:var(--c-telegram);color:#fff}
.btn-telegram:hover{background:#45b8f2;color:#fff}
.btn-sm{min-height:36px;padding:6px 12px;font-size:.86rem}
.btn-lg{min-height:50px;padding:10px 24px;font-size:1rem}
.btn-block{width:100%}
.btn.is-disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}
.icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:var(--radius);color:var(--c-text);transition:background .18s}
.icon-btn:hover{background:rgba(255,255,255,.07)}

/* ---------- Badges, chips, meta ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:99px;font-size:.76rem;font-weight:700;line-height:1.8;background:var(--c-primary-soft);color:color-mix(in srgb,var(--c-primary) 60%,#fff);border:1px solid color-mix(in srgb,var(--c-primary) 35%,transparent)}
.badge.is-green{background:var(--c-accent-soft);color:var(--c-accent);border-color:color-mix(in srgb,var(--c-accent) 35%,transparent)}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip-row.is-center{justify-content:center}
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:var(--radius-sm);font-size:.78rem;line-height:1.9;background:rgba(255,255,255,.05);border:1px solid var(--c-border);color:var(--c-muted);white-space:nowrap}
.chip-loader{font-family:var(--font-en);color:var(--c-accent);border-color:color-mix(in srgb,var(--c-accent) 25%,transparent)}
.chip-link{padding:5px 12px;font-size:.85rem;transition:all .18s}
.chip-link:hover,.chip-link.is-active{background:var(--c-primary-soft);border-color:color-mix(in srgb,var(--c-primary) 55%,transparent);color:var(--c-text)}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;color:var(--c-muted);font-size:.8rem}
.meta>*{display:inline-flex;align-items:center;gap:5px}
.count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:rgba(255,255,255,.08);font-size:.74rem;color:var(--c-muted);font-weight:600}
.rank-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:4px;font-size:.72rem;font-weight:700;line-height:1.7;color:var(--rank,#8B35FF);background:color-mix(in srgb,var(--rank,#8B35FF) 14%,transparent);border:1px solid color-mix(in srgb,var(--rank,#8B35FF) 40%,transparent);vertical-align:middle;white-space:nowrap}
.rank-badge img{width:14px;height:14px}

/* ---------- Header ---------- */
.announce{background:linear-gradient(90deg,color-mix(in srgb,var(--c-primary) 30%,var(--c-bg)),var(--c-surface));font-size:.86rem;border-bottom:1px solid var(--c-border)}
.announce .container{display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;text-align:center}
.announce a{text-decoration:underline;text-underline-offset:4px}
.site-header{position:relative;z-index:60;background:color-mix(in srgb,var(--c-bg) 82%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--c-border)}
.has-sticky-header .site-header{position:sticky;top:0}
.header-inner{display:flex;align-items:center;gap:12px;min-height:var(--header-h)}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:36px;width:auto}
.main-nav{display:none;flex:1}
.main-nav>ul{display:flex;align-items:center;gap:2px}
.main-nav li{position:relative}
.main-nav a{display:flex;align-items:center;gap:5px;padding:8px 12px;border-radius:var(--radius-sm);font-weight:600;font-size:.93rem;color:var(--c-muted)}
.main-nav a:hover,.main-nav a.is-active{color:var(--c-text);background:rgba(255,255,255,.05)}
.main-nav a.is-active{box-shadow:inset 0 -2px 0 var(--c-primary);border-radius:var(--radius-sm) var(--radius-sm) 0 0}
.sub-nav{position:absolute;top:100%;inset-inline-start:0;min-width:440px;padding:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:all .18s var(--ease)}
.main-nav li:hover>.sub-nav,.main-nav li:focus-within>.sub-nav{opacity:1;visibility:visible;transform:none}
.sub-nav a{color:var(--c-text);font-weight:500;padding:9px 10px}
.sub-nav a svg{color:var(--c-accent)}
.header-actions{display:flex;align-items:center;gap:6px;margin-inline-start:auto}
.header-tg span,.header-login{display:none}
.user-menu{position:relative}
.user-menu-btn{display:block;border-radius:50%;border:2px solid var(--c-border-strong);overflow:hidden;width:38px;height:38px}
.user-menu-btn img{width:100%;height:100%;object-fit:cover}
.dropdown-panel{position:absolute;top:calc(100% + 10px);inset-inline-end:0;min-width:220px;padding:8px;background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow);z-index:70}
.dropdown-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px 12px;border-bottom:1px solid var(--c-border);margin-bottom:6px}
.dropdown-panel a,.dropdown-panel button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:var(--radius-sm);font-size:.9rem;text-align:start}
.dropdown-panel a:hover,.dropdown-panel button:hover{background:rgba(255,255,255,.06);color:var(--c-text)}

/* ---------- Drawer & search overlay ---------- */
.drawer,.search-overlay{position:fixed;inset:0;z-index:100}
.drawer-backdrop,.search-backdrop{position:absolute;inset:0;background:rgba(4,3,8,.72);backdrop-filter:blur(4px);animation:fade .2s}
.drawer-panel{position:absolute;inset-block:0;inset-inline-start:0;width:min(340px,88vw);background:var(--c-surface);border-inline-end:1px solid var(--c-border-strong);display:flex;flex-direction:column;overflow-y:auto;animation:slide-in .25s var(--ease)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--c-border)}
.drawer-head img{height:32px;width:auto}
.drawer-search{display:flex;margin:16px;border:1px solid var(--c-border-strong);border-radius:var(--radius);overflow:hidden;background:var(--c-bg)}
.drawer-search input{flex:1;min-width:0;background:none;border:0;padding:10px 12px;outline:0}
.drawer-search button{padding:0 14px;color:var(--c-muted)}
.drawer-nav{padding:0 10px}
.drawer-nav a,.drawer-nav summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 10px;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;list-style:none}
.drawer-nav summary::-webkit-details-marker{display:none}
.drawer-nav details[open] summary svg{transform:rotate(180deg)}
.drawer-nav details ul{padding-inline-start:12px;border-inline-start:1px solid var(--c-border);margin-inline-start:12px}
.drawer-nav details a{justify-content:flex-start;font-weight:500;color:var(--c-muted);padding:9px 10px}
.drawer-nav a.is-active{color:var(--c-primary)}
.drawer-foot{margin-top:auto;padding:16px;display:grid;gap:8px;border-top:1px solid var(--c-border)}
.drawer-tg{display:flex;align-items:center;gap:8px;padding:8px 10px;color:var(--c-telegram);font-size:.9rem}
.search-dialog{position:relative;width:min(680px,calc(100% - 24px));margin:10vh auto 0;background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;animation:pop .22s var(--ease)}
.search-form{display:flex;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid var(--c-border);color:var(--c-muted)}
.search-form input{flex:1;min-width:0;background:none;border:0;outline:0;padding:12px 0;font-size:1.05rem;color:var(--c-text)}
.search-body{padding:12px 16px 16px;max-height:60vh;overflow-y:auto}
.search-label{display:flex;justify-content:space-between;font-size:.8rem;color:var(--c-muted);margin-bottom:8px}
.search-label button{color:var(--c-muted);text-decoration:underline}
.search-recent{margin-bottom:12px}
.search-suggestions li a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:var(--radius-sm)}
.search-suggestions li a:hover,.search-suggestions li.is-active a{background:var(--c-primary-soft);color:var(--c-text)}
.search-suggestions small{color:var(--c-muted);font-size:.76rem;white-space:nowrap}
.search-suggestions .is-all a{color:var(--c-primary);font-weight:700;justify-content:center}
.search-suggestions .is-empty{padding:16px;color:var(--c-muted);text-align:center;font-size:.9rem}
.search-hint{margin-top:12px;font-size:.76rem;color:var(--c-muted);text-align:center}
kbd{display:inline-block;padding:0 6px;border:1px solid var(--c-border-strong);border-bottom-width:2px;border-radius:4px;font-size:.74rem;background:rgba(255,255,255,.04)}

/* ---------- Toasts ---------- */
.toast-stack{position:fixed;inset-block-start:calc(var(--header-h) + 12px);inset-inline-end:16px;z-index:90;display:grid;gap:8px;width:min(400px,calc(100% - 32px))}
.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius);background:var(--c-surface);border:1px solid var(--c-border-strong);border-inline-start:3px solid var(--c-info);box-shadow:var(--shadow);font-size:.9rem;animation:pop .25s var(--ease)}
.toast>svg{margin-top:5px;color:var(--c-info)}
.toast span{flex:1}
.toast-success{border-inline-start-color:var(--c-accent)}.toast-success>svg{color:var(--c-accent)}
.toast-error{border-inline-start-color:var(--c-danger)}.toast-error>svg{color:var(--c-danger)}
.toast button{color:var(--c-muted);margin-top:5px}

/* ---------- Breadcrumbs ---------- */
.breadcrumbs{padding-block:14px 0;font-size:.82rem;color:var(--c-muted)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:4px 0;align-items:center}
.breadcrumbs li{display:flex;align-items:center}
.breadcrumbs li+li::before{content:"‹";margin-inline:8px;opacity:.5}
.breadcrumbs [aria-current]{color:var(--c-text)}
.is-home .breadcrumbs{display:none}

/* ---------- Hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;border-bottom:1px solid var(--c-border)}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,var(--c-bg) 2%,transparent 55%),linear-gradient(to left,color-mix(in srgb,var(--c-bg) 88%,transparent) 20%,color-mix(in srgb,var(--c-bg) 35%,transparent) 75%)}
.hero-inner{display:grid;gap:24px;align-items:center;padding-block:48px 56px}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;font:700 .78rem/1 var(--font-en);letter-spacing:.28em;color:var(--c-accent);margin-bottom:16px}
.hero-kicker .dot{width:8px;height:8px;background:var(--c-accent);box-shadow:0 0 12px var(--c-accent)}
.hero-title{font-size:clamp(2rem,6.2vw,3.6rem);font-weight:900;line-height:1.3;letter-spacing:-.02em}
.hero-sub{margin-top:14px;color:var(--c-muted);font-size:clamp(1rem,2vw,1.15rem);max-width:56ch}
.hero-search{display:flex;align-items:center;gap:8px;margin-top:24px;padding:6px;padding-inline-start:14px;max-width:600px;background:color-mix(in srgb,var(--c-surface) 78%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--c-border-strong);border-radius:var(--radius-lg);color:var(--c-muted);transition:border-color .2s,box-shadow .2s}
.hero-search:focus-within{border-color:var(--c-primary);box-shadow:0 0 0 4px var(--c-primary-soft)}
.hero-search input{flex:1;min-width:0;background:none;border:0;outline:0;padding:8px 0;color:var(--c-text)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.hero-stats{display:flex;flex-wrap:wrap;gap:12px 32px;margin:28px 0 0}
.hero-stats div{display:flex;flex-direction:column-reverse}
.hero-stats dt{color:var(--c-muted);font-size:.8rem}
.hero-stats dd{margin:0;font-size:1.5rem;font-weight:800;line-height:1.4}
.hero-art{display:none}

/* ---------- Sections ---------- */
.section{margin-top:56px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.section-title{display:flex;align-items:center;gap:10px;font-size:clamp(1.2rem,2.6vw,1.5rem);position:relative;padding-inline-start:14px}
.section-title::before{content:"";position:absolute;inset-inline-start:0;top:.35em;bottom:.35em;width:4px;background:var(--c-primary)}
.section-downloads .section-title::before,.section-types .section-title::before{background:var(--c-accent)}
.section-sub{color:var(--c-muted);font-size:.9rem;margin-top:2px;padding-inline-start:14px}
.more-link{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:600;color:var(--c-muted);white-space:nowrap}
.more-link:hover{color:var(--c-primary)}
.more-link svg{transition:transform .2s}
.more-link:hover svg{transform:translateX(-4px)}
.split-sections{display:grid;gap:0 var(--gap)}
.split-sections .section{min-width:0}

/* ---------- Cards ---------- */
.card-grid{display:grid;gap:20px;grid-template-columns:1fr}
.card{display:flex;flex-direction:column;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg);overflow:hidden;transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}
.card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c-primary) 50%,transparent);box-shadow:var(--shadow)}
.dl-card:hover{border-color:color-mix(in srgb,var(--c-accent) 45%,transparent)}
.card-media{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--c-surface)}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.card:hover .card-media img{transform:scale(1.04)}
.badge-type{position:absolute;top:10px;inset-inline-start:10px;background:color-mix(in srgb,var(--c-bg) 78%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--c-text);border-color:var(--c-border-strong)}
.badge-type svg{color:var(--c-primary)}
.badge-type.is-green svg{color:var(--c-accent)}
.article-kicker .badge-type{position:static}
.card-body{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;flex:1}
.card-cat{font-size:.78rem;font-weight:700;color:var(--c-accent)}
.card-title{font-size:1.02rem;line-height:1.7;font-weight:700}
.card-title a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-text{color:var(--c-muted);font-size:.88rem;line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-body .meta{margin-top:auto;padding-top:6px}
.post-card.is-wide .card-title{font-size:1.25rem}
.post-card.is-wide .card-text{-webkit-line-clamp:3}
.featured-grid{display:grid;gap:20px}
.featured-side{display:grid;gap:12px;align-content:start}
.list-grid{display:grid;gap:20px}
.lead-post{margin-bottom:20px}
.mini-card{display:flex;gap:12px;align-items:center;padding:10px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);transition:border-color .2s}
.mini-card:hover{border-color:var(--c-border-strong)}
.mini-thumb{flex:none;width:88px;aspect-ratio:3/2;border-radius:var(--radius-sm);overflow:hidden;background:var(--c-surface)}
.mini-thumb img{width:100%;height:100%;object-fit:cover}
.mini-card h3{font-size:.9rem;font-weight:600;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rank-list{display:grid;gap:10px}
.rank-item{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);transition:border-color .2s}
.rank-item:hover{border-color:var(--c-border-strong)}
.rank-num{flex:none;width:34px;font:900 1.5rem/1 var(--font);color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--c-primary) 80%,transparent);text-align:center}
.rank-body{flex:1;min-width:0}
.rank-body h3{font-size:.94rem;font-weight:600;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rank-thumb{flex:none;width:84px;aspect-ratio:3/2;border-radius:var(--radius-sm);overflow:hidden}
.rank-thumb img{width:100%;height:100%;object-fit:cover}
.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.type-tile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 8px;text-align:center;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg);transition:all .22s var(--ease)}
.type-tile:hover{border-color:color-mix(in srgb,var(--c-accent) 50%,transparent);background:var(--c-surface);color:var(--c-text);transform:translateY(-2px)}
.type-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius);background:var(--c-accent-soft);color:var(--c-accent)}
.type-tile strong{font-size:.9rem}
.type-tile small{color:var(--c-muted);font-size:.76rem}

/* ---------- Community / Telegram ---------- */
.community-card{position:relative;display:grid;gap:24px;padding:28px 20px;border-radius:var(--radius-lg);border:1px solid var(--c-border-strong);background:linear-gradient(135deg,color-mix(in srgb,var(--c-primary) 20%,var(--c-card)),var(--c-card) 60%);overflow:hidden}
.community-copy h2{font-size:clamp(1.3rem,3vw,1.8rem);margin-bottom:8px}
.community-copy>p{color:var(--c-muted);margin-bottom:20px;max-width:60ch}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--c-telegram);font-weight:700;font-size:.84rem;margin-bottom:8px}
.community-art{display:none}
.tg-links{display:grid;gap:10px}
.tg-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius);background:color-mix(in srgb,var(--c-bg) 55%,transparent);border:1px solid var(--c-border);transition:all .2s var(--ease)}
.tg-link:hover{border-color:var(--c-telegram);color:var(--c-text);transform:translateX(-3px)}
.tg-link-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--c-telegram) 18%,transparent);color:var(--c-telegram)}
.tg-link-text{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.6}
.tg-link-text small{color:var(--c-muted);font-size:.8rem}
.tg-link-handle{font-size:.78rem;color:var(--c-muted);display:none}
.tg-links.is-compact .tg-link{padding:9px 12px}
.tg-links.is-compact .tg-link-icon{width:34px;height:34px}

/* ---------- Page hero / archive ---------- */
.page-hero{position:relative;isolation:isolate;overflow:hidden;margin-top:14px;border-block:1px solid var(--c-border)}
.page-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.page-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to left,color-mix(in srgb,var(--c-bg) 92%,transparent),color-mix(in srgb,var(--c-bg) 55%,transparent))}
.page-hero-inner{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding-block:32px}
.page-hero-icon{display:grid;place-items:center;flex:none;width:56px;height:56px;border-radius:var(--radius);background:var(--c-primary-soft);color:var(--c-primary);border:1px solid color-mix(in srgb,var(--c-primary) 40%,transparent)}
.page-hero-icon.is-green{background:var(--c-accent-soft);color:var(--c-accent);border-color:color-mix(in srgb,var(--c-accent) 40%,transparent)}
.page-hero h1{font-size:clamp(1.4rem,3.6vw,2rem)}
.page-hero p{color:var(--c-muted);font-size:.94rem;max-width:64ch}
.page-hero-inner>div{flex:1;min-width:220px}
.page-hero-count{font-size:.84rem;color:var(--c-muted);padding:4px 12px;border:1px solid var(--c-border-strong);border-radius:99px;background:color-mix(in srgb,var(--c-bg) 60%,transparent)}
.layout-sidebar{display:grid;gap:32px;margin-top:28px}
.layout-main{min-width:0}
.layout-aside{display:grid;gap:20px;align-content:start;min-width:0}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.toolbar .chip-row{flex:1;min-width:0}
.sort-tabs{display:inline-flex;padding:3px;border-radius:var(--radius);background:var(--c-card);border:1px solid var(--c-border)}
.sort-tabs a{padding:5px 12px;border-radius:var(--radius-sm);font-size:.84rem;color:var(--c-muted);white-space:nowrap}
.sort-tabs a.is-active{background:var(--c-surface);color:var(--c-text);box-shadow:inset 0 0 0 1px var(--c-border-strong)}
.result-count{color:var(--c-muted);font-size:.88rem}
.type-tabs{display:flex;gap:6px;margin-top:20px;padding-bottom:4px}
.type-tabs a{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--c-border);background:var(--c-card);font-size:.88rem;font-weight:600;color:var(--c-muted);white-space:nowrap}
.type-tabs a:hover{color:var(--c-text);border-color:var(--c-border-strong)}
.type-tabs a.is-active{background:var(--c-accent-soft);border-color:color-mix(in srgb,var(--c-accent) 50%,transparent);color:var(--c-accent)}
.pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:32px}
.page-link,.page-gap{display:grid;place-items:center;min-width:40px;height:40px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--c-border);background:var(--c-card);font-size:.9rem}
.page-gap{border:0;background:none;color:var(--c-muted)}
.page-link:hover{border-color:var(--c-primary);color:var(--c-text)}
.page-link.is-active{background:var(--c-primary);border-color:var(--c-primary);color:#fff;font-weight:700}
.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:48px 20px;border:1px dashed var(--c-border-strong);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--c-card) 60%,transparent)}
.empty-state img{width:min(220px,60%);margin-bottom:8px}
.empty-state h1,.empty-state h2{font-size:1.2rem}
.empty-state p{color:var(--c-muted);max-width:48ch}
.empty-state .btn,.empty-state .chip-row{margin-top:10px}
.empty-inline{color:var(--c-muted);padding:20px;text-align:center;border:1px dashed var(--c-border);border-radius:var(--radius)}
.notice-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;margin-block:20px;border-radius:var(--radius);background:var(--c-card);border:1px solid var(--c-border);color:var(--c-muted);font-size:.92rem}
.notice-inline a{color:var(--c-primary);font-weight:600}

/* ---------- Widgets ---------- */
.widget{padding:18px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg);display:grid;gap:10px}
.widget.is-bare{padding:0;background:none;border:0}
.widget-title{font-size:1rem;padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid var(--c-border);position:relative}
.widget-title::after{content:"";position:absolute;bottom:-1px;inset-inline-start:0;width:36px;height:2px;background:var(--c-primary)}
.widget-sub{font-size:.86rem;color:var(--c-muted);font-weight:600;margin-top:8px}
.widget .mini-card,.widget .rank-item{background:none;border:0;padding:6px 0;border-radius:0}
.widget .mini-card+.mini-card,.widget .rank-item+.rank-item{border-top:1px solid var(--c-border);padding-top:12px}
.widget .rank-thumb{display:none}
.widget .tg-link{background:var(--c-surface)}
.widget-search{display:flex;border:1px solid var(--c-border-strong);border-radius:var(--radius);overflow:hidden;background:var(--c-bg)}
.widget-search input{flex:1;min-width:0;border:0;background:none;padding:9px 12px;outline:0}
.widget-search button{padding:0 14px;color:var(--c-muted)}
.widget-search:focus-within{border-color:var(--c-primary)}
.widget-list a{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:.92rem;border-bottom:1px dashed var(--c-border)}
.widget-list li:last-child a{border:0}
.spec-table{margin:0;display:grid}
.spec-table div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--c-border);font-size:.9rem}
.spec-table dt{color:var(--c-muted)}
.spec-table dd{margin:0;font-weight:600;text-align:end}
.spec-table a{color:var(--c-primary)}

/* ---------- Filters ---------- */
.filter-panel{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg)}
.filter-panel>summary{display:flex;align-items:center;gap:8px;padding:14px 18px;font-weight:700;cursor:pointer;list-style:none}
.filter-panel>summary::-webkit-details-marker{display:none}
.filter-panel>summary svg:last-child{margin-inline-start:auto;transition:transform .2s}
.filter-panel[open]>summary svg:last-child{transform:rotate(180deg)}
.filter-form{display:grid;gap:16px;padding:4px 18px 18px}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0;margin-bottom:6px;font-size:.84rem;color:var(--c-muted);font-weight:600}
.seg{display:flex;gap:4px;padding:3px;background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius)}
.seg-wrap{flex-wrap:wrap}
.seg label{flex:1;position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;cursor:pointer}
.seg span{display:block;text-align:center;padding:5px 8px;border-radius:var(--radius-sm);font-size:.84rem;color:var(--c-muted);white-space:nowrap;transition:all .15s}
.seg input:checked+span{background:var(--c-accent-soft);color:var(--c-accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-accent) 40%,transparent)}
.seg input:focus-visible+span{outline:2px solid var(--c-accent)}
.filter-actions{display:grid;gap:8px}

/* ---------- Forms ---------- */
.form{display:grid;gap:16px}
.form-row{display:grid;gap:16px}
.field{display:grid;gap:6px;min-width:0}
.field>span{font-size:.86rem;color:var(--c-muted);font-weight:600}
input[type=text],input[type=email],input[type=password],input[type=url],input[type=search],input[type=number],input[type=file],select,textarea{width:100%;padding:10px 12px;background:var(--c-bg);border:1px solid var(--c-border-strong);border-radius:var(--radius);color:var(--c-text);transition:border-color .18s,box-shadow .18s;outline:0}
input:focus,select:focus,textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-soft)}
.hero-search input,.search-form input,.drawer-search input,.widget-search input{border:0;box-shadow:none;background:none;padding-inline:0}
.widget-search input,.drawer-search input{padding-inline:12px}
textarea{resize:vertical;min-height:110px;line-height:1.9}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23A49AAF' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 12px center;padding-inline-end:12px;padding-left:36px}
select option,select optgroup{background:var(--c-surface);color:var(--c-text)}
input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--c-muted) 70%,transparent)}
.field-error{color:var(--c-danger);font-size:.82rem}
.check{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--c-primary)}
.hp-field{position:absolute!important;inset-inline-start:-9999px;width:1px;height:1px;overflow:hidden}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.form-actions small,.hint{color:var(--c-muted);font-size:.82rem}
.panel{padding:22px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg);display:grid;gap:16px;align-content:start}
.panel h2{font-size:1.1rem}
.form-grid{display:grid;gap:24px}
.avatar-field{display:flex;gap:16px;align-items:center}
.avatar-field img{flex:none;width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid var(--c-border-strong)}
.avatar-field>div{flex:1;display:grid;gap:8px;min-width:0}
.page-head{padding-block:32px 8px}
.page-head h1{font-size:clamp(1.5rem,4vw,2.2rem)}
.page-head p{color:var(--c-muted);margin-top:6px}
.auth-card{margin-top:48px;padding:32px 24px;background:var(--c-card);border:1px solid var(--c-border-strong);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow)}
.auth-card .form{text-align:start;margin-top:24px}
.auth-logo{width:64px;height:64px;margin:0 auto 14px}
.auth-card h1{font-size:1.35rem}
.auth-sub{color:var(--c-muted);font-size:.92rem;margin-top:6px}
.auth-alt{margin-top:20px;color:var(--c-muted);font-size:.92rem}
.auth-alt a{color:var(--c-primary);font-weight:700}

/* ---------- Article ---------- */
.reading-progress{position:fixed;top:0;inset-inline:0;height:3px;z-index:80;pointer-events:none}
.reading-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--c-accent),var(--c-primary));transform-origin:right}
.preview-bar{background:color-mix(in srgb,var(--c-warn) 18%,var(--c-bg));border-bottom:1px solid color-mix(in srgb,var(--c-warn) 40%,transparent);color:var(--c-warn);font-size:.88rem;font-weight:600}
.preview-bar .container{display:flex;align-items:center;gap:8px;min-height:40px}
.article{padding-top:20px}
.article-head{max-width:880px}
.article-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}
.article-title{font-size:clamp(1.6rem,4.4vw,2.5rem);font-weight:900;line-height:1.45}
.article-excerpt{margin-top:12px;color:var(--c-muted);font-size:1.06rem;line-height:2}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:20px;padding-block:14px;border-block:1px solid var(--c-border)}
.author-chip{display:flex;align-items:center;gap:10px}
.author-chip img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--c-border-strong)}
.author-chip span{display:flex;flex-wrap:wrap;align-items:center;gap:6px;line-height:1.5}
.meta-list{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--c-muted);font-size:.86rem}
.meta-list li,.meta-list a{display:inline-flex;align-items:center;gap:6px}
.article-cover{margin:24px 0 0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--c-border);background:var(--c-surface);aspect-ratio:16/9}
.article-cover img{width:100%;height:100%;object-fit:cover}
.toc{margin-bottom:28px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg)}
.toc summary{display:flex;align-items:center;gap:8px;padding:14px 18px;font-weight:700;cursor:pointer;list-style:none}
.toc summary::-webkit-details-marker{display:none}
.toc summary svg:last-child{margin-inline-start:auto;transition:transform .2s}
.toc details[open] summary svg:last-child{transform:rotate(180deg)}
.toc ol{padding:0 18px 16px;display:grid;gap:2px;counter-reset:toc}
.toc li a{display:block;padding:5px 10px;border-inline-start:2px solid var(--c-border);color:var(--c-muted);font-size:.92rem}
.toc li a:hover,.toc li a.is-active{color:var(--c-text);border-color:var(--c-primary);background:var(--c-primary-soft)}
.toc-l3 a{padding-inline-start:26px!important;font-size:.86rem!important}

/* ---------- Prose (rendered blocks) ---------- */
.prose{font-size:1.04rem;line-height:2.15;overflow-wrap:break-word}
.prose>*+*{margin-top:1.25em}
.prose p a,.prose li a,.prose td a,.callout a{color:var(--c-primary);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--c-primary) 45%,transparent);text-underline-offset:5px}
.prose p a:hover,.prose li a:hover{text-decoration-color:currentColor}
.prose strong{font-weight:800}
.prose code{padding:.1em .4em;border-radius:4px;background:rgba(255,255,255,.07);font-size:.88em;direction:ltr;unicode-bidi:embed}
.content-heading{scroll-margin-top:calc(var(--header-h) + 20px);margin-top:1.9em!important}
h2.content-heading{font-size:1.5rem;padding-bottom:.35em;border-bottom:1px solid var(--c-border)}
h3.content-heading{font-size:1.24rem}
h4.content-heading{font-size:1.08rem;color:color-mix(in srgb,var(--c-text) 85%,var(--c-primary))}
.content-list{padding-inline-start:1.5em;display:grid;gap:.4em}
.content-list.is-bullet{list-style:square}
.content-list.is-bullet li::marker{color:var(--c-primary)}
.content-list.is-number{list-style:persian}
.content-list.is-number li::marker{color:var(--c-accent);font-weight:800}
.content-list.is-check{padding-inline-start:0}
.content-list.is-check li{position:relative;padding-inline-start:1.9em}
.content-list.is-check li::before{content:"";position:absolute;inset-inline-start:0;top:.62em;width:1.1em;height:1.1em;border-radius:4px;background:var(--c-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2379E34B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3.5 8.5 3 3 6-7'/%3E%3C/svg%3E") center/80% no-repeat}
.content-quote{margin-inline:0;padding:18px 22px;border-inline-start:4px solid var(--c-primary);background:linear-gradient(to left,var(--c-primary-soft),transparent);border-radius:0 var(--radius) var(--radius) 0;font-size:1.1rem}
[dir=rtl] .content-quote{border-radius:var(--radius) 0 0 var(--radius)}
.content-quote cite,.content-quote footer{display:block;margin-top:8px;font-size:.86rem;color:var(--c-muted);font-style:normal}
.content-figure{margin-inline:0}
.content-figure img{width:100%;border-radius:var(--radius);border:1px solid var(--c-border);background:var(--c-surface)}
.content-figure figcaption,.content-gallery figcaption{margin-top:8px;text-align:center;font-size:.84rem;color:var(--c-muted);line-height:1.7}
.content-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-inline:0}
.gallery-item{display:block;margin:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--c-border);background:var(--c-surface);cursor:zoom-in}
.gallery-item img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .4s var(--ease)}
.gallery-item:hover img{transform:scale(1.05)}
.content-video{margin-inline:0}
.video-frame{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;border:1px solid var(--c-border);background:#000}
.video-frame iframe,.video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0}
.table-wrap{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--radius)}
.content-table{width:100%;border-collapse:collapse;font-size:.94rem;line-height:1.8}
.content-table th,.content-table td{padding:10px 14px;text-align:start;border-bottom:1px solid var(--c-border)}
.content-table th{background:var(--c-surface);font-weight:700;white-space:nowrap}
.content-table tr:last-child td{border-bottom:0}
.content-table tbody tr:hover td{background:rgba(255,255,255,.025)}
.callout{display:flex;gap:14px;padding:16px 18px;border-radius:var(--radius);border:1px solid;border-inline-start-width:4px;--tone:var(--c-info);border-color:color-mix(in srgb,var(--tone) 40%,transparent);background:color-mix(in srgb,var(--tone) 8%,transparent)}
.callout-tip{--tone:var(--c-accent)}.callout-warning{--tone:var(--c-warn)}.callout-notice{--tone:var(--c-info)}
.callout-icon{flex:none;color:var(--tone);margin-top:4px}
.callout-body{flex:1;min-width:0;font-size:.98rem;line-height:2}
.callout-title{display:block;font-weight:800;color:var(--tone);margin-bottom:2px}
.code-block,.mc-command{margin-inline:0;border-radius:var(--radius);border:1px solid var(--c-border-strong);background:#0B0912;overflow:hidden}
.code-block figcaption,.mc-command-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 14px;border-bottom:1px solid var(--c-border);background:rgba(255,255,255,.03);font-size:.78rem;font-weight:600;color:var(--c-muted);line-height:1.8}
.code-block figcaption span[dir=ltr]{text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-en)}
.mc-command-bar>span{display:inline-flex;align-items:center;gap:6px;color:var(--c-accent)}
.code-block pre,.mc-command pre{margin:0;padding:14px 18px;overflow-x:auto;font-size:.88rem;line-height:1.75;tab-size:2;text-align:left;direction:ltr;scrollbar-width:thin}
.code-block pre code,.mc-command pre code{padding:0;background:none;font-size:inherit}
.mc-command{border-color:color-mix(in srgb,var(--c-accent) 35%,transparent)}
.mc-command pre{color:#D7FFC4;font-size:.94rem}
.mc-command pre code::before{content:"> ";color:var(--c-accent);font-weight:800}
.mc-command-desc{padding:9px 14px;border-top:1px solid var(--c-border);font-size:.88rem;line-height:1.9;color:var(--c-muted);background:rgba(255,255,255,.02)}
.copy-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-sm);border:1px solid var(--c-border-strong);background:rgba(255,255,255,.05);color:var(--c-muted);font:600 .76rem/1.6 var(--font);transition:all .15s;cursor:pointer}
.copy-btn:hover{color:var(--c-text);border-color:var(--c-primary)}
.copy-btn.is-copied{color:var(--c-accent);border-color:var(--c-accent)}
.article-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:32px;color:var(--c-muted)}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;padding:14px 16px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius)}
.share-label{display:inline-flex;align-items:center;gap:6px;color:var(--c-muted);font-size:.88rem;margin-inline-end:auto}
.share-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius);border:1px solid var(--c-border-strong);color:var(--c-muted);transition:all .18s}
.share-btn:hover{color:var(--c-text);border-color:var(--c-primary);background:var(--c-primary-soft)}
.share-btn.is-telegram:hover{border-color:var(--c-telegram);color:var(--c-telegram);background:color-mix(in srgb,var(--c-telegram) 14%,transparent)}
.author-box{display:flex;gap:16px;align-items:center;margin-top:24px;padding:18px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg)}
.author-box img{flex:none;width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid var(--c-border-strong)}
.author-box-name{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:800}
.author-box p+p{color:var(--c-muted);font-size:.92rem;margin-top:2px}
.related,.comments,.dl-section{margin-top:44px}
.related .section-title,.comments .section-title,.dl-section .section-title{margin-bottom:18px}

/* ---------- Comments ---------- */
.comment-form{display:grid;gap:14px;padding:18px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg)}
.reply-note{font-size:.88rem;color:var(--c-muted);padding:8px 12px;background:var(--c-primary-soft);border-radius:var(--radius-sm)}
.reply-note button{color:var(--c-danger);margin-inline-start:8px;text-decoration:underline}
.comment-list{display:grid;gap:14px;margin-top:24px}
.comment{display:flex;gap:12px;padding:16px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg);scroll-margin-top:calc(var(--header-h) + 16px)}
.comment.is-reply{margin-inline-start:28px;background:color-mix(in srgb,var(--c-card) 60%,var(--c-surface));border-inline-start:2px solid color-mix(in srgb,var(--c-primary) 50%,transparent)}
.comment:target{border-color:var(--c-primary)}
.comment-avatar{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--c-border-strong)}
.comment-main{flex:1;min-width:0}
.comment-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:4px}
.comment-author{font-weight:700}
.comment-head time{color:var(--c-muted);font-size:.78rem;margin-inline-start:auto}
.comment-body{font-size:.95rem;line-height:2;overflow-wrap:anywhere}
.comment-reply{display:inline-flex;align-items:center;gap:5px;margin-top:8px;color:var(--c-muted);font-size:.82rem;font-weight:600}
.comment-reply:hover{color:var(--c-primary)}

/* ---------- Download box ---------- */
.dl-box{position:relative;margin-block:1.8em;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--c-accent) 32%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--c-accent) 7%,var(--c-card)),var(--c-card) 45%);overflow:hidden;line-height:1.85;font-size:.95rem}
.dl-box::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;height:3px;background:linear-gradient(90deg,var(--c-accent),var(--c-primary))}
.dl-box>*+*{margin-top:0}
.dl-box-head{display:grid;gap:16px;padding:20px}
.dl-box-image{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);border:1px solid var(--c-border);background:var(--c-surface)}
.dl-box-kicker{display:inline-flex;align-items:center;gap:6px;color:var(--c-accent);font-size:.78rem;font-weight:700;letter-spacing:.02em}
.dl-box-title{font-size:1.25rem;margin-top:2px}
.dl-box-desc{color:var(--c-muted);margin-top:4px;font-size:.92rem}
.spec-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.spec-list li{display:flex;flex-direction:column;padding:8px 12px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--c-bg) 55%,transparent);border:1px solid var(--c-border);line-height:1.6;min-width:0}
.spec-list span{font-size:.72rem;color:var(--c-muted)}
.spec-list strong{font-size:.9rem;font-weight:700;overflow:hidden;text-overflow:ellipsis}
.spec-list a{color:var(--c-primary)}
.spec-list.is-center{max-width:420px;margin-inline:auto}
.dl-box-empty{display:flex;align-items:center;gap:8px;margin:0 20px 20px;padding:12px;border:1px dashed var(--c-border-strong);border-radius:var(--radius);color:var(--c-muted)}
.dl-version{border-top:1px solid var(--c-border)}
.dl-version>summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 20px;cursor:pointer;font-weight:700;list-style:none;background:rgba(255,255,255,.02)}
.dl-version>summary::-webkit-details-marker{display:none}
.dl-version>summary svg{margin-inline-start:auto;transition:transform .2s}
.dl-version[open]>summary svg{transform:rotate(180deg)}
.dl-version-date{color:var(--c-muted);font-size:.8rem;font-weight:400}
.dl-changelog{margin:12px 20px 0;padding:10px 14px;border-radius:var(--radius-sm);background:rgba(255,255,255,.03);font-size:.88rem;color:var(--c-muted)}
.dl-changelog strong{color:var(--c-text);font-size:.84rem}
.dl-links{display:grid;gap:10px;padding:14px 20px 20px}
.dl-link{display:grid;gap:12px;padding:14px;border-radius:var(--radius);background:color-mix(in srgb,var(--c-bg) 60%,transparent);border:1px solid var(--c-border);transition:border-color .2s}
.dl-link:hover{border-color:color-mix(in srgb,var(--c-accent) 40%,transparent)}
.dl-link-info{display:grid;gap:4px;min-width:0}
.dl-link-method{display:inline-flex;align-items:center;gap:5px;font-size:.74rem;font-weight:700;justify-self:start;padding:1px 8px;border-radius:4px}
.dl-link-method.is-direct{color:var(--c-accent);background:var(--c-accent-soft)}
.dl-link-method.is-external{color:var(--c-info);background:color-mix(in srgb,var(--c-info) 14%,transparent)}
.dl-link-label{font-size:.98rem}
.dl-link-meta{display:flex;flex-wrap:wrap;gap:4px 6px;font-size:.78rem;color:var(--c-muted)}
.dl-link-meta span{padding:0 8px;border-radius:4px;background:rgba(255,255,255,.05);border:1px solid var(--c-border)}
.dl-link-meta .is-format{color:var(--c-text);font-weight:700}
.dl-checksum{display:flex;align-items:center;gap:8px;font-size:.74rem;color:var(--c-muted);min-width:0}
.dl-checksum code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;color:var(--c-muted)}
.dl-link .btn{width:100%}
.dl-box-extra{display:grid;gap:20px;padding:18px 20px;border-top:1px solid var(--c-border);background:rgba(255,255,255,.015)}
.dl-box-extra h4{display:flex;align-items:center;gap:6px;font-size:.94rem;margin-bottom:8px}
.dl-box-extra h4 svg{color:var(--c-accent)}
.dl-box-extra .content-list{font-size:.92rem;gap:.2em}
.dl-box-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 20px;border-top:1px solid var(--c-border);font-size:.84rem;color:var(--c-muted)}
.dl-box-foot a,.dl-box-foot span{display:inline-flex;align-items:center;gap:6px}
.dl-box-foot a{color:var(--c-accent);font-weight:600}
/* download detail page */
.dl-page{padding-top:20px}
.dl-hero{display:grid;gap:24px;align-items:center}
.dl-hero-media{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--c-border);aspect-ratio:16/9;background:var(--c-surface)}
.dl-hero-media img{width:100%;height:100%;object-fit:cover}
.stat-row{display:flex;flex-wrap:wrap;gap:10px;margin-block:18px}
.stat-row li{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--radius);background:var(--c-card);border:1px solid var(--c-border);font-size:.86rem;color:var(--c-muted)}
.stat-row svg{color:var(--c-accent)}
.stat-row strong{color:var(--c-text)}
.confirm-card{margin-top:48px;padding:36px 24px;text-align:center;background:var(--c-card);border:1px solid var(--c-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.confirm-icon{display:inline-grid;place-items:center;width:68px;height:68px;border-radius:var(--radius-lg);background:var(--c-accent-soft);color:var(--c-accent);margin-bottom:14px}
.confirm-card h1{font-size:1.4rem}
.confirm-title{color:var(--c-muted);margin-top:4px}
.confirm-note{margin-top:16px;font-size:.86rem;color:var(--c-warn)}
.confirm-actions{display:grid;gap:10px;margin-top:24px}

/* ---------- Page builder blocks ---------- */
.page-builder{padding-top:8px}
.prose-page>*+*{margin-top:1.6em}
.pb-hero{position:relative;isolation:isolate;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--c-border);background:var(--c-surface) var(--hero-img,none) center/cover no-repeat;min-height:260px;display:flex;align-items:flex-end}
.pb-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,color-mix(in srgb,var(--c-bg) 95%,transparent) 10%,color-mix(in srgb,var(--c-bg) 30%,transparent))}
.pb-hero-inner{padding:28px 22px;display:grid;gap:10px;justify-items:start}
.pb-hero-inner h1,.pb-hero-inner h2{font-size:clamp(1.6rem,4.5vw,2.6rem);font-weight:900;line-height:1.4}
.pb-hero-inner p{color:color-mix(in srgb,var(--c-text) 80%,var(--c-muted));max-width:60ch}
.pb-card{display:flex;flex-direction:column;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .2s,transform .2s}
.pb-card:hover{border-color:color-mix(in srgb,var(--c-primary) 50%,transparent);transform:translateY(-2px)}
.pb-card img{width:100%;aspect-ratio:16/9;object-fit:cover}
.pb-card-body{padding:18px;display:grid;gap:6px;line-height:1.9}
.pb-card-body h3{font-size:1.08rem}
.pb-card-body p{color:var(--c-muted);font-size:.92rem}
.card-link{display:inline-flex;align-items:center;gap:6px;color:var(--c-primary);font-weight:700;font-size:.88rem;margin-top:4px;text-decoration:none!important}
.pb-grid{display:grid;gap:24px}
.pb-col>*+*{margin-top:1em}
.pb-buttons{display:flex;flex-wrap:wrap;gap:12px}
.pb-buttons .btn{text-decoration:none}

/* ---------- Search page ---------- */
.search-page{padding-top:28px}
.search-head{display:grid;gap:8px;margin-bottom:24px}
.search-head h1{font-size:clamp(1.3rem,3.6vw,1.8rem)}
.search-head .hero-search{margin-top:8px;max-width:720px}
.search-recent-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.84rem;color:var(--c-muted);margin-top:4px}
.search-taxonomy{display:flex;flex-wrap:wrap;gap:8px;margin-block:14px}
.result-list{display:grid;gap:12px;margin-top:16px}
.result{display:flex;gap:16px;padding:14px;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg);transition:border-color .2s}
.result:hover{border-color:var(--c-border-strong)}
.result-thumb{flex:none;width:112px;aspect-ratio:16/10;border-radius:var(--radius-sm);overflow:hidden;background:var(--c-surface);align-self:flex-start}
.result-thumb img{width:100%;height:100%;object-fit:cover}
.result-body{min-width:0;display:grid;gap:4px;align-content:start}
.result-body h2{font-size:1.04rem;line-height:1.7}
.result-body>p:last-child{color:var(--c-muted);font-size:.9rem;line-height:1.9}

/* ---------- Profile ---------- */
.profile-page{padding-top:28px}
.profile-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:28px 20px;margin-bottom:36px;background:linear-gradient(135deg,color-mix(in srgb,var(--c-primary) 12%,var(--c-card)),var(--c-card));border:1px solid var(--c-border);border-radius:var(--radius-lg)}
.profile-avatar{width:112px;height:112px;border-radius:50%;object-fit:cover;border:3px solid var(--c-border-strong)}
.profile-info h1{font-size:1.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}
.profile-username{color:var(--c-muted);font-size:.9rem}
.profile-bio{margin-block:8px;max-width:60ch}
.profile-info .meta-list{justify-content:center;margin-top:8px}
.profile-page .section-title{margin-bottom:18px}

/* ---------- Error page ---------- */
.error-page{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding-block:48px}
.error-page img{width:min(240px,60%)}
.error-code{font:900 clamp(3rem,12vw,6rem)/1 var(--font-en);letter-spacing:.06em;color:transparent;-webkit-text-stroke:2px var(--c-primary)}
.error-page h1{font-size:clamp(1.3rem,4vw,1.9rem)}
.error-page>p{color:var(--c-muted);max-width:52ch}
.error-page .hero-search{width:100%;margin-top:16px}
.error-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px}

/* ---------- Footer ---------- */
.site-footer{margin-top:auto;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--c-surface) 65%,transparent));border-top:1px solid var(--c-border);padding-top:36px}
.footer-telegram{margin-bottom:36px}
.footer-telegram .tg-links{grid-template-columns:1fr}
.footer-grid{display:grid;gap:32px}
.footer-about img{height:38px;width:auto;margin-bottom:12px}
.footer-about p{color:var(--c-muted);font-size:.92rem;max-width:46ch}
.social-row{display:flex;gap:8px;margin-top:14px}
.social-row a{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius);border:1px solid var(--c-border-strong);color:var(--c-muted)}
.social-row a:hover{color:var(--c-text);border-color:var(--c-primary)}
.footer-col h2{font-size:.98rem;margin-bottom:12px}
.footer-col ul{display:grid;gap:6px}
.footer-col a{color:var(--c-muted);font-size:.92rem}
.footer-col a:hover{color:var(--c-text)}
.footer-bottom{display:grid;gap:4px;margin-top:36px;padding-block:20px;border-top:1px solid var(--c-border);color:var(--c-muted);font-size:.82rem;text-align:center}
.footer-disclaimer{opacity:.75}
.to-top{position:fixed;inset-block-end:20px;inset-inline-start:20px;z-index:50;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius);background:var(--c-surface);border:1px solid var(--c-border-strong);color:var(--c-text);box-shadow:var(--shadow);transition:all .2s}
.to-top:hover{background:var(--c-primary);border-color:var(--c-primary)}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:16px;background:rgba(4,3,8,.92);animation:fade .2s}
.lightbox figure{margin:0;max-width:min(1200px,100%);max-height:100%;display:grid;gap:10px;justify-items:center}
.lightbox img{max-height:82vh;width:auto;border-radius:var(--radius)}
.lightbox figcaption{color:var(--c-muted);font-size:.9rem;text-align:center}
.lightbox button{position:absolute;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.08);color:#fff}
.lightbox button:hover{background:var(--c-primary)}
.lightbox .lb-close{top:16px;inset-inline-end:16px}
.lightbox .lb-prev{inset-inline-start:16px;top:50%}
.lightbox .lb-next{inset-inline-end:16px;top:50%}

@keyframes fade{from{opacity:0}}
@keyframes pop{from{opacity:0;transform:translateY(-8px) scale(.98)}}
@keyframes slide-in{from{transform:translateX(100%)}}

/* ---------- Responsive ---------- */
@media (min-width:560px){
  .card-grid.cols-2,.card-grid.cols-3,.card-grid.cols-4{grid-template-columns:repeat(2,1fr)}
  .form-row{grid-template-columns:1fr 1fr}
  .type-grid{grid-template-columns:repeat(5,1fr)}
  .dl-link{grid-template-columns:1fr auto;align-items:center}
  .dl-link .btn{width:auto}
  .spec-list{grid-template-columns:repeat(3,minmax(0,1fr))}
  .content-gallery{grid-template-columns:repeat(3,1fr)}
  .tg-link-handle{display:block}
  .confirm-actions{grid-template-columns:1fr auto;justify-content:center}
  .header-tg span{display:inline}
  .result-thumb{width:160px}
  .footer-telegram .tg-links{grid-template-columns:repeat(3,1fr)}
  .footer-telegram .tg-link-handle{display:none}
}
@media (min-width:800px){
  .container{padding-inline:24px}
  .header-login{display:inline-flex}
  .post-card.is-wide{flex-direction:row}
  .post-card.is-wide .card-media{flex:0 0 44%;aspect-ratio:auto;min-height:220px}
  .post-card.is-wide .card-body{padding:22px;justify-content:center}
  .card-grid.cols-3,.card-grid.cols-4{grid-template-columns:repeat(3,1fr)}
  .split-sections{grid-template-columns:1fr 1fr}
  .dl-box.has-image .dl-box-head{grid-template-columns:240px 1fr;align-items:start}
  .dl-box-extra{grid-template-columns:1fr 1fr}
  .dl-hero{grid-template-columns:5fr 6fr}
  .pb-grid.cols-2{grid-template-columns:1fr 1fr}
  .pb-grid.cols-3{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1.6fr 1fr 1fr}
  .footer-bottom{grid-template-columns:1fr auto;text-align:start}
  .community-card{grid-template-columns:1fr 280px;align-items:center;padding:36px}
  .community-art{display:block}
  .tg-links:not(.is-compact){grid-template-columns:repeat(3,1fr)}
  .tg-links:not(.is-compact) .tg-link{flex-direction:column;text-align:center;padding:18px 12px}
  .tg-links:not(.is-compact) .tg-link-text{align-items:center}
  .profile-head{flex-direction:row;text-align:start;align-items:center;padding:32px}
  .profile-info h1,.profile-info .meta-list{justify-content:flex-start}
  .form-grid{grid-template-columns:3fr 2fr}
  .pb-hero{min-height:340px}
  .pb-hero-inner{padding:40px}
  .comment.is-reply{margin-inline-start:56px}
}
@media (min-width:1024px){
  .nav-toggle{display:none}
  .main-nav{display:block}
  .brand{margin-inline-end:16px}
  .hero-inner{grid-template-columns:1.25fr .75fr;padding-block:72px 80px;min-height:540px}
  .hero-art{display:block;align-self:end;margin-bottom:-80px}
  .hero-art img{max-height:520px;width:auto;margin-inline:auto;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5));animation:float 7s ease-in-out infinite}
  .featured-grid{grid-template-columns:1.7fr 1fr}
  .featured-grid .post-card.is-wide{flex-direction:column}
  .featured-grid .post-card.is-wide .card-media{flex:none;aspect-ratio:16/9;min-height:0}
  .list-grid{grid-template-columns:1fr 1fr}
  .list-grid .post-card.is-wide .card-media{flex-basis:40%;min-height:180px}
  .list-grid .post-card.is-wide .card-title{font-size:1.08rem}
  .card-grid.cols-4{grid-template-columns:repeat(4,1fr)}
  .type-grid{grid-template-columns:repeat(9,1fr)}
  .layout-sidebar{grid-template-columns:minmax(0,1fr) 320px;gap:36px}
  .layout-sidebar.is-filters{grid-template-columns:300px minmax(0,1fr)}
  .layout-aside{position:sticky;top:calc(var(--header-h) + 20px)}
  .layout-sidebar .card-grid.cols-3{grid-template-columns:repeat(3,1fr)}
  .layout-sidebar .card-grid.cols-2{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}
}
@media (max-width:1023.98px){
  .layout-sidebar.is-filters .filter-panel:not([open]){margin-bottom:0}
  .layout-aside{order:2}
  .layout-sidebar.is-filters .layout-aside{order:0}
}
@keyframes float{50%{transform:translateY(-12px)}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .particles{display:none}
}
@media print{
  .site-header,.site-footer,.layout-aside,.share,.comments,.related,.to-top,.particles,.reading-progress,.breadcrumbs,.announce{display:none!important}
  body{background:#fff;color:#000}.prose{font-size:12pt}
}
