/* Единая система тем для публичных страниц (лендинг, форум, тема, профиль, ЛК).
   Светлая тема - честная палитра через CSS-переменные, без фильтров. */

:root {
    --fg: 255,255,255;
    --bg-rgb: 9,9,9;
    --white: #ffffff;
    --black: #000000;
    --page-bg: #090909;
    --pub-bg: #090909;
    --pub-bg-raised: #0e0e0e;
    --pub-bg-input: #101010;
    --pub-text: #e5e5e5;
    --accent-rgb: 170,155,225;
    --amber: #d9a020;
    --danger-soft: 240,140,140;
    color-scheme: dark;
}

html.pub-light {
    color-scheme: light;
    --fg: 22,22,30;
    --bg-rgb: 243,243,246;
    --white: #1a1a20;
    --black: #ffffff;
    --page-bg: #f3f3f6;
    --pub-bg: #f3f3f6;
    --pub-bg-raised: #ffffff;
    --pub-bg-input: #ffffff;
    --pub-text: #22222a;
    --accent-rgb: 100,82,180;
    --amber: #9a6f10;
    --danger-soft: 185,60,60;
}
html.pub-light { background: var(--pub-bg); }

/* Midnight - глубокий тёмно-синий */
html[data-theme="midnight"] {
    --fg: 221,227,240;
    --bg-rgb: 10,14,26;
    --white: #ffffff;
    --black: #0a0e1a;
    --page-bg: #0a0e1a;
    --pub-bg: #0a0e1a;
    --pub-bg-raised: #101729;
    --pub-bg-input: #0e1526;
    --pub-text: #dde3f0;
    --accent-rgb: 138,180,255;
    --amber: #e0b24a;
    --danger-soft: 240,140,140;
}
html[data-theme="midnight"] { background: var(--pub-bg); }

/* AMOLED - чистый чёрный */
html[data-theme="amoled"] {
    --fg: 235,235,235;
    --bg-rgb: 0,0,0;
    --white: #ffffff;
    --black: #000000;
    --page-bg: #000000;
    --pub-bg: #000000;
    --pub-bg-raised: #0a0a0a;
    --pub-bg-input: #0d0d0d;
    --pub-text: #e5e5e5;
    --accent-rgb: 170,155,225;
    --amber: #d9a020;
    --danger-soft: 240,140,140;
}
html[data-theme="amoled"] { background: var(--pub-bg); }

/* Зоны с видеофоном на лендинге остаются тёмными в любой теме */
html.pub-light .hero-section,
html.pub-light .video-bg,
html.pub-light .hire-card-left,
html.pub-light .landing-announcement,
html.pub-light .recruit-modal-video,
html.pub-light .easter-toast {
    --fg: 255,255,255;
    --bg-rgb: 9,9,9;
    --white: #ffffff;
    --black: #000000;
    --pub-bg: #090909;
    --pub-bg-raised: #0e0e0e;
    --pub-bg-input: #101010;
    --pub-text: #e5e5e5;
}

/* Плавный переход при смене темы (только на момент переключения) */
html.theme-anim,
html.theme-anim body,
html.theme-anim *:not(.pub-theme-btn):not(.ptb-thumb):not(.ptb-thumb i) {
    transition: background-color .4s ease, color .4s ease, border-color .4s ease, box-shadow .4s ease, fill .4s ease !important;
}

/* Точечные правки светлой темы (лендинг) */
html.pub-light .contact-img-icon { filter: grayscale(1) invert(1) brightness(1.6); }

/* Тени мягче на светлом фоне */
html.pub-light * {
    --shadow-soft: rgba(30, 30, 50, 0.12);
}

