/* ============================================================
   Geniro Gram — редизайн gram.geniro.ru (Pixelfed)
   Единый CSS: токены ДС «Аниме-поп» + слой gram + стили страниц.
   Тёмная тема по умолчанию; светлая — body.light.
   ============================================================ */
@import url("https://fonts.googleapis.com/css2?family=Unbounded:wght@500;600;700&family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap");

/* ---------- tokens: colors ---------- */
:root{
  --bg:#0B0E17; --sf:#131829; --sf2:#1A2138;
  --tx:#F2F4FB; --tx2:#9AA3BF; --ln:rgba(255,255,255,.08);
  --cy:#22D3EE; --vi:#8B5CF6; --mg:#F472B6;
  --ok:#34D399; --wn:#FBBF24; --er:#F87171;
  --glow:rgba(139,92,246,.35);
}
body.light{
  --bg:#F7F8FC; --sf:#FFFFFF; --sf2:#EEF1F9; --tx:#171B2C; --tx2:#5A6382;
  --ln:rgba(15,23,42,.12);
  --vi:#7C3AED; --cy:#0891B2; --mg:#DB2777;
  --glow:rgba(124,58,237,.25);
}

/* ---------- tokens: typography ---------- */
:root{
  --font-display:'Unbounded',system-ui,sans-serif;
  --font-body:'Manrope',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --fs-hero:clamp(28px,4.6vw,52px);
  --fs-h1:34px; --fs-h2:24px; --fs-h3:20px;
  --fs-card-title:15px; --fs-body:14.5px; --fs-small:13.5px; --fs-caption:12px; --fs-micro:11.5px;
  --fs-price:17.5px;
  --pop-text-mg:.07em .07em 0 rgba(34,211,238,.75);
  --pop-text-cy:.06em .06em 0 rgba(139,92,246,.85);
}
body{margin:0;background:var(--bg);color:var(--tx);font-family:var(--font-body)}
a{color:var(--cy);text-decoration:none}
a:hover{color:var(--mg)}
:focus-visible{outline:2px solid var(--cy);outline-offset:2px;border-radius:4px}

