/* Public visual system. Landing styles are scoped to .expedition. */
:root { --text-secondary:#b7b5ac; --text-muted:#96958e; }
.header { background:rgba(13,16,15,.97); border-bottom:1px solid rgba(255,255,255,.1); }
.header .header-inner { width:min(1280px,calc(100% - 64px)); max-width:1280px; margin:auto; padding:0; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:24px; }
.header .header-logo { flex:0 0 auto; }
.header .header-logo img { width:48px; height:48px; object-fit:contain; }
.header .header-right { display:flex; align-items:center; justify-content:flex-end; width:auto; gap:10px; flex:0 0 auto; position:static; }
.header .main-nav-list { gap:22px; }
.header .main-nav-list a { font-size:13px; font-weight:500; letter-spacing:0; }
.header .btn { border-radius:4px; }
.footer { background:#0c100e; border-top:1px solid #29302b; }
.footer .footer-slogan { color:#aeb2a9; max-width:32ch; }
.footer .footer-bottom { color:#91998f; }
.expedition { --exp-bg:#111612; --exp-card:#19201a; --exp-line:#333c32; --exp-accent:#eac36b; --exp-text:#f3f0e7; --exp-muted:#adb4a8; background:var(--exp-bg); color:var(--exp-text); font-family:var(--font-sans); line-height:1.65; overflow:clip; }
body.is-home { background:#111612; }
body.is-home::before { display:none; }
.exp-wrap { width:min(1220px,calc(100% - 80px)); margin-inline:auto; }
.expedition h1,.expedition h2,.expedition h3,.expedition p { margin-top:0; }
.expedition a { text-decoration:none; }
.expedition svg { flex-shrink:0; }
.expedition :is(a,button,summary):focus-visible { outline:2px solid var(--exp-accent); outline-offset:5px; }
.exp-hero { min-height:690px; position:relative; isolation:isolate; display:flex; align-items:center; background:#171d18; }
.exp-hero::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(12,18,14,.93),rgba(12,18,14,.72) 36%,rgba(12,18,14,.12) 75%),linear-gradient(0deg,#111612 0%,transparent 45%); }
.exp-hero-art { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; object-position:center; z-index:-2; }
.exp-hero-content { padding-block:90px 85px; }
.exp-kicker { font-size:11px; font-weight:700; letter-spacing:.17em; line-height:1.5; color:var(--exp-accent); margin-bottom:20px; text-transform:uppercase; }
.exp-hero .exp-kicker { display:flex; align-items:center; gap:10px; }
.exp-hero .exp-kicker span { width:6px; height:6px; background:var(--exp-accent); }
.exp-hero h1 { font-size:clamp(42px,5.2vw,76px); line-height:1.06; letter-spacing:-.055em; font-weight:800; max-width:740px; margin-bottom:26px; text-wrap:balance; white-space:pre-line; }
.exp-hero-description { max-width:530px; color:#d0d4c9; font-size:17px; line-height:1.8; margin-bottom:32px; }
.exp-hero-description p { margin:0; }
.exp-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.exp-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:14px 22px; min-height:50px; font:600 14px/1.35 var(--font-sans); border:1px solid transparent; border-radius:3px; transition:background .18s,border-color .18s; }
.exp-button-primary { color:#191c14; background:var(--exp-accent); border-color:var(--exp-accent); }
.exp-button-primary:hover { color:#111; background:#ffdb86; }
.exp-button-secondary { color:var(--exp-text); border-color:#68705e; background:rgba(18,25,19,.4); }
.exp-button-secondary:hover { color:#fff; border-color:var(--exp-accent); background:#283023; }
.exp-hero-facts { display:flex; gap:34px; margin-top:56px; }
.exp-hero-facts span { display:flex; flex-direction:column; color:#b9c0b3; font-size:11px; letter-spacing:.01em; }
.exp-hero-facts strong { font-size:23px; line-height:1.4; font-weight:650; color:var(--exp-text); }
.exp-hero-facts span + span { border-left:1px solid #555d4b; padding-left:34px; }
.exp-hero-caption { position:absolute; bottom:32px; right:40px; font-size:9px; letter-spacing:.2em; color:#c3c7b9; }
.exp-subnav { border-block:1px solid var(--exp-line); background:#141b15; }
.exp-subnav .exp-wrap { display:flex; align-items:center; gap:36px; }
.exp-subnav a { display:inline-flex; align-items:center; gap:8px; padding:19px 0; color:#c9d0c1; white-space:nowrap; font-size:12px; }
.exp-subnav a:hover { color:var(--exp-accent); }
.exp-subnav a:last-child { margin-left:auto; }
.exp-section { padding:86px 0; scroll-margin-top:86px; }
.exp-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:36px; }
.exp-section-heading .exp-kicker { margin-bottom:12px; }
.expedition h2 { font-size:clamp(28px,3.1vw,43px); font-weight:650; line-height:1.18; letter-spacing:-.035em; margin-bottom:0; }
.exp-section-heading > p { color:var(--exp-muted); font-size:13px; margin:0; flex-shrink:0; }
.exp-server-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.exp-server { background:linear-gradient(145deg,#20281e,#171e18 60%); border:1px solid var(--exp-line); border-radius:5px; padding:26px; display:flex; flex-direction:column; min-width:0; }
.exp-server-top { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:30px; }
.exp-status { display:inline-flex; align-items:center; gap:6px; font-size:10px; color:#b8beb2; }
.exp-status::before { content:''; width:5px; height:5px; border-radius:50%; background:#9ea993; }
.exp-status.is-online { color:#a6d992; }
.exp-status.is-online::before { background:#a6d992; }
.exp-status.is-offline { color:#d2aaa0; }
.exp-status.is-offline::before { background:#d2aaa0; }
.exp-server h3 { font-size:23px; line-height:1.25; letter-spacing:-.025em; margin-bottom:8px; overflow-wrap:anywhere; }
.exp-server-map { font-size:12px; color:var(--exp-accent); margin-bottom:22px; }
.exp-server-description { color:var(--exp-muted); font-size:13px; margin-bottom:28px; flex:1; }
.exp-server-population { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:11px; color:var(--exp-muted); }
.exp-server-population strong { color:var(--exp-text); font:500 13px/1.5 var(--font-sans); font-variant-numeric:tabular-nums; }
.exp-server meter { appearance:none; width:100%; height:4px; margin:10px 0 22px; background:#323d2d; border:0; }
.exp-server meter::-webkit-meter-bar { background:#323d2d; border:0; border-radius:0; height:4px; }
.exp-server meter::-webkit-meter-optimum-value { background:#becd85; }
.exp-server meter::-moz-meter-bar { background:#becd85; }
.exp-server-address { border-top:1px solid var(--exp-line); padding-top:16px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-bottom:18px; }
.exp-server-address code { color:#d5dbcb; font-size:11px; background:none; padding:0; overflow-wrap:anywhere; }
.exp-copy { display:flex; align-items:center; gap:6px; background:none; border:0; padding:6px 0; color:var(--exp-accent); cursor:pointer; font:500 10px var(--font-sans); min-height:32px; }
.exp-server > .exp-button { width:100%; min-height:44px; font-size:12px; border-color:#424e3d; }
.exp-note { font-size:11px; color:#a4ad9b; margin:18px 0 0; }
.exp-start { background:#1a211a; border-block:1px solid var(--exp-line); }
.exp-steps { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.exp-steps li { padding:28px 30px 24px 0; position:relative; display:flex; flex-direction:column; align-items:flex-start; }
.exp-steps li + li { padding-left:30px; border-left:1px solid #3a4335; }
.exp-steps li > svg { color:var(--exp-accent); margin-bottom:24px; }
.exp-steps h3 { font-size:19px; margin-bottom:12px; letter-spacing:-.02em; }
.exp-steps p { font-size:13px; color:#b7bfaf; max-width:33ch; flex:1; }
.exp-steps a,.exp-help a,.exp-text-link { display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:600; color:var(--exp-accent); }
.exp-steps a:hover,.exp-text-link:hover,.exp-help a:hover { color:#ffdfa0; }
.exp-help { border-top:1px solid #3a4335; margin-top:24px; padding-top:24px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.exp-help > div { display:flex; align-items:center; gap:14px; font-size:12px; color:#b7bfaf; }
.exp-help strong { color:var(--exp-text); font-weight:500; }
.exp-content-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.exp-content-card { padding:30px; border:1px solid var(--exp-line); background:#181f19; border-radius:5px; min-width:0; display:flex; flex-direction:column; }
.exp-content-card .exp-kicker { font-size:10px; margin-bottom:14px; }
.exp-content-card h3 { font-size:24px; letter-spacing:-.02em; line-height:1.3; margin-bottom:12px; }
.exp-card-intro,.exp-content-body { color:var(--exp-muted); font-size:14px; }
.exp-content-body { flex:1; }
.exp-content-card > .exp-text-link { margin-top:24px; padding-top:18px; border-top:1px solid var(--exp-line); }
.exp-content-about { background:#252d21; }
.exp-content-body .pg-row { border-color:var(--exp-line); padding:14px 0; }
.exp-content-body .pg-row a { color:#f0eee4; font-size:14px; }
.exp-content-body .pg-row-meta { color:#a7b19f; font-size:10px; }
.exp-content-body .pg-row-top { display:flex; flex-wrap:wrap; gap:8px 16px; cursor:auto; }
.exp-content-body .pg-expandable { display:block; }
.exp-content-body .pg-expand-body { visibility:visible; opacity:1; overflow:visible; }
.exp-content-body .pg-expand-text { color:#b4bfaa; font-size:12px; margin:6px 0 0; }
.exp-content-body .pg-expand-actions { display:none; }
.exp-content-body .pg-empty { color:var(--exp-muted); font-size:13px; padding:18px 0; }
.exp-destinations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:36px; }
.exp-destinations > a { position:relative; border-top:1px solid #4a5542; padding:24px 30px 0 0; color:var(--exp-text); }
.exp-destinations > a > span { font-size:9px; letter-spacing:.16em; color:var(--exp-accent); }
.exp-destinations h3 { font-size:18px; margin:10px 0; }
.exp-destinations p { color:var(--exp-muted); font-size:12px; margin:0; }
.exp-destinations svg { position:absolute; right:0; top:24px; color:var(--exp-accent); }
.exp-faq { background:#151c16; border-top:1px solid var(--exp-line); }
.exp-faq-layout { display:grid; grid-template-columns:1fr 1.5fr; gap:80px; }
.exp-faq-layout > div > p:not(.exp-kicker) { color:var(--exp-muted); margin-top:22px; font-size:13px; }
.exp-faq-list details { border-bottom:1px solid var(--exp-line); }
.exp-faq-list details:first-child { border-top:1px solid var(--exp-line); }
.exp-faq-list summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:20px; padding:22px 0; font-size:14px; font-weight:500; }
.exp-faq-list summary::-webkit-details-marker { display:none; }
.exp-faq-list summary span { color:var(--exp-accent); font-size:22px; line-height:1; transition:transform .15s; }
.exp-faq-list details[open] summary span { transform:rotate(45deg); }
.exp-faq-list details > div { color:#b9c2b1; font-size:13px; padding-bottom:24px; }
.exp-faq-list a { color:var(--exp-accent); text-decoration:underline; }
.exp-join { background:radial-gradient(ellipse at 80% 100%,#35452a,transparent 70%),#222c20; border-top:1px solid #3b4834; }
.exp-join-inner { display:flex; justify-content:space-between; align-items:center; gap:40px; }
.exp-join h2 { max-width:650px; }
.exp-join p:not(.exp-kicker) { color:#bac5b0; font-size:13px; margin:20px 0 0; }
.exp-join .exp-actions { flex-shrink:0; max-width:420px; }
/* Кнопка «В сообщество» — отдельной строкой, кнопки сообществ начинаются под ней.
   Раскладка задана явно (колонка + строки), а не переносом flex: иначе Discord
   вставал рядом с жёлтой кнопкой, а остальные уезжали на вторую строку. */
.exp-actions-stacked { flex-direction:column; flex-wrap:nowrap; align-items:flex-start; }
.exp-actions-stacked .exp-actions-row { display:flex; flex-wrap:wrap; gap:12px; }
.exp-promo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:20px; }
.exp-empty { padding:30px; border:1px solid var(--exp-line); color:var(--exp-muted); }
.exp-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media (min-width:1101px) { .header .main-nav { display:block; } }
@media (max-width:1100px) {
    .header .header-inner { width:calc(100% - 40px); }
    .header .main-nav { display:none; }
    .header .nav-burger { display:inline-flex; }
    .exp-wrap { width:calc(100% - 48px); }
    .exp-server { padding:20px; }
    .exp-section-heading > p { max-width:240px; }
    .exp-faq-layout { gap:40px; }
    .exp-join-inner { align-items:flex-start; flex-direction:column; }
    .exp-hero-caption { display:none; }
}
/* Пунктов в меню стало восемь («Правила», «Дни рождения»), и инлайн-меню
   перестало помещаться в одну строку: .main-nav-list объявлен с flex-wrap:wrap,
   поэтому список уходил на вторую строку внутри шапки фиксированной высоты
   (измерено в Chrome с админ-сессией: строка меню требует 904px, а места в
   контейнере 1200px ровно 904px — запаса не было, и уже на 1229px список рвался;
   у гостя пунктов меньше, поэтому переноса не было).
   Что сделано: контейнер шапки перестал упираться в 1200px (теперь 1280px),
   пункты стали плотнее (gap 22→16px, отступы 14→12px) — у меню появился запас,
   а перенос запрещён совсем: даже если в админке добавят ещё пункты, список
   останется одной строкой (при нехватке места прокручивается).
   Ниже 1200px меню отдаётся бургеру (мобильное меню), как и было для ≤1100px. */
@media (min-width:1101px) and (max-width:1259px) {
    .header .main-nav { display:none; }
    .header .nav-burger { display:inline-flex; }
}
@media (min-width:1260px) {
    .header .main-nav { display:block; min-width:0; overflow-x:auto; scrollbar-width:none; }
    .header .main-nav::-webkit-scrollbar { display:none; }
    /* nowrap у списка переноса не даёт, но без запрета сжатия пункты сжимались
       и подписи переносились ВНУТРИ пункта (проверено на проде: на 1200px строк
       было две, подписи в две строки). Поэтому пункты не сжимаем. */
    .header .main-nav-list { flex-wrap:nowrap; gap:16px; }
    .header .main-nav-list li { flex:0 0 auto; }
    .header .main-nav-list a { padding-inline:12px; white-space:nowrap; }
}
@media (max-width:760px) {
    .exp-hero { min-height:640px; }
    .exp-hero-art { object-position:64% center; }
    .exp-hero::after { background:linear-gradient(90deg,rgba(12,18,14,.85),rgba(12,18,14,.35)),linear-gradient(0deg,#111612,transparent); }
    .exp-hero-content { padding-block:70px 48px; }
    .exp-hero h1 { font-size:clamp(38px,7vw,54px); max-width:590px; }
    .exp-hero-description { font-size:15px; max-width:46ch; }
    .exp-section { padding:56px 0; }
    .exp-section-heading { display:block; margin-bottom:28px; }
    .exp-section-heading > p { margin-top:18px; max-width:none; }
    .exp-section-heading > p br { display:none; }
    .exp-server-grid,.exp-content-grid,.exp-faq-layout { grid-template-columns:1fr; }
    .exp-server { padding:24px; }
    .exp-server-top { margin-bottom:20px; }
    .exp-server-description { margin-bottom:22px; }
    .exp-subnav .exp-wrap { gap:25px; overflow-x:auto; }
    .exp-subnav a { padding:17px 0; }
    .exp-steps { grid-template-columns:1fr; }
    .exp-steps li,.exp-steps li + li { padding:28px 60px 28px 0; border-left:0; border-bottom:1px solid #3a4335; }
    .exp-steps p { max-width:none; }
    .exp-steps li > svg { margin-bottom:18px; }
    .exp-help { margin-top:0; border:0; flex-direction:column; align-items:flex-start; }
    .exp-help > div { align-items:flex-start; }
    .exp-help strong { display:block; }
    .exp-content-card { padding:24px; }
    .exp-destinations { grid-template-columns:1fr; gap:24px; }
    .exp-faq-layout { gap:30px; }
}
@media (max-width:480px) {
    .header .header-inner,html.js-anim .header .header-inner { width:calc(100% - 32px); height:64px; gap:12px; flex-wrap:nowrap; }
    .header .header-logo img { width:40px; height:40px; }
    .header .header-right { gap:8px; margin:0; transform:none; }
    .header .header-right .btn-register { display:none; }
    .header .header-right > .btn-outline { display:inline-flex; font-size:12px; padding:9px 14px; }
    .exp-wrap { width:calc(100% - 36px); }
    .exp-hero { min-height:650px; }
    .exp-hero-content { padding-block:62px 44px; }
    .exp-hero h1 { font-size:43px; line-height:1.08; letter-spacing:-.045em; }
    .exp-kicker { font-size:9px; }
    .exp-actions { align-items:stretch; }
    .exp-hero .exp-actions { flex-direction:column; }
    .exp-hero-facts { gap:18px; margin-top:36px; }
    .exp-hero-facts span { font-size:9px; }
    .exp-hero-facts span + span { padding-left:18px; }
    .exp-hero-facts strong { font-size:21px; }
    .exp-subnav .exp-wrap { gap:22px; }
    .exp-subnav a { font-size:11px; }
    .exp-join .exp-actions { max-width:none; width:100%; }
    .exp-join .exp-button-primary { width:100%; }
}
@media (prefers-reduced-motion:reduce) { .expedition *, .expedition *::before,.expedition *::after { scroll-behavior:auto; transition:none; animation:none; } }
html.js-anim .header .header-logo { margin-right:0; }
html.js-anim .header .header-inner .header-logo img { max-height:48px; }
html.js-anim .header .header-right a[href="/login"] { display:inline-flex; }
/* Shared rhythm for the public catalogue, news and reference pages. */
body:not(.is-home) .page-content { padding-top:56px; padding-bottom:64px; }
.page-content > h1,.page-content .shop-heading h1,.page-content .pg-page-head h1 { letter-spacing:-.035em; font-size:clamp(30px,4vw,48px); line-height:1.15; margin-bottom:18px; }
.public-page-intro { max-width:720px; color:#b7bfb0; font-size:15px; line-height:1.8; margin-bottom:32px; }
.page-content :is(.news-card,.kb-card,.bazaar-card,.shop-card) { border-radius:5px; border-color:#343c31; background:#191f19; }
.page-content .pg-eyebrow { color:#eac36b; font-size:10px; letter-spacing:.16em; }
.page-content :is(.btn,.form-control,.shop-categories a) { border-radius:4px; }
@media (max-width:760px) { body:not(.is-home) .page-content { padding-top:34px; } .public-page-intro { font-size:14px; } }
/* One palette and type scale across every public route. */
:root {
    --bg-primary:#111612; --bg-secondary:#151c16; --bg-card:#19201a; --bg-elevated:#242d21; --bg-inset:#101610;
    --border-subtle:#30392d; --border-default:#3b4635; --border-accent:#756844;
    --text-primary:#f3f0e7; --text-secondary:#b7bfb0; --text-muted:#a0ac97;
    --accent:#eac36b; --accent-hover:#ffdb86; --accent-glow:rgba(234,195,107,.12); --accent-dim:rgba(234,195,107,.07);
    --pg-ink:#111612; --pg-ink-2:#151c16; --pg-surface:#19201a; --pg-surface-2:#242d21;
    --pg-line:#414d38; --pg-line-soft:#30392d; --pg-gold:#eac36b; --pg-gold-light:#ffdb86; --pg-gold-deep:#b49550;
    --pg-text:#f3f0e7; --pg-text-dim:#b7bfb0; --pg-text-mute:#a0ac97;
    --pg-radius:5px; --pg-radius-s:4px; --radius-sm:4px; --radius-md:5px; --radius-lg:6px; --radius-xl:8px;
    --auth-accent:#eac36b; --auth-accent-hover:#ffdb86;
    --card-bg:#19201a; --border:#30392d; --text:#f3f0e7; --link:#eac36b;
    --pg-font:var(--font-sans);
}
body.has-background { background-image:none !important; background-color:var(--bg-primary); }
body.has-background::before { display:none; }
body { color:var(--text-primary); }
.container.page-content { width:min(1220px,calc(100% - 80px)); max-width:1220px; padding-inline:0; min-height:60vh; }
.page-content h1 { font-size:clamp(30px,4vw,48px); line-height:1.15; letter-spacing:-.035em; font-weight:700; }
.page-content h2 { letter-spacing:-.025em; line-height:1.3; }
.page-content :is(.pg-pane,.pg-view,.pg-stat,.pg-comment,.pg-comment-form,.shop-product,.shop-notice,.pg-empty-state) { background:var(--bg-card); border:1px solid var(--border-subtle); border-radius:5px; box-shadow:none; }
.page-content :is(.pg-pane,.pg-view) { padding:28px; }
.page-content :is(.page-head,.pg-page-head) { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px; margin-bottom:24px; }
.page-content :is(.page-head,.pg-page-head) h1 { margin:0; }
.page-content .pg-stats { gap:16px; }
.page-content .pg-stat { text-align:left; padding:24px; border-top:2px solid #657451; }
.page-content .pg-stat-num { font-size:34px; font-weight:600; }
.page-content .pg-stat-label { font-size:10px; letter-spacing:.08em; color:var(--text-secondary); }
.page-content .pg-pane > h2 { font-size:21px; margin-bottom:20px; }
.page-content :is(.pg-note,.pg-muted,.meta,.pg-table-key) { color:var(--text-secondary); }
.page-content .pg-table { width:100%; border-collapse:collapse; font-size:13px; }
.page-content .pg-table :is(td,th) { padding:14px 16px; border-bottom:1px solid var(--border-subtle); text-align:left; overflow-wrap:anywhere; }
.page-content .pg-table th { color:var(--text-muted); font-size:10px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; background:#141b15; }
.page-content .pg-table tr:last-child td { border-bottom:0; }
.page-content .pg-ticket-message { border-bottom:1px solid var(--border-subtle); padding:20px 0; overflow-wrap:anywhere; }
.page-content .pg-ticket-message:first-child { padding-top:0; }
.page-content .pg-ticket-message:last-child { border-bottom:0; }
.page-content .pg-actions { gap:12px; }
.form-control,.page-content input[type="search"],.page-content select { background:#101710; border:1px solid #424e3c; color:var(--text-primary); min-height:46px; border-radius:4px; box-shadow:none; }
.form-control:focus,.page-content input[type="search"]:focus,.page-content select:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(234,195,107,.12); }
.form-control::placeholder { color:#8f9c86; opacity:1; }
.form-group label { font-size:12px; color:#d5dccd; margin-bottom:8px; }
.form-group { margin-bottom:22px; }
.btn,.pg-btn { border-radius:4px; box-shadow:none; font-size:13px; font-weight:600; min-height:42px; }
.btn:hover,.pg-btn:hover { box-shadow:none; transform:none; }
.btn-outline,.btn-secondary,.pg-btn-ghost { color:var(--text-primary); background:transparent; border:1px solid #59644d; }
.btn-outline:hover,.btn-secondary:hover,.pg-btn-ghost:hover { background:#283222; color:var(--accent); border-color:var(--accent); }
.btn-danger { background:#843c35; color:#fff3ed; border:1px solid #ba6659; }
.btn-danger:hover { background:#a64940; color:#fff; }
:is(a,button,input,textarea,select,summary):focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.pg-filter,.shop-search { padding:18px; background:#19201a; border:1px solid #30392d; border-radius:5px; }
.shop-servers a,.shop-categories a,.shop-cat-grid a,.pg-catpills a { border-radius:4px; }
.page-content :is(.news-card,.kb-card,.bazaar-card,.shop-card):hover { transform:none; border-color:#69784f; }
.page-content .news-card h2 { font-size:clamp(21px,2.1vw,28px); }
.news-body,.kb-body { color:#c9d1c2; line-height:1.8; }
.news-body img,.kb-body img { border-radius:4px; }
.page-content .news-toggle-hint { min-height:40px; }
.player-nav { border-bottom:1px solid var(--border-subtle); background:#1a221a; }
.player-nav-inner { width:min(1220px,calc(100% - 80px)); margin:auto; display:flex; gap:24px; overflow-x:auto; }
.player-nav a { flex-shrink:0; padding:17px 0; font-size:12px; color:var(--text-secondary); text-decoration:none; border-bottom:2px solid transparent; }
.player-nav a[aria-current="page"],.player-nav a:hover { color:var(--accent); border-bottom-color:var(--accent); }
.forum-section,.forum-topic-row,.forum-post,.forum-notification,.forum-chat-messages { border-radius:5px; background:var(--bg-card); border-color:var(--border-subtle); padding:22px 24px; }
.forum-section-title { color:var(--text-primary); font-size:19px; font-weight:600; }
.forum-section-desc { color:var(--text-secondary); font-size:13px; max-width:70ch; }
.forum-section-stats { display:flex; flex-direction:column; padding-left:24px; color:var(--text-muted); font-size:11px; }
.forum-topic-title { color:var(--text-primary); font-size:16px; }
.forum-topic-title:hover { color:var(--accent); }
.forum-topic-meta,.forum-topic-stats,.forum-topic-last,.forum-post-date,.forum-post-edited,.forum-topic-meta-line,.forum-notification-type,.forum-notification-actor,.forum-notification-date,.forum-chat-hint,.forum-chat-time,.forum-chat-counter,.forum-char-counter { color:var(--text-muted); }
.forum-post-head { border-bottom:1px solid var(--border-subtle); padding-bottom:14px; margin-bottom:18px; }
.forum-post-body { color:#d0d8c9; line-height:1.8; }
.forum-post-body pre.forum-code,.forum-post-body code:not(pre code) { background:#111810; border-color:#39442f; }
.forum-post-body blockquote { background:#242e20; border-color:var(--accent); color:#c7d0be; }
.forum-chat-message { border-color:var(--border-subtle); padding:12px 0; }
.pg-badge { border-radius:3px; background:#35402e; color:#d4dfc8; font-size:10px; padding:4px 8px; }
.pg-badge--warning { color:#ebcd82; background:#403820; }
.pg-badge--info { color:#a4cce4; background:#253a40; }
.pg-badge--success { color:#b4daa2; background:#2c4024; }
.pg-badge--danger { color:#f0b2a5; background:#452d26; }
.calendar-day { background:#19201a; border-color:#36412e; border-radius:4px; box-shadow:none; }
.calendar-day:hover { background:#252e20; box-shadow:none; }
.calendar-day.is-today,.calendar-day.today { border-color:var(--accent); }
.pgcal-server,.pgcal-nav,.pgcal-progress,.pgcal-note,.pgcal-paused { border-radius:5px; }
.pgcal-server-seg { border-radius:3px; }
.pgcal-cellclaim { opacity:1; visibility:visible; max-height:60px; }
/* Authentication uses the same header, footer, artwork and control language. */
.auth-page.welcome-page { min-height:calc(100vh - 72px); display:grid; grid-template-columns:1fr 1fr; align-items:stretch; width:100%; padding:0; background:#111612; position:relative; }
.auth-page::before,.auth-page::after { display:none; }
.auth-story { background:linear-gradient(0deg,rgba(11,19,12,.92),rgba(11,19,12,.1)),url('/assets/img/survival-hero.webp') 68% center/cover; padding:54px; display:flex; flex-direction:column; justify-content:space-between; gap:72px; min-height:720px; }
.auth-story h2 { font-size:clamp(40px,4.8vw,68px); letter-spacing:-.045em; line-height:1.08; color:#f3f0e7; margin:0 0 24px; }
.auth-story p { color:#c0ccb5; font-size:15px; line-height:1.8; }
.auth-brand { font-size:24px; font-weight:800; letter-spacing:.1em; color:#f3f0e7; text-decoration:none; }
.auth-brand span { display:block; font-size:9px; letter-spacing:.2em; color:#d4c393; margin-top:6px; }
.auth-home { color:#dbd8c7; font-size:12px; text-decoration:none; }
.auth-page .welcome-content { width:100%; max-width:none; padding:52px 40px; margin:0; align-self:center; }
.auth-page .welcome-box { width:100%; max-width:480px; padding:0; margin:auto; border:0; border-radius:0; background:transparent; box-shadow:none; text-align:left; backdrop-filter:none; }
.auth-page .welcome-box h1 { font-size:clamp(30px,3vw,42px); line-height:1.15; letter-spacing:-.035em; color:#f3f0e7; margin-bottom:14px; }
.auth-page .welcome-box .subtitle { font-size:14px; color:#b7bfb0; line-height:1.7; margin-bottom:30px; }
.auth-page .pgauth-btn { border-radius:4px; justify-content:flex-start; box-shadow:none; }
.auth-page .pgauth-btn.is-primary { background:#222d1e; color:#f3f0e7; border-color:#4b5b3c; }
.auth-page .pgauth-btn.is-hairline,.auth-page .pgauth-btn.is-secondary { color:#d5ddcd; border-color:#414e37; }
.auth-page .pgauth-btn.is-disabled { opacity:.55; cursor:not-allowed; }
.auth-page .pgauth-providers { gap:10px; }
.auth-page .pgauth-more { border-bottom:0; margin-top:24px; }
.auth-page .pgauth-more > summary { font-size:13px; padding-block:18px; color:#eac36b; }
.auth-page .pgauth-more-body { padding-top:12px; }
.auth-page .pgauth-privacy { background:#19201a; color:#aab79e; border-color:#35402e; }
.auth-page .auth-submit { width:100%; min-height:48px; }
.auth-page-compact.welcome-page { grid-template-columns:1fr; background:radial-gradient(ellipse at top,#2d3a24,transparent 60%),#111612; padding:48px 20px; }
.auth-page-compact .welcome-box { padding:36px; background:#19201a; border:1px solid #3a4732; border-radius:5px; }
@media (max-width:1000px) {
    .auth-story { padding:36px; }
    .auth-page .welcome-content { padding:40px 28px; }
    .container.page-content,.player-nav-inner { width:calc(100% - 48px); }
}
@media (max-width:760px) {
    .auth-page.welcome-page { grid-template-columns:1fr; }
    .auth-story { min-height:240px; padding:28px; gap:26px; background-position:70% 40%; }
    .auth-story h2 { font-size:34px; margin-bottom:12px; }
    .auth-story .exp-kicker,.auth-story .auth-home,.auth-story > div > p:last-child { display:none; }
    .auth-brand { font-size:18px; }
    .auth-page .welcome-content { padding:34px 24px; }
    .forum-section,.forum-topic-row,.forum-notification { align-items:flex-start; gap:12px; flex-direction:column; }
    .forum-section-stats { flex-direction:row; padding:0; gap:18px; }
    .forum-topic-stats { text-align:left; }
    .forum-post-head { flex-wrap:wrap; }
    .forum-chat-form { flex-direction:column; }
    .page-content :is(.pg-pane,.pg-view,.forum-section,.forum-post,.forum-chat-messages) { padding:20px; }
    .page-content .pg-table { display:block; overflow-x:auto; max-width:100%; }
    .page-content .pg-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .page-content .pg-stat { padding:18px; }
    .page-content .pg-stat-num { font-size:27px; }
    .page-content .pg-stat-label { font-size:9px; letter-spacing:.03em; }
    .page-content .pg-actions { display:flex; flex-wrap:wrap; }
    .player-nav-inner { gap:22px; }
}
@media (max-width:480px) {
    .container.page-content,.player-nav-inner { width:calc(100% - 36px); }
    .page-content :is(.page-head,.pg-page-head) { align-items:flex-start; flex-direction:column; }
    .auth-page .welcome-content { padding-inline:18px; }
    .auth-page-compact .welcome-box { padding:24px; }
    .page-content .pg-price-big { white-space:normal; overflow-wrap:anywhere; }
}
/* Motion connects state and interaction without hiding information. */
.motion-card { transition:transform 240ms cubic-bezier(.22,1,.36,1),border-color 240ms ease,box-shadow 240ms ease,background-color 240ms ease; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
    .expedition .motion-card:hover,.page-content .motion-card:hover { transform:translateY(-4px); border-color:#8c9565; box-shadow:0 14px 28px rgba(0,0,0,.2); background-image:radial-gradient(380px circle at var(--glow-x,50%) var(--glow-y,0%),rgba(234,195,107,.09),transparent 75%); }
    .expedition .exp-steps li:hover,.expedition .exp-destinations > a:hover { box-shadow:none; }
    .exp-button,.btn,.pg-btn { transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease; }
    .exp-button:hover,.btn:hover,.pg-btn:hover { transform:translateY(-2px); }
    .exp-button:active,.btn:active,.pg-btn:active { transform:translateY(1px); }
    .exp-text-link svg,.exp-destinations > a > svg { transition:transform .2s ease; }
    .exp-text-link:hover svg,.exp-destinations > a:hover > svg { transform:translate(3px,-2px); }
}
.motion-card:focus-within { border-color:#bca56b; }
.calendar-day[data-reward] { cursor:pointer; }
.calendar-day[data-claim="1"] { border-color:#d4b364; background:linear-gradient(145deg,#39432a,#20291d); }
.calendar-day[data-claim="1"] .day-number { color:#ffe2a1; }
.calendar-day.is-claimed { background:#1e2b1d; border-color:#4c6740; }
.calendar-day.is-claimed .pgcal-check { color:#b3d994; }
.calendar-day.is-locked { background:#151b15; }
.calendar-day.is-today { outline:1px solid #b99f5f; outline-offset:3px; }
.calendar-day .pgcal-today-ring { opacity:.2; }
.calendar-day .day-name { color:#e3e7da; }
.calendar-day .pgcal-cellhint { color:#b5c0a9; }
.reward-modal { backdrop-filter:blur(6px); background:rgba(5,12,7,.78); }
.reward-modal-box { border-radius:6px; padding:28px; background:linear-gradient(145deg,#242f20,#161f16); border-color:#626d47; box-shadow:0 28px 100px rgba(0,0,0,.5); }
.reward-modal-head strong { font-size:21px; line-height:1.3; }
.reward-modal-close { min-width:40px; min-height:40px; }
.reward-modal-desc { line-height:1.8; }
@media (prefers-reduced-motion:no-preference) {
    .calendar-day[data-claim="1"] { animation:reward-ready 3s ease-in-out 3; }
    .calendar-day.is-just-claimed { animation:reward-confirm .65s cubic-bezier(.22,1,.36,1); }
    .calendar-day[data-reward]:hover .day-status svg { animation:reward-icon .5s ease; }
    .reward-modal.is-open .reward-modal-box { animation:reward-sheet .28s cubic-bezier(.22,1,.36,1); }
}
@keyframes reward-ready { 0%,100% { box-shadow:0 0 0 0 rgba(234,195,107,0); } 50% { box-shadow:0 0 22px 0 rgba(234,195,107,.15); } }
@keyframes reward-confirm { 0% { transform:scale(.96); } 55% { transform:scale(1.045); box-shadow:0 0 30px rgba(173,215,128,.3); } 100% { transform:scale(1); } }
@keyframes reward-icon { 0%,100% { transform:translateY(0); } 45% { transform:translateY(-4px); } }
@keyframes reward-sheet { from { opacity:0; transform:translateY(16px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (prefers-reduced-motion:reduce) { .motion-card,.calendar-day,.reward-modal-box { animation:none !important; transition:none !important; transform:none !important; } }

/* Reward calendar: the site's olive surfaces, precise typography and restrained gold. */
.page-content.pgcal { width:min(1220px,calc(100% - 80px)); max-width:1220px; margin:56px auto 80px; padding:0; color:#f3f0e7; }
.pgcal .pg-eyebrow { color:#c6ad75; font-size:10px; letter-spacing:.2em; margin-bottom:14px; }
.pgcal .pgcal-title { font-family:var(--font-sans); font-size:clamp(32px,4vw,48px); line-height:1.12; letter-spacing:-.045em; font-weight:650; margin-bottom:16px; }
.pgcal .public-page-intro { max-width:640px; color:#aeb9a7; font-size:14px; line-height:1.8; margin-bottom:32px; }
.pgcal .pgcal-note,.pgcal .pgcal-paused,.pgcal .pgcal-off,.pgcal .pgcal-empty { background:#19201a; border:1px solid #35402e; border-radius:6px; padding:18px 22px; color:#c0c9b9; }
.pgcal .pgcal-note { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.pgcal .pgcal-note p { margin:0; font-size:13px; }
.pgcal .pgcal-note .pg-btn { flex-shrink:0; }
.pgcal .pgcal-server { display:flex; width:fit-content; max-width:100%; gap:4px; padding:5px; margin:28px 0; border:1px solid #303b2e; background:#111812; border-radius:7px; }
.pgcal .pgcal-server-seg { padding:11px 20px; font-size:12px; font-weight:500; border:1px solid transparent; border-radius:4px; color:#aeb9a7; }
.pgcal .pgcal-server-seg:hover { color:#f3f0e7; background:#1d271c; }
.pgcal .pgcal-server-seg.is-active { background:#2c3727; border-color:#48543b; color:#f0dfb5; box-shadow:0 2px 5px #0002; }
.pgcal .pgcal-nav { justify-content:flex-start; gap:16px; margin:32px 0 24px; }
.pgcal .pgcal-month { order:-1; flex:1; color:#f3f0e7; font-size:23px; font-weight:550; letter-spacing:-.025em; }
.pgcal .pgcal-nav-btn { width:40px; height:40px; background:#19201a; border:1px solid #35402e; border-radius:5px; color:#c7cfbf; }
.pgcal .pgcal-nav-btn:hover { background:#263021; border-color:#8e7e52; color:#eac36b; }
.pgcal .pgcal-progress { gap:28px; padding:24px 30px; margin-bottom:28px; border:1px solid #3c4633; border-radius:8px; background:linear-gradient(110deg,#263022,#19221a 70%); box-shadow:inset 0 1px #ffffff05,0 12px 36px #00000014; }
.pgcal .pgcal-streak { width:84px; height:84px; }
.pgcal .pgcal-streak-num strong { color:#f3f0e7; font-size:26px; font-weight:550; }
.pgcal .pgcal-streak-num span { color:#aeb9a7; font-size:8px; letter-spacing:.08em; }
.pgcal .pgcal-ring-arc { stroke:#d7b66c; }
.pgcal .pgcal-daynorm { max-width:460px; min-width:0; }
.pgcal .pgcal-daynorm-label { color:#d8dece; font-size:14px; margin-bottom:14px; }
.pgcal .pgcal-daybar { background:#ffffff0c; height:4px; }
.pgcal .pgcal-daybar-fill { background:#cfb171; }
.pgcal .pgcal-daysleft { margin-left:auto; color:#aeb9a7; font-size:10px; letter-spacing:.1em; }
.pgcal-grid-scroll { overflow-x:auto; padding:4px 3px 14px; scrollbar-width:thin; scrollbar-color:#526044 #151d16; }
.pgcal-scroll-hint { display:none; }
.pgcal .calendar-grid { grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
.pgcal .calendar-weekday { padding:8px 0 14px; color:#8d9b85; font-size:10px; letter-spacing:.14em; font-weight:500; }
.pgcal .calendar-day { min-width:0; min-height:174px; aspect-ratio:auto; padding:14px 12px 12px; gap:8px; border:1px solid #34402f; border-radius:6px; background:linear-gradient(145deg,#202a1e,#192219); box-shadow:inset 0 1px #ffffff04; animation:none; }
.pgcal .calendar-day:hover { transform:translateY(-2px); background:#263021; border-color:#7b8057; box-shadow:0 8px 20px #0003; }
.pgcal .calendar-day .day-number { color:#b8c2ae; font-size:14px; font-weight:500; line-height:1; }
.pgcal .calendar-day .day-status { width:32px; height:32px; min-height:32px; border:0; border-radius:0; background:transparent; color:#bda975; }
.pgcal .pgcal-cellbody { gap:8px; }
.pgcal .calendar-day .day-name { color:#e0e5d8; font-size:12px; line-height:1.45; -webkit-line-clamp:2; white-space:normal; }
.pgcal .pgcal-cellfoot { gap:7px; }
.pgcal .calendar-day .pgcal-cellhint { color:#9ba991; font-size:10px; }
.pgcal .calendar-day .pgcal-daybar { height:2px; background:#ffffff08; }
.pgcal .pgcal-qty { font-size:10px; border:0; background:#ffffff07; color:#c1cbba; border-radius:3px; padding:2px 6px; }
.pgcal .calendar-day.is-locked { background:#151d16; border-color:#2b3529; }
.pgcal .calendar-day.future { opacity:1; }
.pgcal .calendar-day.is-locked .day-status { color:#829078; }
.pgcal .calendar-day.is-missed { background:#161e17; background-image:none; border-color:#2d382a; }
.pgcal .calendar-day.is-missed .day-number { color:#8f9c85; text-decoration-color:#637259; }
.pgcal .calendar-day.is-today,.pgcal .calendar-day[data-claim="1"] { outline:0; border:1px solid #c9aa65; background:linear-gradient(145deg,#3a412b,#252f20); box-shadow:inset 0 0 0 1px #c9aa6512,0 4px 18px #0002; }
.pgcal .pgcal-today-ring { display:none; }
.pgcal .calendar-day.is-today .day-number,.pgcal .pgcal-today-tag { color:#ead093; }
.pgcal .pgcal-today-tag { font-size:9px; font-weight:600; letter-spacing:.1em; }
.pgcal .calendar-day.is-claimed { border-color:#4c6340; background:#1e2c1e; }
.pgcal .calendar-day.is-claimed .day-status { color:#b4d29e; }
.pgcal-dayhead { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:16px; }
.pgcal .pgcal-state-mark::before,.pgcal .pgcal-legend span::before { content:''; display:block; width:12px; height:12px; box-sizing:border-box; border-radius:50%; flex-shrink:0; }
.pgcal .pgcal-lg-today::before { border:2px solid #e5c479; background:transparent; }
.pgcal .pgcal-lg-claimed::before { border:0; background:#b4d29e; }
.pgcal .pgcal-lg-locked::before { border:1px solid #a4b29a; background:transparent; }
.pgcal .pgcal-lg-missed::before { border:0; border-radius:2px; background:repeating-linear-gradient(45deg,#c5a381 0 2px,transparent 2px 4px); }
.pgcal .calendar-day .pgcal-cellhint { overflow:visible; line-height:1.7; }
.pgcal-state-label { display:inline-block; padding:2px 6px; border-radius:3px; font-weight:600; color:#d0d9c9; background:#ffffff09; }
.pgcal .calendar-day.is-missed .pgcal-state-label { color:#e0b995; background:#b17e4920; }
.pgcal .calendar-day.is-missed .day-status { color:#c5a381; }
.pgcal .calendar-day.is-claimed .pgcal-state-label { color:#c2e3ac; background:#8fbd6b18; }
.pgcal .calendar-day.is-today:not(.is-claimed) .pgcal-state-label { color:#f0d594; background:#dfbb6120; }
.pgcal .pgcal-cellhours { white-space:nowrap; }
.pgcal .pgcal-cellclaim .pg-btn { min-height:30px; padding:6px; font-size:11px; border-radius:3px; }
.pgcal .pgcal-rules { background:transparent; border:0; border-top:1px solid #34402f; border-radius:0; padding:28px 0 0; margin-top:28px; }
.pgcal .pgcal-rules h3 { font-size:15px; font-weight:550; color:#dde3d5; margin-bottom:16px; }
.pgcal .pgcal-rules li { color:#9eac94; font-size:12px; line-height:1.8; margin-bottom:8px; }
.pgcal .pgcal-legend { gap:20px; color:#a4b09b; font-size:11px; padding-top:16px; }
.pgcal .reward-hint { color:#8d9b85; font-size:11px; margin-top:0; }
.pgcal :is(a,button,[tabindex]):focus-visible { outline:2px solid #eac36b; outline-offset:3px; }
@media (max-width:1000px) {
    .page-content.pgcal { width:calc(100% - 48px); }
    .pgcal .pgcal-scroll-hint { display:flex; justify-content:space-between; gap:12px; margin:0 3px 12px; color:#9eac94; font-size:11px; }
    .pgcal .calendar-grid { min-width:820px; }
    .pgcal .pgcal-progress { gap:20px; padding:20px; }
    .pgcal .pgcal-daysleft { white-space:normal; max-width:150px; line-height:1.8; }
}
@media (max-width:560px) {
    .page-content.pgcal { width:calc(100% - 36px); margin:32px auto 48px; }
    .pgcal .pgcal-note { align-items:flex-start; flex-direction:column; gap:14px; }
    .pgcal .pgcal-server { width:100%; gap:4px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; scrollbar-color:#526044 #151d16; }
    .pgcal .pgcal-server-seg { white-space:nowrap; padding:10px 13px; }
    .pgcal .pgcal-nav { gap:8px; }
    .pgcal .pgcal-month { font-size:20px; }
    .pgcal .pgcal-progress { gap:16px; padding:18px; }
    .pgcal .pgcal-daynorm { flex:1; }
    .pgcal .pgcal-daynorm-label { font-size:12px; }
    .pgcal .pgcal-daysleft { flex-basis:100%; max-width:none; margin:0; padding-top:12px; border-top:1px solid #ffffff0a; }
    .pgcal .calendar-grid { min-width:784px; gap:8px; }
    .pgcal .calendar-day { min-height:166px; }
    .pgcal .calendar-day .day-name { font-size:12px; }
    .pgcal .calendar-day .pgcal-cellhint { font-size:10px; }
}
/* Catalogue: product first, filters second. */
.shop-page .shop-heading { border-bottom:1px solid var(--border-subtle); padding-bottom:26px; margin-bottom:28px; }
.shop-page .shop-heading .public-page-intro { margin-bottom:0; }
.shop-page .shop-cat-grid { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 24px; }
.shop-page .shop-cat-grid a { flex:0 1 auto; padding:10px 15px; background:transparent; font-size:12px; }
.shop-page .shop-cat-grid a.active { color:#161c12; background:var(--accent); }
.shop-page .shop-search { display:flex; align-items:center; gap:12px; margin-bottom:30px; }
.shop-page .shop-search input[type="search"] { flex:1; min-width:0; width:auto; }
.shop-page .shop-grid-4 { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:22px; }
.shop-page .shop-card { display:flex; flex-direction:column; isolation:isolate; }
.shop-card-visual { position:relative; overflow:hidden; background:radial-gradient(ellipse at 50% 35%,#34412b,#151e15 75%); }
.shop-page .shop-card-visual > img,.shop-page .shop-card-placeholder { width:100%; aspect-ratio:1.2; height:auto; object-fit:contain; padding:32px 24px; background:transparent; }
.shop-product-category { position:absolute; z-index:1; top:14px; left:14px; max-width:calc(100% - 28px); padding:5px 8px; color:#e0e6d6; font-size:9px; font-weight:600; letter-spacing:.07em; border:1px solid #546346; border-radius:3px; background:rgba(17,26,15,.85); }
.shop-page .shop-card-body { display:flex; flex-direction:column; flex:1; padding:22px; border-top:1px solid var(--border-subtle); }
.shop-page .shop-card h2 { font-size:19px; line-height:1.35; letter-spacing:-.025em; margin-bottom:12px; }
.shop-page .shop-card-description { font-size:12px; color:#b7c3ac; line-height:1.7; flex:1; margin-bottom:24px; }
.shop-page .shop-card-meta { justify-content:flex-start; gap:8px 12px; padding-top:16px; border-top:1px solid var(--border-subtle); margin-bottom:18px; }
.shop-page .shop-card-meta strong { font-size:23px; font-weight:650; }
.shop-page .shop-card .in-stock,.shop-page .shop-card .out-stock { margin-left:auto; font-size:10px; font-style:normal; }
.shop-page .in-stock { color:#bad59a; }
.shop-page .out-stock { color:#aeb6a5; }
.shop-page .shop-card .cart-add-btn { width:100%; margin:0; }
.shop-card-details { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:14px; padding-block:6px; font-size:11px; font-weight:600; color:var(--accent); text-decoration:none; }
.shop-page .shop-product { padding:28px; gap:40px; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); }
.shop-page .shop-product-media { display:flex; align-items:center; justify-content:center; background:radial-gradient(ellipse at center,#36452b,#121b12); align-self:start; position:sticky; top:100px; min-width:0; }
.shop-page .shop-product-media img { width:100%; aspect-ratio:1; object-fit:contain; padding:36px; }
.shop-page .shop-product-media .shop-card-placeholder { width:100%; aspect-ratio:1; }
.shop-page .shop-product-info { min-width:0; }
.shop-page .shop-product-info h1 { font-size:clamp(28px,3vw,42px); overflow-wrap:anywhere; }
.shop-page .shop-price { font-size:32px; font-weight:650; display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-block:24px 10px; }
.shop-price .shop-old-price { font-size:17px; }
.shop-product-info .cart-add-btn { min-width:220px; min-height:48px; }
.shop-product-facts { border-block:1px solid var(--border-subtle); padding:12px 0; margin:24px 0; font-size:12px; }
.shop-product-facts > div { display:flex; gap:18px; justify-content:space-between; padding-block:8px; }
.shop-product-facts dt { color:var(--text-muted); }
.shop-product-facts dd { margin:0; color:var(--text-primary); text-align:right; }
.shop-page .shop-product-description { white-space:normal; font-size:14px; line-height:1.8; }
.shop-product-description h2 { font-size:20px; margin-bottom:14px; }
.shop-notice { padding:18px 20px; border-left:2px solid var(--accent); font-size:12px; line-height:1.8; color:var(--text-secondary); }
.shop-notice strong { color:var(--text-primary); }
.shop-empty { padding:44px 28px; background:var(--bg-card); border:1px dashed #59664a; border-radius:5px; text-align:center; }
.shop-empty h2 { font-size:24px; }
.shop-empty p { color:var(--text-secondary); font-size:14px; }
.auth-page .welcome-box h1 { text-transform:none; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
    .shop-card-visual > img,.shop-product-media > img { transition:transform 450ms cubic-bezier(.22,1,.36,1); }
    .shop-card:hover .shop-card-visual > img,.shop-card:focus-within .shop-card-visual > img { transform:scale(1.055) translateY(-3px); }
    .shop-product-media:hover > img { transform:scale(1.08); }
    .shop-card-placeholder svg { transition:transform .3s ease; }
    .shop-card:hover .shop-card-placeholder svg { transform:translateY(-5px) rotate(-5deg); }
}
@media (max-width:760px) {
    .shop-page .shop-product { grid-template-columns:1fr; padding:20px; gap:28px; }
    .shop-page .shop-product-media { position:static; }
    .shop-page .shop-product-media img { max-height:380px; padding:24px; }
    .shop-product-info .cart-add-btn { width:100%; }
    .shop-page .shop-search { padding:12px; gap:8px; }
}
@media (max-width:480px) { .shop-page .shop-grid-4 { grid-template-columns:1fr; } .shop-page .shop-card-visual > img,.shop-page .shop-card-placeholder { aspect-ratio:1.5; } .shop-page .shop-cat-grid a { font-size:11px; padding:8px 10px; } }

/* Вкладки кабинета */
.pg-tabs { display:flex; gap:4px; margin-bottom:16px; border-bottom:1px solid var(--border-subtle); }
.pg-tab { padding:8px 16px; color:var(--text-secondary); text-decoration:none; border-bottom:2px solid transparent; transition:color .15s,border-color .15s; }
.pg-tab:hover { color:var(--text-primary); }
.pg-tab-active { color:var(--text-primary); border-bottom-color:var(--accent); font-weight:600; }

/* Календарь дней рождения: навигация по месяцам, метка «уже поздравлен» и лента поздравлений.
   Добавлено здесь (а не в site.min.css), потому что public-refresh.css подключается
   последним и токены --pg-* из собранного файла ему уже доступны. */
.pg-calendar-nav { display:flex; align-items:center; gap:10px; min-width:0; }
.pg-calendar-arrow { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:1px solid var(--pg-line-soft); border-radius:var(--pg-radius-s); color:var(--pg-text-dim); text-decoration:none; font-size:15px; line-height:1; flex-shrink:0; transition:color var(--pg-d2) var(--pg-ease),border-color var(--pg-d2) var(--pg-ease); }
.pg-calendar-arrow:hover { color:var(--pg-gold); border-color:var(--pg-gold); }
.pg-calendar-arrow--off { opacity:.35; }
.pg-calendar-meta { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.pg-calendar-today-link { font-size:12px; color:var(--pg-gold); text-decoration:none; border-bottom:1px solid transparent; }
.pg-calendar-today-link:hover { border-bottom-color:var(--pg-gold); }
.pg-calendar-empty { margin:0 0 12px; font-size:13px; color:var(--pg-text-mute); }
.pg-calendar-empty a { color:var(--pg-gold); }

.pg-birthday-greetings { border:1px solid var(--pg-line-soft); border-radius:var(--pg-radius); background:var(--pg-surface); padding:16px; }
.pg-birthday-greetings h2 { margin:0 0 14px; font-size:18px; }
.pg-greeting-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.pg-greeting-item { border-top:1px solid var(--pg-line-soft); padding-top:12px; }
.pg-greeting-item:first-child { border-top:none; padding-top:0; }
.pg-greeting-head { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:6px; }
.pg-greeting-name { font-size:15px; font-weight:600; color:var(--pg-gold); }
.pg-greeting-date { font-size:12px; color:var(--pg-text-mute); }
.pg-greeting-platform { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--pg-text-mute); border:1px solid var(--pg-line-soft); border-radius:999px; padding:2px 8px; }
.pg-greeting-body p { margin:0; color:var(--pg-text-dim); font-size:14px; line-height:1.65; }

@media (max-width:560px) {
    .pg-birthday-greetings { padding:12px; }
    .pg-greeting-body p { font-size:13px; }
}

/* ── Пополнение баланса (public/payments/topup.php) ────────────────────────────
   Страница раньше не имела ни одного правила: кнопки быстрых сумм, радиокнопки
   выбора способа и поле суммы выглядели как браузерные по умолчанию. Здесь —
   та же палитра и геометрия, что у остальных публичных страниц (панели на
   --bg-card, золотой акцент --accent, радиусы --radius-md/lg). */
.page-content .pg-topup { display:grid; gap:18px; max-width:760px; margin:0 auto; }
.pg-topup-balance { display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:20px 24px; background:linear-gradient(90deg,var(--accent-dim),transparent 65%),var(--bg-card); border:1px solid var(--border-subtle); border-left:2px solid var(--accent); border-radius:var(--radius-lg); }
.pg-topup-balance h2 { margin:0; font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--text-secondary); }
.pg-topup-balance-value { margin:0; font-size:30px; font-weight:600; color:var(--accent); line-height:1.1; }
.pg-topup form { display:grid; gap:24px; padding:28px; background:var(--bg-card); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); }
.pg-topup-label { display:block; margin-bottom:10px; font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted); }
.pg-topup-amounts { display:grid; }
.pg-topup-amount-buttons { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.pg-topup-amount-btn { padding:9px 16px; font:inherit; font-size:14px; color:var(--text-primary); background:var(--bg-elevated); border:1px solid var(--border-default); border-radius:var(--radius-md); cursor:pointer; transition:background .15s,color .15s,border-color .15s; }
.pg-topup-amount-btn:hover { color:var(--accent); border-color:var(--accent); background:var(--accent-dim); }
.pg-topup-amount-btn.is-active { color:var(--accent); border-color:var(--accent); background:var(--accent-dim); font-weight:600; }
.pg-topup-amount-btn:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.pg-topup-amount-input { width:100%; min-height:46px; padding:12px 14px; font:inherit; font-size:16px; color:var(--text-primary); background:var(--bg-inset); border:1px solid var(--border-default); border-radius:var(--radius-md); transition:border-color .15s,box-shadow .15s; }
.pg-topup-amount-input::placeholder { color:var(--text-muted); }
.pg-topup-amount-input:hover { border-color:var(--border-accent); }
.pg-topup-amount-input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-glow); }
.pg-topup-provider-options { display:grid; gap:10px; }
.pg-topup-radio { display:flex; align-items:center; gap:10px; padding:12px 14px; background:var(--bg-elevated); border:1px solid var(--border-subtle); border-radius:var(--radius-md); cursor:pointer; transition:border-color .15s,background .15s; }
.pg-topup-radio:hover { border-color:var(--border-accent); }
.pg-topup-radio input { flex:none; width:16px; height:16px; margin:0; accent-color:var(--accent); cursor:pointer; }
.pg-topup-radio span { font-size:14px; color:var(--text-primary); }
/* Подсветка выбранного способа — прогрессивное улучшение: без :has() выбор
   всё равно виден по самой радиокнопке. */
.pg-topup-radio:has(input:checked) { border-color:var(--accent); background:var(--accent-dim); }
.pg-topup-yoomoney-type { margin:10px 0 0 24px; }
.pg-topup-yoomoney-type .pg-topup-radio { padding:10px 12px; background:transparent; }
.pg-topup-yoomoney-type .pg-topup-radio + .pg-topup-radio { margin-top:8px; }
.pg-topup-yoomoney-type .pg-topup-radio span { font-size:13px; color:var(--text-secondary); }
.pg-topup-info { display:grid; gap:14px; padding:16px 18px; background:var(--bg-inset); border:1px solid var(--border-subtle); border-radius:var(--radius-md); }
.pg-topup-fee-note { margin:0; font-size:13px; line-height:1.6; color:var(--text-secondary); }
.pg-topup-fee-note #feeAmount, .pg-topup-fee-note #feeCredit { color:var(--accent); font-weight:600; }
/* Пока сумма не выбрана — показываем подсказку, а не «Спишется — ₽». */
.pg-topup-fee-note .pg-topup-fee-line { display:none; }
.pg-topup-fee-note.is-ready .pg-topup-fee-line { display:inline; }
.pg-topup-fee-note.is-ready .pg-topup-fee-hint { display:none; }
.pg-topup-fee-note small { display:block; margin-top:4px; font-size:11px; color:var(--text-muted); }
.pg-topup-consent { display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.5; color:var(--text-secondary); cursor:pointer; }
.pg-topup-consent input { flex:none; width:16px; height:16px; margin:2px 0 0; accent-color:var(--accent); cursor:pointer; }
.pg-topup .btn-lg { justify-self:start; min-width:200px; }

@media (max-width:760px) {
    .pg-topup form { padding:20px; gap:20px; }
    .pg-topup-balance { padding:16px 18px; }
    .pg-topup-balance-value { font-size:26px; }
    .pg-topup .btn-lg { width:100%; justify-self:stretch; }
}