/* ── Плавающая кнопка смены темы ── */
.pub-theme-btn {
    position: fixed; right: 20px; bottom: 20px; z-index: 500;
    width: 58px; height: 30px; padding: 0;
    border-radius: 999px; -webkit-border-radius: 999px;
    background: rgba(var(--fg), .06); border: 1px solid rgba(var(--fg), .16);
    cursor: pointer; box-sizing: border-box; overflow: hidden;
    display: block;
    transition: border-color .2s, background .2s, box-shadow .2s, bottom .3s ease, right .3s ease, opacity .25s ease, transform .25s ease;
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font-family: inherit;
    box-shadow: 0 6px 22px -10px rgba(0,0,0,.55);
}
.pub-theme-btn:hover { border-color: rgba(var(--fg), .32); background: rgba(var(--fg), .1); }
.pub-theme-btn.ptb-away { opacity: 0; transform: translateY(14px); pointer-events: none; }
.pub-theme-btn:active { transform: scale(.96); }
.ptb-track { position: relative; display: block; width: 100%; height: 100%; }
.ptb-thumb {
    position: absolute; top: 2px; left: 2px; width: 24px; height: 24px;
    border-radius: 50%; background: rgb(var(--fg));
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 6px -1px rgba(0,0,0,.4);
    transition: transform .42s cubic-bezier(.34,1.42,.5,1), width .42s cubic-bezier(.34,1.42,.5,1);
    will-change: transform;
}
.pub-theme-btn:active .ptb-thumb { width: 28px; }
.pub-theme-btn.is-light .ptb-thumb { transform: translateX(28px); }
.pub-theme-btn.is-light:active .ptb-thumb { transform: translateX(24px); }
.ptb-thumb i {
    position: absolute; font-size: .66rem; line-height: 1; color: rgb(var(--bg-rgb));
    transition: opacity .26s ease, transform .42s cubic-bezier(.34,1.42,.5,1);
}
.ptb-i-sun { opacity: 1; transform: rotate(0) scale(1); }
.ptb-i-moon { opacity: 0; transform: rotate(-80deg) scale(.3); }
.pub-theme-btn.is-light .ptb-i-sun { opacity: 0; transform: rotate(80deg) scale(.3); }
.pub-theme-btn.is-light .ptb-i-moon { opacity: 1; transform: rotate(0) scale(1); }
.pub-theme-btn.pulse { animation: pubPulse 1.8s ease infinite; }
body.fab-shown .pub-theme-btn { right: 28px; bottom: 88px; }
body.fab-shown .pub-theme-btn ~ .pub-theme-hint { right: 96px; bottom: 92px; }
@keyframes pubPulse {
    0%, 100% { box-shadow: 0 6px 22px -10px rgba(0,0,0,.55), 0 0 0 0 rgba(var(--fg), .22); }
    50% { box-shadow: 0 6px 22px -10px rgba(0,0,0,.55), 0 0 0 7px rgba(var(--fg), 0); }
}
.pub-theme-hint {
    position: fixed; right: 70px; bottom: 26px; z-index: 500;
    background: var(--white); color: var(--black); font-size: .74rem; font-weight: 600;
    padding: 7px 12px; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.35);
    animation: pubHintIn .3s ease; pointer-events: none; font-family: inherit;
}
.pub-theme-hint::after {
    content: ""; position: absolute; right: -5px; top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 10px; height: 10px; background: var(--white);
}
@keyframes pubHintIn {
    from { opacity: 0; transform: translateX(8px); }
    to { opacity: 1; transform: translateX(0); }
}
@media (max-width: 600px) {
    .pub-theme-btn { right: 14px; bottom: 14px; }
    .pub-theme-hint { right: 84px; bottom: 18px; }
    body.fab-shown .pub-theme-btn { right: 16px; bottom: 72px; }
    body.fab-shown .pub-theme-btn ~ .pub-theme-hint { right: 86px; bottom: 78px; }
}