/* ---------- tokens: effects ---------- */
:root{
  --pop-vi:3px 3px 0 rgba(139,92,246,.9);
  --pop-vi-lg:4px 4px 0 rgba(139,92,246,.85);
  --pop-cy:3px 3px 0 rgba(34,211,238,.9);
  --pop-mg:2px 2px 0 rgba(244,114,182,.85);
  --r-sm:10px; --r-md:12px; --r-lg:16px; --r-xl:20px; --r-pill:999px;
  --border-ink:2px solid var(--tx);
  --ease-out:cubic-bezier(.22,1,.36,1);
}
.g-dots{background:radial-gradient(circle,var(--sf2) 1.6px,transparent 1.9px) 0 0/11px 11px var(--sf)}
.g-dots-cy{background-image:radial-gradient(circle,var(--cy) 1.5px,transparent 1.7px);background-size:13px 13px}
.g-dots-mg{background-image:radial-gradient(circle,var(--mg) 1.5px,transparent 1.7px);background-size:12px 12px}
.g-dots-grid{background-image:radial-gradient(rgba(139,92,246,.1) 1px,transparent 1px);background-size:22px 22px}
@keyframes fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes ggpop{0%{transform:scale(0)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
body.nomotion *,body.nomotion *::before,body.nomotion *::after{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- слой gram ---------- */
body{transition:background .3s,color .3s;-webkit-font-smoothing:antialiased}
.wrap{max-width:1280px;margin:0 auto;padding:0 24px}
::selection{background:rgba(139,92,246,.4)}
/* Шапка */
.gg-hdr{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--ln)}
@supports not (background:color-mix(in srgb,red 50%,transparent)){.gg-hdr{background:rgba(11,14,23,.9)}body.light .gg-hdr{background:rgba(247,248,252,.92)}}
.gg-hdr-in{max-width:1280px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:12px}
.gg-logo{display:flex;align-items:center;gap:10px;color:var(--tx)!important;flex-shrink:0}
.gg-logo b{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:0}
.gg-logo b i{font-style:normal;color:var(--mg);text-shadow:var(--pop-text-mg)}
.gg-nav{display:flex;align-items:center;gap:4px;margin-left:auto;min-width:0}
.gg-nlk{color:var(--tx2)!important;font-weight:700;font-size:14px;padding:8px 12px;border-radius:10px;white-space:nowrap;background:transparent;border:none;cursor:pointer;font-family:var(--font-body)}
.gg-nlk:hover{color:var(--tx)!important;background:var(--sf2)}
.gg-nlk.on{color:var(--tx)!important}
.gg-ibt{display:flex;padding:9px;border-radius:10px;background:transparent;border:none;color:var(--tx2);cursor:pointer;position:relative}
.gg-ibt:hover{color:var(--tx);background:var(--sf2)}
.gg-dot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:var(--mg);border:2px solid var(--bg)}
.gg-cta{display:inline-flex;align-items:center;gap:8px;background:var(--mg);color:#0B0E17!important;border:none;border-radius:var(--r-md);padding:10px 18px;font-family:var(--font-body);font-weight:800;font-size:14px;cursor:pointer;box-shadow:var(--pop-vi);transition:box-shadow .2s,transform .15s;white-space:nowrap;text-decoration:none}
.gg-cta:hover{box-shadow:var(--pop-vi-lg)}
.gg-cta:active{transform:scale(.97)}
.gg-cta.big{padding:14px 28px;font-size:15.5px;border-radius:14px}
.gg-cta:disabled{opacity:.5;cursor:default}
.gg-b2{display:inline-flex;align-items:center;gap:8px;background:var(--sf);color:var(--tx)!important;border:1px solid var(--ln);border-radius:var(--r-md);padding:10px 16px;font-family:var(--font-body);font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap;transition:border-color .2s;text-decoration:none}
.gg-b2:hover{border-color:var(--vi)}
.gg-b2.big{padding:14px 24px;font-size:15px;border-radius:14px}
/* Карточки, тайлы */
.gg-card{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r-lg);overflow:hidden;transition:transform .25s var(--ease-out),border-color .25s}
.gg-card:hover{border-color:var(--vi)}
.gg-tile{position:relative;display:block;border-radius:var(--r-sm);overflow:hidden;transition:box-shadow .2s,transform .25s var(--ease-out);background:var(--sf2)}
.gg-tile:hover{box-shadow:var(--pop-vi-lg);transform:translateY(-4px)}
.gg-tile-ov{position:absolute;left:0;right:0;bottom:0;padding:26px 10px 8px;background:linear-gradient(transparent,rgba(11,14,23,.8));display:flex;gap:12px;font-size:11.5px;font-weight:700;color:#F2F4FB;align-items:center}
.gg-cap{background:rgba(11,14,23,.72);backdrop-filter:blur(6px);border-radius:var(--r-pill);color:#F2F4FB!important;border:none;cursor:pointer;font-family:var(--font-body)}
.gg-ph{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.gg-ph>span{font-family:var(--font-mono);font-size:10.5px;font-weight:500;color:var(--tx2);text-align:center;padding:0 12px;position:relative;z-index:1}
/* Реальные фото */
.gg-img{display:block;width:100%;height:100%;object-fit:cover}
.gg-fit{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Скелетоны загрузки */
.gg-sk{background:linear-gradient(100deg,var(--sf) 40%,var(--sf2) 50%,var(--sf) 60%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--r-sm)}
/* Сторис */
.gg-stories{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none}
.gg-stories::-webkit-scrollbar{display:none}
/* Появление при скролле */
.gg-rv{opacity:0;transform:translateY(26px);transition:opacity .65s var(--ease-out),transform .65s var(--ease-out)}
.gg-rv.in{opacity:1;transform:none}
body.nomotion .gg-rv{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.gg-rv{opacity:1;transform:none}}
/* Tilt */
[data-tilt]{will-change:transform;transition:transform .35s var(--ease-out)}
/* Маркиза */
.gg-mq{overflow:hidden;display:flex;max-width:100%}
.gg-mq>div{display:flex;gap:10px;padding-right:10px;flex-shrink:0;animation:ggmarq 26s linear infinite}
.gg-mq:hover>div{animation-play-state:paused}
@keyframes ggmarq{to{transform:translateX(-100%)}}
/* Спидлайны */
.gg-speed{background-image:repeating-linear-gradient(115deg,transparent 0 26px,rgba(242,244,251,.05) 26px 28px)}
body.light .gg-speed{background-image:repeating-linear-gradient(115deg,transparent 0 26px,rgba(23,27,44,.05) 26px 28px)}
/* Hero A: живая стена */
.hw{position:relative;overflow:hidden;border-bottom:1px solid var(--ln)}
.hw-scene{position:absolute;inset:-16% -8%;perspective:1300px}
.hw-grid{position:absolute;inset:0;display:flex;gap:16px;transform:rotateX(9deg) rotateZ(-4deg) scale(1.15);transform-style:preserve-3d}
.hw-col{flex:1;display:flex;flex-direction:column;gap:16px;animation:hwA 24s ease-in-out infinite alternate}
.hw-col:nth-child(2n){animation-name:hwB;animation-duration:29s}
.hw-col:nth-child(3n){animation-duration:34s}
@keyframes hwA{from{transform:translateY(-34px)}to{transform:translateY(42px)}}
@keyframes hwB{from{transform:translateY(34px)}to{transform:translateY(-48px)}}
.hw-t{aspect-ratio:4/5;border-radius:14px;overflow:hidden;border:1px solid var(--ln);flex-shrink:0;position:relative;background:var(--sf2)}
.hw-scrim{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 46%,rgba(11,14,23,.5) 0%,rgba(11,14,23,.9) 76%)}
body.light .hw-scrim{background:radial-gradient(ellipse at 50% 46%,rgba(247,248,252,.66) 0%,rgba(247,248,252,.94) 76%)}
.hw-in{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px;padding:118px 24px 128px}
/* Заголовки hero */
.gg-hero-t{margin:0;font-family:var(--font-display);font-weight:700;font-size:var(--fs-hero);line-height:1.14;letter-spacing:-.01em}
.gg-hero-t i{font-style:normal;color:var(--mg);text-shadow:var(--pop-text-mg)}
.gg-hero-t em{font-style:normal;color:var(--cy);text-shadow:var(--pop-text-cy)}
.gg-sub{margin:0;font-size:16.5px;line-height:1.6;color:var(--tx2);max-width:560px}
/* Поп-декор */
.hb-circle{position:absolute;border-radius:50%;background:radial-gradient(circle,var(--vi) 2.2px,transparent 2.6px);background-size:15px 15px;opacity:.85}
.hb-wedge{position:absolute;background:var(--mg)}
.hb-star{position:absolute;color:var(--wn);animation:hbbob 3.4s ease-in-out infinite}
@keyframes hbbob{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-9px) rotate(7deg)}}
.hb-mascot{animation:hbbob 4.2s ease-in-out infinite}
/* Счётчики */
.gg-cnt{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}
.gg-cnt b{font-family:var(--font-display);font-weight:700;font-size:clamp(26px,3.4vw,40px);line-height:1}
.gg-cnt span{color:var(--tx2);font-size:14px;font-weight:600}
/* Шаги */
.gg-step{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r-xl);padding:26px 24px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden}
.gg-step b.num{font-family:var(--font-display);font-size:15px;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#0B0E17}
/* Поля */
input.gg-in,textarea.gg-in,select.gg-in{background:var(--sf2);border:1px solid var(--ln);border-radius:var(--r-md);color:var(--tx);font-family:var(--font-body);font-size:14px;padding:11px 14px;outline:none;transition:border-color .2s;width:100%;box-sizing:border-box}
.gg-in:focus{border-color:var(--cy)}
textarea.gg-in{resize:vertical;min-height:88px;line-height:1.55}
.gg-lbl{font-size:12.5px;font-weight:800;color:var(--tx2);letter-spacing:.04em;text-transform:uppercase}
.gg-err{font-size:13px;color:var(--er);font-weight:600;display:flex;gap:8px;align-items:center}
/* Дропзона */
.gg-drop{border:2px dashed rgba(139,92,246,.55);border-radius:var(--r-xl);background:var(--sf);transition:border-color .2s,background .2s,transform .2s}
.gg-drop.on{border-color:var(--cy);background:var(--sf2);transform:scale(1.01)}
/* Уведомления */
.gg-ntf{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:var(--r-lg);border:1px solid transparent;transition:background .2s,border-color .2s}
.gg-ntf:hover{background:var(--sf2)}
.gg-ntf.unread{background:var(--sf);border-color:var(--ln)}
/* Комментарии */
.gg-cm{display:flex;gap:11px;animation:fadeup .35s var(--ease-out) both}
/* Футер */
.gg-ftr{border-top:1px solid var(--ln);margin-top:70px}
.gg-ftr a{color:var(--tx2)!important;font-size:13.5px;font-weight:600}
.gg-ftr a:hover{color:var(--tx)!important}
/* Нижняя навигация (мобайл) */
.gg-bnav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--ln);padding:7px 8px calc(7px + env(safe-area-inset-bottom));justify-content:space-around;align-items:flex-end}
@supports not (background:color-mix(in srgb,red 50%,transparent)){.gg-bnav{background:rgba(11,14,23,.94)}body.light .gg-bnav{background:rgba(247,248,252,.96)}}
.gg-bnav a{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--tx2)!important;font-size:10px;font-weight:700;min-width:54px;padding:4px 6px;border-radius:10px}
.gg-bnav a.on{color:var(--cy)!important}
.gg-bplus{width:46px;height:46px;border-radius:15px;background:var(--mg);color:#0B0E17;display:flex;align-items:center;justify-content:center;box-shadow:var(--pop-vi);margin-bottom:2px}
@media(max-width:820px){
 .gg-nav .gg-nlk,.gg-nav .hide-m,.hide-m{display:none}
 .gg-bnav{display:flex}
 body{padding-bottom:76px}
}

/* ---------- страницы ---------- */
/* Фото */
.gp-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,420px);gap:24px}
@media(max-width:900px){.gp-grid{grid-template-columns:1fr}}
/* Обзор: масонри */
.gx-mas{columns:4 210px;column-gap:12px}
.gx-mas>*{break-inside:avoid;margin-bottom:12px;display:block}
/* Вход/регистрация: центрированный контейнер, чтобы колонки не разъезжались на широких экранах */
.au-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(400px,480px);min-height:100vh;max-width:1180px;margin:0 auto;border-left:1px solid var(--ln);border-right:1px solid var(--ln)}
@media(max-width:900px){.au-grid{grid-template-columns:1fr;border-left:none;border-right:none}.au-left{display:none!important}}
/* Меню-дропдаун шапки */
.gg-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;background:var(--sf);border:1px solid var(--ln);border-radius:var(--r-md);box-shadow:0 14px 34px rgba(0,0,0,.35);padding:6px;display:flex;flex-direction:column;z-index:60;animation:fadeup .18s var(--ease-out) both}
body.light .gg-menu{box-shadow:0 14px 34px rgba(23,27,44,.16)}
.gg-menu a,.gg-menu button{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--tx)!important;font-size:13.5px;font-weight:600;background:none;border:none;cursor:pointer;text-align:left;font-family:var(--font-body);width:100%;box-sizing:border-box}
.gg-menu a:hover,.gg-menu button:hover{background:var(--sf2)}
.gg-menu .sep{height:1px;background:var(--ln);margin:5px 8px}
/* Модалка */
.gg-modal-bg{position:fixed;inset:0;background:rgba(5,7,13,.66);backdrop-filter:blur(4px);z-index:70;display:flex;align-items:center;justify-content:center;padding:20px}
.gg-modal{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r-xl);max-width:520px;width:100%;max-height:82vh;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:14px;animation:fadeup .25s var(--ease-out) both}
/* Тосты */
.gg-toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--sf);border:1px solid var(--ln);border-radius:var(--r-pill);box-shadow:var(--pop-vi);padding:11px 20px;font-size:13.5px;font-weight:700;z-index:80;animation:fadeup .3s var(--ease-out) both;white-space:nowrap}
/* Спиннер */
.gg-spin{width:26px;height:26px;border-radius:50%;border:3px solid var(--ln);border-top-color:var(--cy);animation:spin .8s linear infinite;margin:26px auto}
/* Карточка лота (связь с барахолкой) */
.gg-item-chip{display:flex;gap:10px;align-items:center;background:var(--sf2);border:1px solid var(--ln);border-radius:11px;padding:9px 12px;color:var(--tx)!important;margin-top:2px}
.gg-item-chip:hover{border-color:var(--cy)}
.gg-item-card{display:flex;gap:12px;align-items:center;padding:13px 15px;border:2px solid var(--tx);box-shadow:var(--pop-vi);color:var(--tx)!important;background:var(--sf);border-radius:var(--r-lg)}
/* Сетка ленты */
.gg-feedgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}
.gg-tilegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
@media(max-width:640px){.gg-tilegrid{grid-template-columns:repeat(3,1fr);gap:3px}.gg-tilegrid .gg-tile{border-radius:0}}
/* Подпись поста: ссылки */
.gg-caption a{font-weight:600}
/* Blade-формы (вход/регистрация) */
.gg-form-hint{font-size:12px;color:var(--tx2);line-height:1.5;margin-top:5px}
.gg-form-err{font-size:12.5px;color:var(--er);font-weight:600;margin-top:5px}
.gg-check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--tx2);line-height:1.5;cursor:pointer}
.gg-check input{width:17px;height:17px;accent-color:var(--mg);margin-top:1px;flex-shrink:0}