/* ── Уведомления (публичные страницы) ── */
.pub-bell-wrap { position: relative; display: inline-flex; }
.pub-bell {
    position: relative; background: none; border: 0; cursor: pointer;
    color: rgba(var(--fg), .35); font-size: .9rem; padding: 8px 10px;
    transition: color .15s; font-family: inherit;
}
.pub-bell:hover { color: rgba(var(--fg), .75); }
.pub-bell-dot {
    position: absolute; top: 6px; right: 7px; width: 7px; height: 7px;
    border-radius: 50%; background: #e05555; box-shadow: 0 0 0 2px var(--pub-bg);
}
.pub-bell-ring { color: rgba(var(--fg), .85); }
.pub-bell-ring i { transform-origin: 50% 0; animation: pubBellRing .85s cubic-bezier(.36,.07,.19,.97); }
@keyframes pubBellRing {
    0% { transform: rotate(0); }
    15% { transform: rotate(13deg); }
    30% { transform: rotate(-11deg); }
    45% { transform: rotate(8deg); }
    60% { transform: rotate(-6deg); }
    75% { transform: rotate(3deg); }
    100% { transform: rotate(0); }
}
.pub-bell-dot--pop { animation: pubDotPop .4s cubic-bezier(.22,1.2,.4,1); }
@keyframes pubDotPop { 0% { transform: scale(0); } 60% { transform: scale(1.5); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .pub-bell-ring i, .pub-bell-dot--pop { animation: none; } }
.pub-bell-panel {
    display: none; position: absolute; right: 0; top: calc(100% + 8px); z-index: 300;
    width: 360px; max-width: calc(100vw - 24px);
    background: var(--pub-bg-raised); border: 1px solid rgba(var(--fg), .1);
    border-radius: 14px; overflow: hidden;
    box-shadow: 0 18px 48px -14px rgba(0,0,0,.6);
}
.pub-bell-panel.open { display: block; animation: pubBellIn .16s ease both; }
@keyframes pubBellIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .pub-bell-panel.open { animation: none; } }
.pub-bell-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 13px 15px; border-bottom: 1px solid rgba(var(--fg), .06);
    font-size: .82rem; font-weight: 700; color: var(--white); text-transform: none; letter-spacing: 0;
}
.pub-bell-readall {
    display: inline-flex; align-items: center; gap: 6px;
    background: none; border: 0; color: rgba(var(--fg), .4); cursor: pointer;
    font-family: inherit; font-size: .72rem; font-weight: 600; padding: 5px 8px;
    border-radius: 7px; transition: color .15s, background .15s;
}
.pub-bell-readall:hover { color: var(--white); background: rgba(var(--fg), .06); }
.pub-bell-readall:focus-visible { outline: 2px solid rgba(var(--accent-rgb), .7); outline-offset: 2px; }
.pub-bell-list { max-height: 380px; overflow: auto; padding: 5px; }
.pub-bell-all {
    display: block; text-align: center; padding: 12px;
    border-top: 1px solid rgba(var(--fg), .06);
    font-size: .76rem; font-weight: 600; color: rgba(var(--fg), .55);
    transition: background .15s, color .15s;
}
.pub-bell-all:hover { background: rgba(var(--fg), .04); color: var(--white); }
.pub-bell-ico.red { background: rgba(217,96,96,.14); color: rgba(230,130,130,.9); }
.pub-bell-ico.blue { background: rgba(96,165,250,.14); color: rgba(130,180,250,.9); }
.pub-bell-ico.green { background: rgba(70,167,88,.14); color: rgba(110,200,130,.9); }
.pub-bell-ico.purple { background: rgba(150,120,230,.16); color: rgba(180,160,240,.9); }
.pub-bell-ico.orange { background: rgba(217,160,32,.14); color: rgba(230,180,80,.9); }
.pub-bell-empty {
    padding: 28px 16px; text-align: center; color: rgba(var(--fg), .2); font-size: .78rem;
}
.pub-bell-empty i { display: block; font-size: 1.1rem; margin-bottom: 8px; opacity: .5; }
.pub-bell-item {
    display: flex; gap: 11px; padding: 11px 12px; text-decoration: none;
    border-radius: 9px; transition: background .12s; position: relative;
}
.pub-bell-item:hover { background: rgba(var(--fg), .04); }
.pub-bell-item.unread { background: rgba(var(--accent-rgb), .06); }
.pub-bell-item.unread::after {
    content: ""; position: absolute; right: 11px; top: 14px;
    width: 6px; height: 6px; border-radius: 50%; background: rgba(var(--accent-rgb), .95);
}
.pub-bell-ico {
    width: 34px; height: 34px; flex-shrink: 0; display: flex;
    align-items: center; justify-content: center;
    background: rgba(var(--fg), .06); color: rgba(var(--fg), .45);
    font-size: .8rem; border-radius: 9px;
}
.pub-bell-body { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pub-bell-title { font-size: .78rem; font-weight: 700; color: rgba(var(--fg), .7); }
.pub-bell-msg {
    font-size: .72rem; color: rgba(var(--fg), .35); overflow: hidden;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.pub-bell-time { font-size: .64rem; color: rgba(var(--fg), .18); }

/* Единое сглаживание шрифтов на всех страницах */
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* Нативные select-списки: тёмный фон опций во всех темах (фикс белого выпадающего списка) */
select option, select optgroup { background-color: var(--pub-bg-input); color: var(--pub-text); }
html.pub-light select option, html.pub-light select optgroup { background-color: #ffffff; color: #22222a; }

/* ── Единый топбар публичных страниц (форум/тема/профиль/лента) ── */
.f-header{position:sticky;top:0;z-index:100;padding:10px 14px 6px;background:transparent;pointer-events:none;border-bottom:none}
.f-header-inner{max-width:1140px;height:auto;margin:0 auto;padding:8px 10px 8px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:auto;background:rgba(var(--bg-rgb),.78);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border:1px solid rgba(var(--fg),.07);border-radius:16px;box-shadow:0 8px 30px -14px rgba(0,0,0,.55)}
.f-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.f-logo img{height:28px;opacity:1}
.f-logo span{font-size:1rem;color:var(--white);font-weight:700;letter-spacing:-.02em;white-space:nowrap}
.f-logo em{font-style:normal;color:rgba(var(--fg),.38);font-weight:400}
.f-nav{display:flex;gap:2px;align-items:center;min-width:0}
.f-nav-link{display:flex;align-items:center;gap:7px;padding:9px 13px;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:rgba(var(--fg),.35);transition:color .2s,background .2s;text-decoration:none;border-radius:10px;white-space:nowrap}
.f-nav-link:hover{color:var(--white);background:rgba(var(--fg),.05)}
.f-nav-link.active{color:var(--white);background:rgba(var(--fg),.07)}
.f-nav-link i{font-size:.72rem}
@media(max-width:768px){
    .f-header{padding:8px 10px 4px}
    .f-header-inner{padding:7px 8px 7px 14px;border-radius:14px}
    .f-nav .f-nav-text{display:none}
    .f-nav-link{gap:0;padding:8px 10px}
    .f-nav-link i{font-size:.85rem}
}
@media(max-width:480px){
    .f-header-inner{gap:10px}
    .f-logo{min-width:0;flex-shrink:1}
    .f-logo img{height:24px}
    .f-logo span{font-size:.85rem;overflow:hidden;text-overflow:ellipsis}
    .f-nav{gap:2px;flex-shrink:0}
}
/* Кабинет (.acc-header): та же пилюля; header.acc-header перебивает локальные стили страниц */
header.acc-header{position:sticky;top:0;z-index:100;padding:10px 14px 6px;background:transparent;border-bottom:none;pointer-events:none;backdrop-filter:none}
header.acc-header .acc-header-inner{pointer-events:auto;max-width:1100px;margin:0 auto;height:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 12px 8px 18px;background:rgba(var(--bg-rgb),.78);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border:1px solid rgba(var(--fg),.07);border-radius:16px;box-shadow:0 8px 30px -14px rgba(0,0,0,.55)}
header.acc-header .acc-header-logo img{opacity:1;height:26px}
header.acc-header .acc-header-logo span{color:var(--white);font-size:1rem;font-weight:700;letter-spacing:-.02em}
header.acc-header .acc-header-logo em{font-style:normal;color:rgba(var(--fg),.38);font-weight:400}
header.acc-header .acc-header-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
header.acc-header .acc-header-nav{display:flex;gap:2px;align-items:center}
header.acc-header .acc-nav-link{display:flex;align-items:center;gap:7px;padding:9px 13px;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600;border-radius:10px;color:rgba(var(--fg),.35);text-decoration:none;transition:color .2s,background .2s;white-space:nowrap}
header.acc-header .acc-nav-link i{font-size:.72rem}
header.acc-header .acc-nav-link:hover{color:var(--white);background:rgba(var(--fg),.05)}
header.acc-header .acc-nav-link.active{color:var(--white);background:rgba(var(--fg),.07)}
header.acc-header .acc-header-user{display:flex;align-items:center;gap:10px}
header.acc-header .acc-header-username{font-size:.75rem;color:rgba(var(--fg),.4);font-weight:600;letter-spacing:.02em}
header.acc-header .acc-header-logout{color:rgba(var(--fg),.3);font-size:.9rem;padding:6px 8px;transition:color .15s}
header.acc-header .acc-header-logout:hover{color:rgba(235,120,130,.9)}
@media(max-width:768px){header.acc-header{padding:8px 10px 4px}header.acc-header .acc-header-inner{border-radius:14px}}

.f-crumb-back{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.f-content{animation:pubPageIn .4s cubic-bezier(.22,.61,.36,1) both}
@keyframes pubPageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.f-content{animation:none}}

/* ── Единый лоадер (три точки) ── */
.pub-loader{display:inline-flex;gap:6px;align-items:center;justify-content:center}
.pub-loader span{width:7px;height:7px;border-radius:50%;background:rgba(var(--fg),.35);animation:pubDotPulse 1.05s ease-in-out infinite}
.pub-loader span:nth-child(2){animation-delay:.15s}
.pub-loader span:nth-child(3){animation-delay:.3s}
@keyframes pubDotPulse{0%,100%{opacity:.25;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.pub-loader span{animation:none;opacity:.5}}

/* ── Скругления ── */
html[data-rounded="1"] :where(
    button, input, select, textarea,
    .f-section, .f-topic, .f-vote, .f-chip, .f-select, .f-search,
    .f-create-btn, .f-submit-btn, .f-modal, .f-attach-zone, .f-attach-prev img,
    .f-badge, .f-cat, .f-fmtbar button, .f-stat, .f-hero,
    .t-card, .t-vote, .t-act, .t-mod, .t-mod-btn, .t-mod-reply, .t-admin-reply,
    .t-gallery a img, .t-rich code,
    .c-item, .c-input, .c-send-btn, .c-attach-btn, .c-form, .c-login-note,
    .c-reply-quote, .c-attachments img, .c-staff,
    .rel-item,
    .p-hero, .p-card, .p-stat, .p-topic, .p-role, .p-ach, .p-ach-toggle, .p-follow,
    .feed-item, .feed-more,
    .mod-btn, .mod-input, .mod-tab, .mod-hist-item, .mod-banner, .mod-toast,
    .acc-hero, .acc-stat, .acc-btn, .acc-hero-link, .acc-flash, .acc-section,
    .ticket-item, .settings-section, .form-input,
    .apoll-card, .apoll-opt, .apoll-vote-btn, .apoll-text-input, .apoll-text-mine,
    .apoll-cat, .apoll-img img,
    .pub-theme-hint, .theme-pick, .pub-bell-panel,
    .f-pager button, .ide-pagination button,
    .hero-chip, .ide-card, .pol-card, .rmp-col, .rmp-card, .contact-card,
    .rv-card, .rv-team-summary, .fbk-input, .fbk-submit, .fab-btn
) {
    border-radius: 10px;
}

html[data-rounded="1"] :where(.p-role, .p-ach-count, .apoll-cat, .f-section__count, .rmp-pill) {
    border-radius: 6px;
}
/* Метки тем и бейдж команды - всегда пилюли (как метка игры) */
html[data-rounded="1"] :where(.f-badge, .c-staff, .c-op) {
    border-radius: 999px;
}

/* Скругление инжектируемых меню/уведомлений (специфичность бьёт runtime-стили) */
html[data-rounded="1"] :where(.fm-menu, .fm-report, .ui-toast, .ui-dlg) { border-radius: 12px; }
html[data-rounded="1"] :where(.fm-item, .fm-chip, .fm-btn, .fm-report textarea, .ui-dlg__icon, .ui-dlg__input, .ui-dlg__btn) { border-radius: 9px; }

/* Контекстное меню форума: плавное появление И исчезновение */
body .fm-menu {
    display: block !important;
    opacity: 0;
    visibility: hidden;
    transform: scale(.95) translateY(-6px);
    transform-origin: top left;
    transition: opacity .15s cubic-bezier(.22, .61, .36, 1), transform .19s cubic-bezier(.22, .61, .36, 1), visibility .19s;
    pointer-events: none;
}
body .fm-menu.open {
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
}
.fm-menu.open .fm-item {
    animation: fmItemIn .26s cubic-bezier(.22, .61, .36, 1) both;
}
.fm-menu.open .fm-item:nth-child(2) { animation-delay: .04s; }
.fm-menu.open .fm-item:nth-child(3) { animation-delay: .08s; }
.fm-menu.open .fm-item:nth-child(4) { animation-delay: .11s; }
.fm-menu.open .fm-item:nth-child(n+5) { animation-delay: .13s; }
@keyframes fmItemIn {
    from { opacity: 0; transform: translateX(-7px); }
    to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    body .fm-menu { transition: none; }
    .fm-menu.open .fm-item { animation: none; }
}

/* Модалка жалобы: плавное появление/исчезновение */
body .fm-report-overlay {
    display: flex !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s ease;
}
body .fm-report-overlay.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
body .fm-report {
    transform: scale(.96) translateY(10px);
    transition: transform .24s cubic-bezier(.22, .61, .36, 1);
}
body .fm-report-overlay.open .fm-report {
    transform: none;
}
@media (prefers-reduced-motion: reduce) {
    body .fm-report-overlay, body .fm-report { transition: none; }
}
@media (prefers-reduced-motion: reduce) {
    .fm-menu.open, .fm-menu .fm-item { animation: none; }
}

html[data-rounded="1"] :where(.f-attach-prev button, .f-author-initial, .rm-ava) {
    border-radius: 50%;
}

html[data-rounded="1"] :where(.f-topic-comments, .f-topic-nums span, .rmp-asg__chip) {
    border-radius: 20px;
}

/* Кнопки лендинга (ссылки, не button) */
html[data-rounded="1"] :where(
    .nav-cta, .nav-link-btn, .magnetic-btn,
    .ide-cta, .ide-btn, .ide-more-btn, .ide-share-btn, .ide-boost-btn, .ide-attach-btn,
    .support-auth-btn, .support-submit-btn, .hire-apply-btn,
    .fb-login-cta-btn, .fb-landing-all-btn, .fb-submit-btn, .fb-lc-thumb-btn,
    .success-account-btn, .success-close-btn, .success-discord-btn,
    .boss-details-btn, .profs-expand-btn, .submit-btn, .pol-vote-btn
) {
    border-radius: 10px;
}

/* ── Объявление на главном (общий баннер для всех публичных страниц) ── */
.landing-announcement {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1100;
    height: 40px;
    background: rgba(10, 10, 10, 0.72);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.82rem;
    line-height: 1.4;
    transform: translateY(0);
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s;
    will-change: transform;
}
.landing-announcement.is-hidden {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
}
.landing-announcement.is-entering {
    transform: translateY(-100%);
    opacity: 0;
}
.announcement-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 56px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    position: relative;
    text-align: center;
}
.announcement-text {
    font-weight: 500;
    letter-spacing: 0.01em;
    color: rgba(255, 255, 255, 0.78);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: calc(100% - 120px);
}
.announcement-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 9px;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
    padding-bottom: 1px;
    transition: border-color 0.15s, opacity 0.15s;
}
.announcement-link:hover { border-color: #fff; }
.announcement-arrow {
    font-size: 0.6rem;
    opacity: 0.65;
    transition: transform 0.15s, opacity 0.15s;
}
.announcement-link:hover .announcement-arrow { transform: translateX(2px); opacity: 1; }
.announcement-close {
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    transition: background 0.15s, color 0.15s;
}
.announcement-close:hover {
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.92);
}

/* На внутренних страницах (без героя лендинга) сдвигаем липкие шапки под баннер */
body.has-announcement.announcement-generic :where(.acc-header, .f-header, .p-nav, .p-header) { top: 40px; }
body.has-announcement.announcement-generic { scroll-padding-top: 96px; }
@media (max-width: 720px) {
    .landing-announcement { height: auto; min-height: 40px; }
    .announcement-inner { height: auto; min-height: 40px; padding: 8px 40px; font-size: 0.75rem; gap: 8px; flex-wrap: wrap; }
    .announcement-text { white-space: normal; max-width: none; text-align: center; overflow: visible; text-overflow: clip; }
    .announcement-link { margin-left: 0; }
    .announcement-close { right: 10px; }
}

a.le-card, .t-rich a.le-card, .fc-preview a.le-card {
    position: relative; display: flex; gap: 14px; align-items: flex-start;
    margin: 10px 0 4px; padding: 13px 16px 13px 19px;
    border: 1px solid rgba(var(--fg), .08); border-radius: 12px;
    background: rgba(var(--fg), .025); overflow: hidden;
    color: inherit; text-decoration: none;
    transition: border-color .15s, background .15s, transform .15s;
}
a.le-card::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
    background: rgba(var(--accent-rgb), .75);
}
a.le-card:hover, .t-rich a.le-card:hover {
    border-color: rgba(var(--fg), .18); background: rgba(var(--fg), .05);
    color: inherit; transform: translateY(-1px);
}
.le-card__body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.le-card__eyebrow { font-size: .62rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: rgba(var(--accent-rgb), .85); margin-bottom: 4px; }
.le-card__title { font-size: .95rem; font-weight: 700; color: var(--white); line-height: 1.35; letter-spacing: -.005em; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
a.le-card:hover .le-card__title { color: rgba(var(--accent-rgb), 1); }
.le-card__desc { margin-top: 4px; font-size: .8rem; color: rgba(var(--fg), .45); line-height: 1.55; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.le-card__meta { display: flex; gap: 14px; margin-top: 9px; font-size: .72rem; font-weight: 600; color: rgba(var(--fg), .38); align-items: center; flex-wrap: wrap; font-variant-numeric: tabular-nums; }
.le-card__meta > span { display: inline-flex; align-items: center; gap: 5px; }
.le-card__meta i { font-size: .62rem; opacity: .7; }
.le-card__thumb { width: 64px; height: 64px; border-radius: 10px; object-fit: cover; flex-shrink: 0; background: rgba(var(--fg), .05); border: 1px solid rgba(var(--fg), .06); }
.le-card--profile .le-card__thumb, .le-card--discord .le-card__thumb { border-radius: 50%; width: 52px; height: 52px; }
.le-card__eyebrow i, .le-card__eyebrow svg { margin-right: 6px; font-size: .72rem; width: 11px; height: 11px; vertical-align: -1px; }
a.le-card--b-discord::before { background: #5865F2; }
.le-card--b-discord .le-card__eyebrow { color: #7d87f0; }
a.le-card--b-discord:hover .le-card__title { color: #8d96f2; }
a.le-card--b-roblox::before, a.le-card--b-github::before { background: rgba(var(--fg), .5); }
.le-card--b-roblox .le-card__eyebrow, .le-card--b-github .le-card__eyebrow { color: rgba(var(--fg), .55); }
a.le-card--b-roblox:hover .le-card__title, a.le-card--b-github:hover .le-card__title { color: var(--white); }
.le-card--b-roblox .le-card__thumb { border-radius: 10px; }
.le-card--b-roblox.le-card--profile .le-card__thumb { border-radius: 50%; }
.le-card__thumb--ph { display: inline-flex; align-items: center; justify-content: center; font-size: 1.35rem; color: rgba(var(--fg), .3); }
.le-card__thumb--ph svg { width: 24px; height: 24px; }
.le-card--b-discord .le-card__thumb--ph { color: #5865F2; }
@media (max-width: 520px) {
    a.le-card { gap: 11px; padding: 11px 12px 11px 15px; }
    .le-card__thumb { width: 52px; height: 52px; }
}
@media (prefers-reduced-motion: reduce) {
    a.le-card, a.le-card:hover { transform: none; }
}
