*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--bg);color:var(--text-dim);
  font-family:"Segoe UI",system-ui,Roboto,sans-serif;line-height:1.5;
  background-image:radial-gradient(1100px 480px at 50% -220px, rgba(178,52,88,.05), transparent 72%);
  min-height:100vh;
}
a{color:inherit;text-decoration:none}
img{max-width:100%}

/* ── brand ── */
.brand{font-weight:800;letter-spacing:1px;font-size:1.25rem;display:inline-flex;gap:5px;align-items:center}
.brand-wild{color:var(--text)}
.brand-harmony{color:var(--gold);text-shadow:0 0 18px rgba(212,175,55,.25)}
.brand.big{font-size:1.8rem;margin-bottom:6px}

/* ── sidebar layout (как в админке) ── */
.app{display:flex;min-height:100vh}
.sidebar{position:fixed;top:0;left:0;width:232px;height:100vh;z-index:60;
  background:#100a0e;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 0;
  background-image:radial-gradient(300px 200px at 50% -60px, rgba(178,52,88,.05), transparent)}
.s-logo{padding:4px 22px 22px;font-size:1.25rem;letter-spacing:1px;border-bottom:1px solid var(--border)}
.s-nav{display:flex;flex-direction:column;gap:3px;padding:14px 12px}
.s-nav a{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:10px;color:var(--text-dim);
  font-size:.97rem;transition:.13s}
.s-nav a span{flex:1}
.s-nav a:hover{background:rgba(192,21,48,.12);color:var(--text)}
.s-nav a.on{background:linear-gradient(90deg,rgba(192,21,48,.22),transparent);color:var(--text);
  box-shadow:inset 3px 0 0 var(--accent)}
.s-badge{background:var(--accent);color:var(--text);font-size:.7rem;padding:1px 7px;border-radius:10px;font-style:normal}
.s-foot{margin-top:auto;padding:16px 20px;border-top:1px solid var(--border)}
.s-user{color:var(--text);font-weight:600;margin-bottom:6px;font-size:.92rem}
.s-logout{color:var(--text-mute);font-size:.85rem}
.s-login{display:block;text-align:center}
.s-18{color:#5f4a53;font-size:.72rem;margin-top:14px}
.content{margin-left:232px;flex:1;padding:28px 34px 70px;max-width:1240px}
.mobile-burger{display:none;position:fixed;top:14px;left:14px;z-index:70;background:var(--card);
  border:1px solid var(--border);color:var(--text);font-size:1.2rem;padding:6px 12px;border-radius:9px}
.mobile-auth{display:none;position:fixed;top:14px;right:14px;z-index:70;gap:8px;align-items:center}
.mobile-auth .btn-gold,.mobile-auth .btn-outline-gold{padding:7px 14px;border-radius:9px;font-size:.92rem;line-height:1}
.mobile-auth .ma-acct{background:var(--card);border:1px solid var(--border);color:var(--text);font-weight:700;
  font-size:.92rem;padding:7px 12px;border-radius:9px;cursor:pointer;max-width:52vw;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;list-style:none}
.mobile-auth .ma-acct::-webkit-details-marker{display:none}
.mobile-auth .ma-acct-wrap{position:relative}
.mobile-auth .ma-pop{position:absolute;top:calc(100% + 6px);right:0;background:var(--card);
  border:1px solid var(--border);border-radius:9px;min-width:140px;padding:4px;
  box-shadow:0 8px 24px rgba(0,0,0,.5);z-index:80}
.mobile-auth .ma-pop a{display:block;padding:10px 12px;color:var(--text);text-decoration:none;
  border-radius:7px;font-size:.92rem;font-weight:600}
.mobile-auth .ma-pop a:hover{background:rgba(255,255,255,.06);color:var(--gold)}

/* ── buttons ── */
.btn-accent{background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:var(--text);
  padding:10px 20px;border:0;border-radius:10px;font-weight:700;cursor:pointer;display:inline-block;
  box-shadow:0 2px 10px rgba(0,0,0,.35);transition:.15s}
.btn-accent:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-lg{padding:13px 26px;font-size:1.05rem;width:100%}
.btn-gold{background:linear-gradient(180deg,var(--gold),var(--gold-soft));color:#1a1208;
  padding:8px 18px;border-radius:10px;font-weight:800}
.btn-gold-sm{background:transparent;color:var(--gold);border:1px solid var(--gold-soft);
  padding:7px 12px;border-radius:9px;font-weight:700;cursor:pointer}
.btn-outline-gold{border:1px solid var(--gold-soft);color:var(--gold);padding:10px 20px;border-radius:10px;font-weight:700}
.btn-outline-gold:hover{background:rgba(212,175,55,.08)}

.wrap{max-width:1080px;margin:0 auto;padding:26px 18px 60px}
.sec-title{margin:28px 0 16px;font-size:1.4rem;color:var(--text);border-left:3px solid var(--accent);padding-left:12px}

/* ── hero ── */
.hero{border-radius:18px;padding:54px 32px;margin-bottom:14px;
  background:linear-gradient(120deg, rgba(138,15,34,.55), rgba(23,14,18,.6)), var(--card);
  border:1px solid var(--border);position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;inset:0;background:
  radial-gradient(600px 240px at 80% -40px, rgba(212,175,55,.14), transparent 70%)}
.hero-inner{position:relative;z-index:1;max-width:560px}
.hero h1{font-size:2.1rem;margin-bottom:10px;color:var(--text)}
.hero p{color:var(--text-dim);margin-bottom:22px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}

/* ── models grid ── */
.models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.model-card{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;
  transition:.18s;display:block}
.model-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.4)}
.mc-banner{height:96px;background:linear-gradient(120deg,var(--accent-dark),#2a0f16);background-size:cover;background-position:center}
.mc-avatar{width:64px;height:64px;border-radius:50%;margin:-32px 0 0 16px;border:3px solid var(--card);
  background:linear-gradient(135deg,var(--accent),var(--accent-dark));background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.4rem;color:var(--text)}
.mc-body{padding:10px 16px 16px}
.mc-name{font-weight:700;color:var(--text)}
.mc-sub{color:var(--gold);font-size:.85rem;margin-top:2px}

/* ── profile (OF-стиль) ── */
.profile{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.pf-banner{height:200px;background:linear-gradient(120deg,var(--accent-dark),#240e15);background-size:cover;background-position:center}
.pf-head{display:flex;align-items:flex-end;gap:18px;padding:0 24px 18px;flex-wrap:wrap}
.pf-avatar{width:120px;height:120px;border-radius:50%;margin-top:-60px;border:4px solid var(--card);
  background:linear-gradient(135deg,var(--accent),var(--accent-dark));background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:2.4rem;color:var(--text)}
.pf-meta{flex:1;min-width:200px;padding-bottom:4px}
.pf-name{font-size:1.5rem;font-weight:800;color:var(--text)}
.verified{color:var(--gold);font-size:1rem}
.pf-bio{color:var(--text-dim);margin-top:4px}
.pf-actions{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.badge-active{color:#7ee0a0;border:1px solid #2e6b46;padding:8px 14px;border-radius:10px;font-size:.9rem}
.tip-form{display:flex;gap:6px}
.tip-input{width:70px;background:#0e0709;border:1px solid var(--border);border-radius:9px;color:var(--text);padding:7px 10px}

/* ── feed / posts ── */
.feed{padding:18px 24px 26px;display:flex;flex-direction:column;gap:18px}
.post{background:#120a0e;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.post-top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}
.post-title{font-weight:700;color:var(--text)}
.tag{font-size:.72rem;padding:3px 9px;border-radius:20px;font-weight:700}
.tag-free{background:#1d3b2a;color:#7ee0a0}
.tag-subs{background:#3a1620;color:#ed8a9a}
.tag-ppv{background:rgba(212,175,55,.16);color:var(--gold)}
.post-media iframe{width:100%;aspect-ratio:16/9;border:0;display:block}
.media-placeholder{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;
  background:#0c0608;color:#5a4750;font-size:2rem}
.post-body{padding:14px 16px;color:var(--text-dim)}
.post-locked{position:relative;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}
.lock-blur{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:blur(14px) brightness(.5) saturate(.9);transform:scale(1.12)}
.lock-overlay{position:relative;z-index:1;text-align:center}
.lock-ico{font-size:2.2rem;margin-bottom:12px;opacity:.8}

/* ── shop ── */
.shop-head{margin-bottom:18px}
.shop-head h1{color:var(--text);margin-bottom:6px}
.shop-head p{color:var(--text-dim)}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.prod-card{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:.18s}
.prod-card:hover{border-color:var(--gold-soft);transform:translateY(-3px)}
.pc-photo{aspect-ratio:1;background:#160a0f;display:flex;align-items:center;justify-content:center}
.pc-ph-placeholder,.prod-ph-big{font-size:3rem;opacity:.5}
.pc-body{padding:12px 14px}
.pc-title{font-weight:700;color:var(--text)}
.pc-model{color:var(--gold);font-size:.82rem;margin:2px 0 8px}
.pc-row{display:flex;justify-content:space-between;align-items:center}
.pc-price{font-weight:800;color:var(--text)}
.pc-size{color:var(--text-dim);font-size:.85rem}

/* ── product ── */
.product{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.prod-gallery{background:var(--card);border:1px solid var(--border);border-radius:16px;aspect-ratio:1;
  display:flex;align-items:center;justify-content:center}
.prod-info h1{color:var(--text);margin:4px 0 10px}
.prod-model{color:var(--gold);font-weight:700}
.prod-price{font-size:1.8rem;font-weight:800;color:var(--text);margin-bottom:8px}
.prod-size{color:var(--text-dim);margin-bottom:14px}
.prod-desc{color:var(--text-dim);margin-bottom:20px}
.prod-note{color:#7a6770;font-size:.82rem;margin-top:12px}

/* ── cart ── */
.cart{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}
.cart-items,.checkout{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px}
.cart-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.cr-ph{font-size:1.6rem}.cr-title{flex:1}.cr-price{font-weight:700;color:var(--text)}
.cart-total{text-align:right;padding-top:14px;font-size:1.1rem}
.checkout h3{color:var(--text);margin-bottom:12px}
.checkout input{width:100%;background:#0e0709;border:1px solid var(--border);border-radius:10px;
  color:var(--text);padding:11px 13px;margin-bottom:10px}

/* ── login ── */
.login{display:flex;justify-content:center;padding:50px 0}
.login-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:40px;
  text-align:center;max-width:420px;width:100%}
.login-sub{color:var(--text-dim);margin-bottom:24px}
.btn-patreon{display:flex;align-items:center;justify-content:center;gap:10px;background:#ff424d;color:var(--text);
  padding:14px;border-radius:12px;font-weight:800;font-size:1.05rem}
.btn-patreon:hover{filter:brightness(1.06)}
.login-note{color:#7a6770;font-size:.85rem;margin-top:16px}

.err{background:#3a1620;border:1px solid var(--accent);color:#ed8a9a;padding:10px 14px;border-radius:10px;margin-bottom:14px}
.empty{color:var(--text-mute);padding:30px 0}
.foot{text-align:center;color:#6a565f;padding:30px;border-top:1px solid var(--border);font-size:.85rem}

/* ── WH hero (главный канал) ── */
.wh-hero{position:relative;border-radius:20px;overflow:hidden;margin-bottom:26px;
  border:1px solid rgba(212,175,55,.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09), inset 0 -2px 0 rgba(0,0,0,.55),
    inset 0 0 0 1px rgba(0,0,0,.45), 0 16px 42px rgba(0,0,0,.6), 0 2px 0 rgba(212,175,55,.18)}
.wh-hero-bg{position:absolute;inset:0;background:
  radial-gradient(120% 95% at 82% -12%, rgba(212,175,55,.14), transparent 55%),
  linear-gradient(135deg,#241019,#130a10 58%,#0d0710)}
.wh-hero:after{content:"";position:absolute;inset:0;background:
  radial-gradient(620px 280px at 86% -50px, rgba(212,175,55,.12), transparent 70%)}
.wh-hero-inner{position:relative;z-index:1;padding:38px 40px;max-width:560px}
.wh-brand{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.wh-logo{width:84px;height:84px;border-radius:50%;background-size:cover;background-position:center;flex:0 0 auto;
  border:3px solid var(--gold);box-shadow:0 6px 22px rgba(0,0,0,.55),0 0 0 4px rgba(212,175,55,.12)}
.wh-logo-ph{display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--gold);
  background:linear-gradient(135deg,#2a0e16,#160a10);font-size:1.5rem}
.wh-brand-tx{min-width:0}
.wh-wordmark{font-size:1.75rem;font-weight:800;letter-spacing:1.5px;line-height:1.05}
.wh-kicker{color:var(--gold);font-weight:700;letter-spacing:2px;font-size:.8rem;margin-bottom:6px;text-transform:uppercase}
.wh-hero-title{font-size:2.8rem;letter-spacing:2px;margin-bottom:10px}
.wh-hero-sub{color:var(--text-dim);margin-bottom:22px;font-size:1.05rem}

/* ── row heads ── */
.row-head{display:flex;align-items:baseline;justify-content:space-between;margin:30px 0 14px}
.row-head h2{font-size:1.35rem;color:var(--text);border-left:3px solid var(--accent);padding-left:12px}
.row-more{color:var(--gold);font-size:.9rem}
.row-note{color:var(--text-mute);font-size:.85rem}

/* ── video grid / cards ── */
.vid-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.vid-card{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:.16s}
.vid-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 16px 36px rgba(0,0,0,.5)}
.vc-thumb{position:relative;aspect-ratio:16/10;overflow:hidden}
.vc-thumb-bg{position:absolute;inset:0;background:linear-gradient(135deg,#2a0e16,#160a10 60%)}
.vc-thumb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  background:linear-gradient(135deg,#2a0e16,#160a10 60%)}
.vc-thumb-img.noimg{opacity:0}
.vc-prev{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
  transition:opacity .25s;z-index:1}
.vc-locked .vc-thumb-bg,.vc-locked .vc-thumb-img{filter:blur(10px) brightness(.55) saturate(.92);transform:scale(1.12)}
.feed-tabs{display:flex;gap:6px;flex-shrink:0}
.feed-tabs a{padding:6px 14px;border-radius:20px;border:1px solid var(--border);color:var(--text-mute);
  font-size:.84rem;font-weight:600;transition:.15s;white-space:nowrap}
.feed-tabs a:hover{border-color:var(--accent);color:var(--text)}
.feed-tabs a.on{background:var(--accent);border-color:var(--accent);color:var(--text)}
.btn-ghost.is-disabled{opacity:.5;color:#7c6f74;cursor:not-allowed;pointer-events:none;
  border-style:dashed;text-align:center}
.soon{font-size:.6rem;text-transform:uppercase;letter-spacing:1px;border:1px solid currentColor;
  border-radius:10px;padding:1px 6px;margin-left:8px;vertical-align:middle;opacity:.85}
.s-discount{display:flex;align-items:center;gap:9px;margin:8px 12px 0;padding:10px 13px;border-radius:12px;
  text-decoration:none;background:linear-gradient(135deg,rgba(212,175,55,.2),rgba(192,21,48,.16));
  border:1px solid var(--gold-soft);color:var(--gold);font-weight:700;font-size:.88rem}
.s-discount:hover{filter:brightness(1.15)}
.discount-banner{display:flex;align-items:center;gap:14px;margin:0 0 22px;padding:14px 18px;border-radius:14px;
  text-decoration:none;background:linear-gradient(120deg,rgba(212,175,55,.16),rgba(192,21,48,.16));
  border:1px solid var(--gold-soft);color:var(--text-dim)}
.discount-banner:hover{filter:brightness(1.1)}
.db-ic{font-size:1.5rem}.db-tx{flex:1}.db-tx b{color:var(--gold)}
.db-go{color:var(--gold);font-weight:800;white-space:nowrap}
.vc-play{position:absolute;inset:0;margin:auto;width:54px;height:54px;border-radius:50%;
  background:rgba(192,21,48,.92);color:var(--text);display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;box-shadow:0 6px 20px rgba(192,21,48,.5);transition:.16s}
.vc-play.big{width:70px;height:70px;font-size:1.7rem;position:static;margin:0 auto 12px}
.vid-card:hover .vc-play{transform:scale(1.12)}
.vc-lock{position:absolute;inset:0;margin:auto;width:46px;height:46px;display:flex;align-items:center;
  justify-content:center;font-size:1.5rem;opacity:.92}
.vc-dur{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.78);color:var(--text);
  font-size:.74rem;padding:2px 7px;border-radius:6px}
.vc-badge{position:absolute;top:8px;left:8px;font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:20px}
.vc-free{background:#1d3b2a;color:#7ee0a0}
.vc-ppv{background:rgba(212,175,55,.92);color:#1a1208}
.vc-meta{padding:11px 13px}
.vc-title{font-weight:700;color:var(--text);font-size:.95rem;line-height:1.3}
.vc-by{color:var(--gold);font-size:.78rem;margin-top:3px}

/* ── recommendation cards (доп-модели) ── */
.rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.rec-card{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:.16s}
.rec-card:hover{transform:translateY(-3px);border-color:var(--gold-soft)}
.rec-banner{height:84px;background:linear-gradient(120deg,var(--accent-dark),#240e15);background-size:cover;background-position:center}
.rec-avatar{width:58px;height:58px;border-radius:50%;margin:-29px 0 0 16px;border:3px solid var(--card);
  background:linear-gradient(135deg,var(--accent),var(--accent-dark));background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--text)}
.rec-body{padding:8px 16px 16px}
.rec-name{font-weight:700;color:var(--text)}
.rec-tag{color:var(--text-mute);font-size:.82rem;margin:2px 0 10px}
.rec-cta{color:var(--gold);font-size:.85rem;font-weight:600}

/* ── watch page ── */
.watch{display:grid;grid-template-columns:1fr 320px;gap:24px}
.player{background:#000;border:1px solid var(--border);border-radius:14px;overflow:hidden;aspect-ratio:16/9;position:relative}
.player iframe{width:100%;height:100%;border:0}
.player-ph,.player-lock{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#7a6770}
.watch-title{font-size:1.4rem;color:var(--text);margin:16px 0 12px}
.watch-by{display:flex;align-items:center;gap:12px;padding:14px;background:var(--card);border:1px solid var(--border);border-radius:12px}
.wb-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-dark));
  display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--text)}
.wb-info{flex:1}.wb-name{font-weight:700;color:var(--text)}.wb-sub{color:var(--text-mute);font-size:.82rem}
.watch-body{color:var(--text-dim);padding:16px 2px}
.lock-hint{margin-top:14px;color:var(--text-mute);font-size:.85rem}
.lock-hint a{color:var(--gold)}
.watch-side .side-title{font-weight:700;color:var(--text);margin-bottom:12px}
.side-card{display:flex;gap:10px;margin-bottom:12px}
.sc-thumb{position:relative;width:120px;aspect-ratio:16/10;border-radius:9px;overflow:hidden;flex-shrink:0}
.sc-lock{position:absolute;inset:0;margin:auto;width:30px;height:30px;display:flex;align-items:center;justify-content:center}
.sc-title{font-size:.88rem;color:var(--text);font-weight:600;line-height:1.25}
.sc-by{color:var(--gold);font-size:.76rem;margin-top:3px}

/* ── auth extras ── */
.notice{background:rgba(212,175,55,.12);border:1px solid var(--gold-soft);color:var(--gold);
  padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:.9rem}
.or-divider{display:flex;align-items:center;gap:12px;color:#6a565f;margin:18px 0;font-size:.82rem}
.or-divider:before,.or-divider:after{content:"";flex:1;height:1px;background:var(--border)}
.btn-tg{display:flex;align-items:center;justify-content:center;gap:8px;background:#2aabee;color:var(--text);
  padding:13px;border-radius:12px;font-weight:700;margin-bottom:10px}
.btn-ghost{display:block;text-align:center;color:var(--text-dim);padding:12px;border:1px solid var(--border);border-radius:12px}
.pat-ico{display:inline-flex;width:22px;height:22px;border-radius:50%;background:#fff;color:#ff424d;
  align-items:center;justify-content:center;font-weight:900;font-size:.8rem}
.reg-form input{width:100%;background:#0e0709;border:1px solid var(--border);border-radius:10px;color:var(--text);padding:12px 13px;margin-bottom:10px}

@media(max-width:880px){
  .product,.cart{grid-template-columns:1fr}
  .hero h1{font-size:1.6rem}
  .watch{grid-template-columns:1fr}
  .wh-hero-title{font-size:2rem}
  .sidebar{transform:translateX(-100%);transition:transform .25s;box-shadow:0 0 40px rgba(0,0,0,.6)}
  .sidebar.open,body.nav-open .sidebar{transform:translateX(0)}
  .content{margin-left:0;padding:64px 14px 60px}
  .wh-hero-inner{padding:24px 16px;max-width:none}   /* мобилка: убрать пустую полосу слева у героя */
  .mobile-burger{display:block}
  .mobile-auth{display:flex}
  body.nav-open .mobile-auth{display:none}   /* при открытом меню верхние кнопки прячем */
  .s-logo{padding-left:58px}            /* чтобы бургер не налезал на логотип */
  .row-head{flex-direction:column;align-items:flex-start;gap:10px}  /* заголовок над вкладками */
  .row-head h2{font-size:1.2rem}
  .nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:55;
    opacity:0;visibility:hidden;transition:.2s}
  body.nav-open .nav-backdrop{opacity:1;visibility:visible}
}
.tier-group{color:var(--gold);font-weight:800;font-size:.82rem;padding:10px 8px 4px;
  display:flex;align-items:baseline;gap:8px}
.tier-group span{color:var(--text-mute);font-weight:500;font-size:.72rem;text-transform:none;letter-spacing:0}

/* ── subscribe popup (cheapest → all tiers) ── */
.subs-pop{position:relative;display:inline-block}
.subs-pop summary{list-style:none;cursor:pointer;display:inline-block}
.subs-pop summary::-webkit-details-marker{display:none}
.tiers-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:150;backdrop-filter:blur(2px);cursor:pointer}
.tiers-x{position:absolute;top:9px;right:11px;background:transparent;border:0;color:var(--text-mute);font-size:1.25rem;cursor:pointer;z-index:202;line-height:1}
.tiers-x:hover{color:var(--text)}
.tiers-menu{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200;
  width:360px;max-width:92vw;background:var(--card);border:1px solid var(--gold-soft);border-radius:16px;
  padding:16px;box-shadow:0 24px 60px rgba(0,0,0,.7)}
.tiers-menu .tiers-head{font-size:1.05rem;color:var(--text);text-transform:none;letter-spacing:0;
  font-weight:700;padding:2px 6px 12px}
.tier-row{border:1px solid var(--border);margin-bottom:8px}
.tiers-head{color:var(--text-mute);font-size:.78rem;text-transform:uppercase;letter-spacing:1px;padding:4px 8px 8px}
.tier-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;
  border-radius:10px;transition:.13s}
.tier-row:hover{background:rgba(192,21,48,.14)}
.tier-name{font-weight:600;color:var(--text)}
.tier-price{font-weight:800;color:var(--gold)}
.tier-price span{color:var(--text-mute);font-weight:500;font-size:.8rem}
.tiers-foot{color:#7a6770;font-size:.8rem;padding:10px 8px 4px;border-top:1px solid var(--border);margin-top:6px}
.tiers-foot a{color:var(--gold)}

/* профиль: сетка видео */
.feed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;padding:20px 24px 26px}

/* ── billing UI (крипта/скидка/способы оплаты) ── */
.pay-methods{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:10px 0}
.pay-m{font-size:.74rem;font-weight:700;padding:5px 10px;border-radius:18px;border:1px solid var(--border);color:var(--text-mute)}
.pay-m.on{background:rgba(212,175,55,.16);border-color:var(--gold-soft);color:var(--gold)}
.soon-m{opacity:.5}
.soon-m i{font-style:normal;font-size:.58rem;text-transform:uppercase;letter-spacing:.5px;margin-left:3px}
.off-pill{font-size:.64rem;font-weight:800;background:var(--gold);color:#1a1208;padding:2px 8px;border-radius:12px;margin-left:8px}
.crypto-off-badge{display:inline-block;background:rgba(212,175,55,.16);border:1px solid var(--gold-soft);color:var(--gold);
  font-weight:800;font-size:.82rem;padding:6px 14px;border-radius:20px;margin-bottom:12px}
.crypto40-banner{background:linear-gradient(120deg,rgba(212,175,55,.18),rgba(192,21,48,.14));border:1px solid var(--gold-soft);
  border-radius:14px;padding:12px 18px;margin-bottom:12px;color:var(--text-dim);text-align:center}
.crypto40-banner b{color:var(--gold)}
.lock-actions{display:flex;flex-direction:column;gap:8px;align-items:center;width:100%}
.lock-actions form{width:100%;max-width:380px;margin:0}
.lock-actions .btn-lg{width:100%}
.btn-lg s,.tier-price s{font-weight:500;opacity:.5;margin-right:6px}
.tier-row-f{margin:0;width:100%}
button.tier-row{width:100%;display:flex;align-items:center;justify-content:space-between;
  background:transparent;border:0;font:inherit;cursor:pointer;text-align:left}
button.tier-row:hover{background:rgba(255,255,255,.04)}
.login-foot-note{margin-top:14px;color:#c6a96a;font-size:.82rem;text-align:center;line-height:1.45}
.reg-form{display:flex;flex-direction:column;gap:8px;margin:6px 0}
.reg-form input{background:#120a0f;border:1px solid var(--border);border-radius:10px;padding:11px 13px;color:var(--text);font:inherit}
.reg-form input:focus{outline:none;border-color:var(--accent)}
.err{background:#2a1118;color:#ed8a9a;border:1px solid #4a1f2a;border-radius:8px;padding:8px 12px;margin:8px 0;font-size:.85rem}

.tg-login-wrap{display:flex;justify-content:center;margin:8px 0}

/* ── лайки + комментарии ─────────────────────────────────────────────── */
.watch-actions{display:flex;align-items:center;gap:14px;padding:10px 2px 2px}
.like-btn{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);
  color:var(--text-dim);border-radius:22px;padding:8px 16px;font:inherit;font-weight:700;cursor:pointer;transition:.15s}
.like-btn:hover{border-color:var(--gold-soft)}
.like-btn .like-ic{font-size:1.1rem;line-height:1;transition:.15s}
.like-btn.liked{border-color:var(--accent);color:#ff7b93;background:rgba(192,21,48,.12)}
.like-btn.liked .like-ic{color:var(--accent);transform:scale(1.12)}
.like-btn:disabled{opacity:.6}
.cmt-jump{color:var(--text-dim);font-size:.9rem;font-weight:600}
.cmt-jump:hover{color:var(--gold)}

.comments{margin-top:22px;border-top:1px solid var(--border);padding-top:18px}
.cmt-h{font-size:1.05rem;margin:0 0 14px}
.cmt-h span{color:var(--gold);font-weight:700}
.cmt-form{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px}
.cmt-form textarea{flex:1;background:#120a0f;border:1px solid var(--border);border-radius:12px;
  padding:10px 13px;color:var(--text);font:inherit;resize:none;min-height:42px;line-height:1.4}
.cmt-form textarea:focus{outline:none;border-color:var(--accent)}
.cmt-form .btn-gold-sm{align-self:flex-start;white-space:nowrap}
.cmt-login{display:inline-block;background:var(--card);border:1px solid var(--gold-soft);color:var(--gold);
  border-radius:10px;padding:11px 18px;font-weight:700;margin-bottom:18px}
.cmt-list{display:flex;flex-direction:column;gap:16px}
.cmt{display:flex;gap:11px}
.cmt-av{flex:none;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#3a2230,#241019);
  background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;
  font-weight:800;color:var(--gold);font-size:.95rem}
.cmt-av.me{width:42px;height:42px}
.cmt-bd{flex:1;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:9px 13px}
.cmt-author{font-weight:700;font-size:.86rem;color:var(--text-dim);margin-bottom:2px}
.cmt-text{color:var(--text-dim);font-size:.92rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.cmt-empty{color:var(--text-mute);font-size:.9rem;padding:6px 0}
.cmt-author{display:flex;align-items:center;gap:8px}
.cmt-del-f{display:inline;margin:0}
.cmt-del{background:none;border:none;color:#7a6a72;cursor:pointer;font-size:.78rem;line-height:1;
  padding:2px 4px;border-radius:5px;opacity:0;transition:.15s}
.cmt:hover .cmt-del{opacity:1}
.cmt-del:hover{color:var(--accent);background:rgba(192,21,48,.12)}

/* ── тир-система: переключатель периода, бейджи уровней, lock-need ──────── */
.period-sw{display:flex;gap:6px;background:#120a0f;border:1px solid var(--border);border-radius:10px;
  padding:4px;margin:4px 0 10px}
.per-btn{flex:1;background:none;border:none;color:var(--text-mute);font:inherit;font-weight:700;
  font-size:.85rem;padding:7px 8px;border-radius:7px;cursor:pointer;transition:.15s}
.per-btn.on{background:var(--accent);color:var(--text)}
.per-btn .yr-off{font-size:.7rem;font-weight:800;color:var(--gold)}
.per-btn.on .yr-off{color:#ffe9a8}
.tier-price .yr-mo{display:block;font-size:.68rem;color:var(--text-mute);font-weight:600;font-style:normal}
.vc-badge.vc-nu{background:rgba(192,21,48,.85);color:var(--text)}
.vc-badge.vc-bel{background:rgba(212,175,55,.85);color:#1a1208}
.lock-need{display:inline-block;background:rgba(0,0,0,.45);border:1px solid var(--gold-soft);color:var(--gold);
  font-weight:700;font-size:.82rem;padding:5px 12px;border-radius:20px;margin-bottom:12px}

/* ── модалка «два пути»: Patreon (бесплатно) / крипта (−40%) ────────────── */
.tiers-menu{max-height:86vh;overflow-y:auto}
.path{border:1px solid var(--border);border-radius:12px;padding:12px;margin:4px 0}
.path-patreon{background:rgba(212,175,55,.06);border-color:var(--gold-soft)}
.path-t{font-weight:800;font-size:.95rem;margin-bottom:3px}
.path-d{color:var(--text-dim);font-size:.84rem;line-height:1.4;margin-bottom:10px}
.path-d b{color:var(--gold)}
.path-btn{display:block;text-align:center;padding:10px;border-radius:10px;font-weight:700}
.path-or{display:flex;align-items:center;text-align:center;color:var(--text-mute);font-size:.78rem;
  text-transform:uppercase;letter-spacing:1px;margin:10px 0 6px}
.path-or::before,.path-or::after{content:"";flex:1;height:1px;background:var(--border)}
.path-or span{padding:0 12px}
.path-crypto{border-color:var(--accent-dark);background:rgba(192,21,48,.05)}
/* промокод в модалке подписки */
.promo-row{display:flex;align-items:center;gap:10px;margin:4px 0 8px;flex-wrap:wrap}
.promo-field{flex:1;min-width:160px;background:#120a0f;border:1px solid var(--border);border-radius:9px;
  color:var(--text);padding:9px 12px;font:inherit;text-transform:uppercase}
.promo-field:focus{outline:none;border-color:var(--gold-soft)}
.promo-msg{font-size:.82rem;font-weight:700}
.promo-msg.ok{color:#7ee0a0}.promo-msg.bad{color:#ed8a9a}
/* подсветка выбранного тира при клике по карточке */
.tier-row-f.tier-flash .tier-row{background:rgba(212,175,55,.18);box-shadow:inset 0 0 0 1px var(--gold-soft);
  border-radius:10px;animation:tierflash 1.8s ease}
@keyframes tierflash{0%{background:rgba(212,175,55,.34)}100%{background:rgba(212,175,55,.10)}}
.path-promo{background:rgba(192,21,48,.14);border:1px solid var(--gold-soft);color:var(--text-dim);
  border-radius:9px;padding:7px 10px;font-size:.8rem;line-height:1.35;margin-bottom:10px}
.path-promo b{color:var(--gold)}

/* кнопка установки PWA — как обычный пункт меню, без рамки */
/* «Стать креатором» — ведёт на лендинг-заглушку /creator (кабинет — в будущем) */
.s-creator{display:flex;align-items:center;gap:11px;margin:6px 12px 0;padding:11px 14px;border-radius:10px;
  color:var(--text-dim);font-size:.95rem;font-weight:700;text-decoration:none;
  border:1px dashed var(--gold-soft);transition:.13s}
.s-creator:hover{color:var(--text);background:rgba(212,175,55,.08)}
.s-creator.on{color:var(--text);background:rgba(212,175,55,.1)}
.s-creator span{flex:1}
.s-soon{font-style:normal;font-size:.58rem;text-transform:uppercase;letter-spacing:1px;color:var(--gold);
  border:1px solid var(--gold-soft);border-radius:10px;padding:1px 6px}
.s-getapp{display:flex;align-items:center;gap:11px;margin:6px 12px 0;padding:11px 14px;border-radius:10px;
  color:var(--text-dim);font-size:.95rem;font-weight:700;text-decoration:none;
  border:1px solid var(--border);transition:.13s}
.s-getapp:hover{color:var(--text);background:rgba(255,255,255,.05)}
.s-getapp.on{color:var(--text);background:rgba(255,255,255,.06)}
.s-getapp span{flex:1}

/* ── страница «Become a creator» ── */
.cr-wrap{max-width:680px;margin:0 auto;padding:6px 0 60px}
.cr-hero{text-align:center;padding:14px 0 26px}
.cr-kicker{color:var(--gold);font-weight:800;letter-spacing:2px;font-size:.76rem;text-transform:uppercase}
.cr-title{font-size:2.1rem;margin:12px 0;line-height:1.15}
.cr-title span{background:linear-gradient(92deg,#fff,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.cr-sub{color:var(--text-dim);font-size:1rem;line-height:1.55;max-width:520px;margin:0 auto 16px}
.cr-soon{display:inline-block;background:rgba(212,175,55,.14);border:1px solid var(--gold-soft);color:var(--gold);
  font-weight:800;font-size:.82rem;padding:6px 14px;border-radius:999px}
.cr-feats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 24px}
.cr-feat{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px}
.cr-ic{font-size:1.5rem;margin-bottom:6px}
.cr-feat b{display:block;color:var(--text);margin-bottom:3px}
.cr-feat span{color:var(--text-mute);font-size:.86rem;line-height:1.4}
.cr-form{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;
  display:flex;flex-direction:column;gap:10px}
.cr-form-h{font-weight:800;color:var(--text);font-size:1.1rem;margin-bottom:2px}
.cr-in{background:#120a0f;border:1px solid var(--border);border-radius:10px;color:var(--text);padding:12px 13px;font:inherit;width:100%}
.cr-in:focus{outline:none;border-color:var(--accent)}
.cr-btn{width:100%;margin-top:4px}
.cr-note{color:var(--text-mute);font-size:.8rem;margin:0;text-align:center}
.cr-thanks{background:rgba(58,107,74,.18);border:1px solid #3a6b4a;color:#9fe0b6;border-radius:14px;
  padding:18px;text-align:center;font-weight:600}
@media(max-width:560px){.cr-feats{grid-template-columns:1fr}.cr-title{font-size:1.7rem}}
.s-install{display:flex;align-items:center;gap:12px;width:100%;margin-top:2px;background:none;border:none;
  color:var(--gold);font:inherit;font-weight:700;font-size:.95rem;padding:10px 14px;cursor:pointer;text-align:left}
.s-install:hover{color:var(--text)}
.s-admin{color:var(--text-dim)}
.s-refund{display:block;color:var(--text-mute);font-size:.82rem;margin-top:6px}
.s-refund:hover{color:var(--gold)}

/* форма возврата — чистая вёрстка (лейблы блоками, поля на всю ширину) */
.rf-wrap{max-width:560px;margin:0 auto;padding:6px 0 50px}
.rf-sub{color:var(--text-dim);font-size:.92rem;line-height:1.5;margin:8px 0 18px}
.rf-form{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);
  border-radius:14px;padding:18px}
.rf-l{display:block;color:var(--text-dim);font-size:.86rem;font-weight:600;margin:14px 0 5px}
.rf-l:first-child{margin-top:0}
.rf-req{color:var(--accent)}
.rf-opt{color:var(--text-mute);font-weight:400;font-size:.8rem}
.rf-in{display:block;width:100%;box-sizing:border-box;background:#120a0f;border:1px solid var(--border);
  border-radius:10px;padding:11px 13px;color:var(--text);font:inherit}
.rf-in:focus{outline:none;border-color:var(--accent)}
textarea.rf-in{resize:vertical;min-height:64px;line-height:1.4}
.rf-btn{margin-top:18px;width:100%}
.rf-note{color:var(--text-mute);font-size:.8rem;line-height:1.45;margin-top:14px}

/* ── панель заказа ношеного белья ─────────────────────────────────────── */
.worn{max-width:620px;margin:0 auto;padding:6px 0 60px}
.worn-hero{text-align:center;padding:8px 0 22px}
.worn-kicker{color:var(--gold);font-weight:700;letter-spacing:2px;font-size:.76rem;text-transform:uppercase}
.worn-title{font-size:2rem;margin:10px 0;line-height:1.12}
.worn-title span{color:var(--accent)}
.worn-sub{color:var(--text-dim);font-size:.95rem;line-height:1.55;max-width:480px;margin:0 auto}
.worn-form{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px}
.worn-modes{display:flex;gap:8px;margin-bottom:6px}
.wmode{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:#120a0f;
  border:1px solid var(--border);color:var(--text-dim);font:inherit;font-weight:700;
  font-size:.9rem;padding:13px 8px;border-radius:12px;cursor:pointer;transition:.15s}
.wmode small{font-weight:500;font-size:.68rem;color:var(--text-mute)}
.wmode.on{background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:var(--text);border-color:var(--accent)}
.wmode.on small{color:var(--text-dim)}
.wmode-desc{color:var(--text-dim);font-size:.84rem;line-height:1.45;margin:10px 0 4px;padding:10px 12px;
  background:#120a0f;border:1px solid var(--border);border-radius:10px}
.worn-photo{display:block;background:#120a0f;border:1px dashed var(--gold-soft);border-radius:10px;
  padding:12px 13px;color:var(--text-dim);font-size:.86rem;cursor:pointer;margin-top:6px}
.worn-photo>span:first-of-type{color:var(--text-dim);font-weight:600}
.worn-photo input{display:block;margin-top:8px;color:var(--text-dim);font-size:.82rem;max-width:100%}
.worn-step{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--text);margin:20px 0 8px;font-size:1rem}
.worn-step .wn{width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--text);font-size:.8rem;
  display:inline-flex;align-items:center;justify-content:center;flex:none}
.worn-opt{color:var(--text-mute);font-weight:400;font-size:.82rem}
.worn-hint{color:var(--text-mute);font-size:.82rem;margin:-2px 0 10px 34px}
.worn-in{display:block;width:100%;box-sizing:border-box;background:#120a0f;border:1px solid var(--border);
  border-radius:10px;padding:12px 13px;color:var(--text);font:inherit;margin-bottom:4px}
.worn-in:focus{outline:none;border-color:var(--accent)}
textarea.worn-in{resize:vertical;line-height:1.4}
.worn-days{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.wday{background:#120a0f;border:1px solid var(--border);border-radius:12px;padding:12px 4px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--text-dim);transition:.15s}
.wday b{font-size:1.25rem;color:var(--text);line-height:1}
.wday span{font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-mute)}
.wday i{font-style:normal;font-weight:800;color:var(--gold);font-size:.8rem;margin-top:3px}
.wday.on{border-color:var(--accent);background:rgba(192,21,48,.16)}
.worn-contact{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.wc{display:flex;align-items:center;gap:10px;background:#120a0f;border:1px solid var(--border);border-radius:10px;
  padding:12px 13px;cursor:pointer;color:var(--text-dim);font-size:.92rem}
.wc input{accent-color:var(--accent)}
.worn-total{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px;padding:14px 18px;
  background:linear-gradient(120deg,rgba(192,21,48,.18),rgba(212,175,55,.10));
  border:1px solid var(--gold-soft);border-radius:12px}
.wt-l{color:var(--text-dim);font-weight:600}
.wt-v{font-size:1.8rem;font-weight:800;color:var(--text)}
.wt-v small{font-size:.8rem;color:var(--gold);font-weight:700}
.worn-pay{width:100%}
.worn-note{color:var(--text-mute);font-size:.8rem;line-height:1.5;margin-top:14px;text-align:center}
.worn-promo{background:linear-gradient(120deg,rgba(192,21,48,.2),rgba(212,175,55,.14));
  border:1px solid var(--gold-soft);border-radius:12px;padding:11px 14px;text-align:center;
  color:var(--text-dim);font-size:.9rem;margin-bottom:14px}
.worn-promo b{color:var(--gold)}
.wday i s{color:var(--text-mute);font-weight:400;font-size:.66rem;margin-right:2px}

/* ── личные сообщения (чат) ───────────────────────────────────────────── */
.msg-wrap{max-width:640px;margin:0 auto;padding:6px 0 40px}
.msg-sub{color:var(--text-dim);font-size:.9rem;margin:6px 0 16px}
.msg-back{color:var(--gold);font-size:.85rem}
.msg-thread{display:flex;flex-direction:column;gap:8px;min-height:120px;margin-bottom:14px}
.msg{display:flex}
.msg-out{justify-content:flex-end}
.msg-in{justify-content:flex-start}
.msg-b{max-width:78%;padding:9px 13px;border-radius:14px;font-size:.92rem;line-height:1.4;
  white-space:pre-wrap;word-break:break-word}
.msg-out .msg-b{background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:var(--text);border-bottom-right-radius:4px}
.msg-in .msg-b{background:var(--card);border:1px solid var(--border);color:var(--text-dim);border-bottom-left-radius:4px}
.msg-form{display:flex;gap:8px;align-items:flex-end}
.msg-form textarea{flex:1;background:#120a0f;border:1px solid var(--border);border-radius:12px;padding:11px 13px;
  color:var(--text);font:inherit;resize:none;min-height:44px;line-height:1.4}
.msg-form textarea:focus{outline:none;border-color:var(--accent)}
.msg-form button{white-space:nowrap;padding:11px 18px}

/* пометка платного TG-канала у тира + кнопка открыть канал */
.tier-chan{display:inline-block;background:rgba(212,175,55,.16);color:var(--gold);font-size:.6rem;
  font-weight:800;padding:1px 7px;border-radius:10px;margin-left:6px;vertical-align:middle}
.chan-btn{display:inline-block;margin-top:8px}
.chan-pending{display:inline-block;margin-top:8px;background:rgba(212,175,55,.1);border:1px solid var(--gold-soft);
  color:var(--gold);font-size:.82rem;font-weight:600;padding:7px 12px;border-radius:10px}
@media(max-width:560px){.worn-days{grid-template-columns:repeat(3,1fr)}.worn-title{font-size:1.6rem}}

/* показать/скрыть пароль (глазик) */
.pw-wrap{position:relative;margin-bottom:10px}
.pw-wrap input{width:100%;margin-bottom:0;padding-right:44px}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;
  cursor:pointer;font-size:1.1rem;opacity:.65;padding:4px;line-height:1}
.pw-eye:hover{opacity:1}

/* center content on ultra-wide / fullscreen */
@media(min-width:1700px){
  .content{margin-left:calc(232px + (100vw - 1472px)/2)}
}


/* ── model filter bar ── */
.modelbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.mb-total{color:var(--text-mute);font-size:.85rem}
.mb-btn{margin-left:auto;background:var(--card);border:1px solid var(--border);color:var(--text);font-size:.9rem;padding:7px 13px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.mb-btn:hover{border-color:var(--gold-soft)}
.mb-c{color:var(--gold);font-weight:700}
.mb-caret{color:var(--text-mute);font-size:.75rem}
.mb-panel{flex-basis:100%;order:9;display:flex;flex-wrap:wrap;gap:8px;margin-top:2px;padding:12px;background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:12px}
.mb-panel[hidden]{display:none}
.mb-opt{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--border);border-radius:22px;cursor:pointer;font-size:.88rem;color:var(--text-dim);background:var(--card);user-select:none}
.mb-opt:hover{border-color:var(--gold-soft)}
.mb-opt:has(input:checked){background:rgba(192,21,48,.18);border-color:var(--accent)}
.mb-opt input{appearance:none;-webkit-appearance:none;width:17px;height:17px;border:1.5px solid var(--border);border-radius:5px;background:transparent;position:relative;cursor:pointer;flex:0 0 auto}
.mb-opt input:checked{background:var(--accent);border-color:var(--accent)}
.mb-opt input:checked::after{content:"\2713";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text);font-size:11px;font-weight:800;line-height:1}
.mb-name{font-weight:500}
.mb-n{color:var(--text-mute);font-size:.78rem}
.mb-chips{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.mb-chip{background:var(--gold-soft);border:0;color:#1a0a0e;font-weight:700;font-size:.82rem;padding:4px 10px;border-radius:20px;cursor:pointer}
.mb-chip:hover{filter:brightness(1.08)}
.mb-reset{background:transparent;border:0;color:var(--text-mute);font-size:.82rem;cursor:pointer;text-decoration:underline}
.mb-reset:hover{color:var(--text)}

/* ── премиум-шапка (гибрид: статы + подписка + тиры) ───────────────────── */
.wh-online{color:#37d27e;font-weight:700}
.wh-ver{color:#3aa9ff;font-size:1.1rem;vertical-align:middle}
.pf-premium{margin:-8px 0 22px}
.pf-stats{display:flex;flex-wrap:wrap;gap:14px 36px;padding:16px 4px;
  border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.pf-stats>div{display:flex;flex-direction:column;line-height:1.15}
.pf-stats b{color:var(--text);font-size:1.3rem;font-weight:800}
.pf-stats span{color:var(--text-mute);font-size:.8rem}
.pf-subbar{display:flex;align-items:center;gap:12px;margin:18px 0 2px;flex-wrap:wrap}
.pf-subbar .subs-pop{flex:1;min-width:240px}
.pf-subbar .subs-pop summary{display:block;width:100%;text-align:center;padding:15px;font-size:1.05rem;
  border-radius:999px;background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:var(--text);
  font-weight:800;box-shadow:0 12px 30px rgba(192,21,48,.4)}
.pf-subbar .subs-pop summary:hover{filter:brightness(1.07)}
.btn-tip{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:999px;
  padding:15px 24px;font-weight:700;white-space:nowrap}
.btn-tip:hover{border-color:var(--gold-soft);color:var(--gold)}
.pf-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:18px 0 4px}
.pf-tier{position:relative;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px 18px 16px;cursor:pointer}
.pft-go{color:var(--gold);font-weight:700;font-size:.84rem;margin-top:12px;opacity:.85}
.pf-tier:hover .pft-go{opacity:1}
.pf-tier.feat{border-color:var(--gold-soft);box-shadow:0 0 0 1px rgba(212,175,55,.22),0 18px 40px rgba(0,0,0,.35)}
.pft-pop{position:absolute;top:-10px;right:14px;background:var(--gold);color:#1a1208;font-size:.62rem;
  font-weight:900;letter-spacing:.5px;text-transform:uppercase;padding:3px 9px;border-radius:999px}
.pft-name{font-size:.74rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold);font-weight:800}
.pft-price{font-size:1.5rem;font-weight:800;color:var(--text);margin:6px 0 0}
.pft-price span{font-size:.82rem;color:var(--text-mute);font-weight:600}
.pft-desc{color:var(--text-mute);font-size:.84rem;line-height:1.45;margin-top:8px}
.cat-tabs{flex-wrap:wrap}

/* locked card overlay «Subscribe to unlock» + HD-метка */
.vc-unlock{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:9px}
.vu-lock{font-size:1.5rem;opacity:.95}
.vu-cta{background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:var(--text);font-weight:800;
  font-size:.78rem;padding:7px 15px;border-radius:999px;box-shadow:0 8px 20px rgba(192,21,48,.45)}
.vid-card:hover .vu-cta{filter:brightness(1.08)}
.vc-hd{position:absolute;bottom:8px;left:8px;background:var(--gold);color:#1a1208;font-size:.62rem;
  font-weight:900;padding:2px 6px;border-radius:4px;z-index:2}

/* ── photos grid ── */
.photo-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:11px}
.photo-tile{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;border:1px solid var(--border);
  background:linear-gradient(135deg,#2a0e16,#160a10);display:block}
.photo-tile img{width:100%;height:100%;object-fit:cover;transition:.18s}
.photo-tile:hover img{transform:scale(1.06)}
.photo-tile.ph-locked img{filter:blur(13px) brightness(.7) saturate(.9);transform:scale(1.16)}
.ph-lock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.2rem;z-index:2}
.ph-badge{position:absolute;top:7px;left:7px;background:#1d3b2a;color:#7ee0a0;font-size:.6rem;font-weight:800;
  padding:2px 7px;border-radius:20px;z-index:2}
.ph-count{position:absolute;bottom:7px;right:7px;background:rgba(0,0,0,.72);color:var(--text);font-size:.66rem;
  font-weight:700;padding:2px 7px;border-radius:6px;z-index:2}

/* ── страница фото-сета (галерея) ── */
.ps-wrap{max-width:1080px}
.ps-back{color:var(--gold);font-size:.88rem}
.ps-title{font-size:1.5rem;color:var(--text);margin:10px 0 12px}
.ps-by{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ps-av{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-dark)) center/cover;
  display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--text);flex:none}
.ps-name{font-weight:700;color:var(--text)}.ps-meta{color:var(--text-mute);font-size:.82rem}
.ps-cap{color:var(--text-dim);line-height:1.5;margin-bottom:16px;white-space:pre-wrap}
.ps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ps-cell{aspect-ratio:1;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:#160a10;display:block}
.ps-cell img{width:100%;height:100%;object-fit:cover;transition:.18s}
.ps-cell:hover img{transform:scale(1.05)}
.ps-lock{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);
  min-height:340px;display:flex;align-items:center;justify-content:center;background:#160a10}
.ps-lock-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(26px) brightness(.4) saturate(.9);transform:scale(1.15)}
.ps-lock-in{position:relative;z-index:1;text-align:center;padding:30px}
.ps-lock-ic{font-size:2.4rem;margin-bottom:12px}
.ps-lock-t{color:var(--text-dim);font-size:1.05rem;margin-bottom:18px;max-width:380px}
@media(max-width:880px){.ps-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.ps-grid{grid-template-columns:repeat(2,1fr)}}

/* ── лента-шортсы (Reels) ─────────────────────────────────────────────────── */
.reels-wrap{margin:-8px auto 0;max-width:460px}
.reels{height:calc(100vh - 70px);overflow-y:auto;scroll-snap-type:y mandatory;border-radius:16px;
  background:#000;border:1px solid var(--border);-webkit-overflow-scrolling:touch}
.reels::-webkit-scrollbar{width:0}
.reel{position:relative;height:100%;scroll-snap-align:start;display:flex;align-items:center;
  justify-content:center;overflow:hidden;background:#0a0608}
.reel-media{position:absolute;inset:0;display:block}
.reel-cover{width:100%;height:100%;object-fit:cover}
.reel-media iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:1}
.reel-playhint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:2.6rem;color:rgba(255,255,255,.85);pointer-events:none;text-shadow:0 4px 18px rgba(0,0,0,.6)}
.reel-video.playing .reel-playhint{display:none}
.reel-locked .reel-cover{filter:blur(20px) brightness(.45) saturate(.9);transform:scale(1.18)}
.reel-lock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text);
  font-weight:800;z-index:2;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.reel-photobadge{position:absolute;top:14px;right:14px;background:rgba(0,0,0,.6);color:var(--text);
  padding:3px 11px;border-radius:999px;font-size:.76rem;font-weight:700;z-index:2}
.reel-overlay{position:absolute;left:0;right:0;bottom:0;padding:20px 18px;z-index:3;
  background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.2) 70%,transparent)}
.reel-by{color:var(--gold);font-weight:800;font-size:.92rem}
.reel-title{color:var(--text);font-weight:600;margin:5px 0 10px;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.reel-cta{display:inline-block;color:var(--text);background:linear-gradient(180deg,#c22c55,#94213f);
  padding:9px 18px;border-radius:999px;font-weight:700;font-size:.86rem}
.reel-cta:hover{filter:brightness(1.08)}
.reel-cta.ghost{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3)}
.reel-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#0a0608;z-index:0}
.reel-lockbadge{position:absolute;top:14px;left:14px;background:rgba(0,0,0,.6);color:var(--gold);
  font-weight:800;font-size:.72rem;padding:4px 11px;border-radius:999px;z-index:2;
  border:1px solid rgba(212,175,55,.5)}
/* карточка-призыв подписаться */
.reel-ctacard{background:radial-gradient(120% 80% at 50% 0%,#3a0f1c,#0a0608 70%)}
.cta-in{position:relative;z-index:2;text-align:center;padding:30px 26px;max-width:340px}
.cta-emoji{font-size:2.6rem;margin-bottom:10px}
.cta-h{font-size:1.7rem;font-weight:800;color:var(--text);line-height:1.15}
.cta-h span{background:linear-gradient(92deg,#fff,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.cta-p{color:var(--text-dim);font-size:.95rem;line-height:1.5;margin:12px 0 20px}
.cta-btn{background:linear-gradient(180deg,#c22c55,#94213f);color:var(--text);border:0;border-radius:999px;
  padding:14px 30px;font-weight:800;font-size:1rem;cursor:pointer;box-shadow:0 10px 26px rgba(192,21,48,.4)}
.cta-btn:hover{filter:brightness(1.08)}
.cta-sec{display:block;margin-top:16px;color:var(--gold);font-size:.85rem;font-weight:600}
/* скрытая модалка подписки в ленте (триггер не нужен — открываем из CTA) */
.feed-sub{position:absolute;width:0;height:0;overflow:visible}
.feed-sub>.subs-pop>summary{display:none}
/* мутная заставка-призыв (реальный NU/бельё кадр под блюром) */
.reel-sub{background:radial-gradient(120% 80% at 50% 0%,#2a0c16,#0a0608 70%)}
.blurbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:blur(28px) brightness(.4) saturate(1.15);transform:scale(1.22);z-index:0}
.reel-sub .cta-in{z-index:2}
.cta-lk{font-size:2.3rem;margin-bottom:8px}
/* платный фото-сет в ленте: мутно + замок по центру */
.reel-photo.is-locked .reel-cover{filter:blur(22px) brightness(.5) saturate(.9);transform:scale(1.18)}
.reel-lockcenter{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:9px;text-align:center;padding:24px}
.reel-lockcenter .lk{font-size:2.1rem}
.reel-lockcenter .lkt{color:var(--text);font-weight:700;font-size:1rem}
.lk-actions{display:flex;flex-direction:column;align-items:center;gap:7px;margin-top:6px}
.lk-or{color:var(--text-dim);font-size:.82rem}
/* соц-рейл рилса (лайк / коммент / шер) */
.reel-snd{position:absolute;top:14px;right:14px;z-index:5;width:34px;height:34px;border:0;border-radius:50%;
  background:rgba(0,0,0,.45);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:.14s}
.reel-snd:hover{background:rgba(0,0,0,.62)}
.reel-snd svg{width:18px;height:18px;fill:#fff}
.reel-snd .snd-on{display:none}
.reel-snd.on .snd-off{display:none}
.reel-snd.on .snd-on{display:block}
/* двойной-тап лайк — всплывающее сердце */
.reel-heart{position:absolute;top:50%;left:50%;z-index:6;pointer-events:none;
  animation:heartpop .75s ease forwards;filter:drop-shadow(0 6px 18px rgba(0,0,0,.5))}
.reel-heart svg{width:96px;height:96px;fill:#ff3b5c}
@keyframes heartpop{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}
  25%{opacity:1;transform:translate(-50%,-50%) scale(1.18)}
  45%{transform:translate(-50%,-50%) scale(.95)}
  70%{opacity:1;transform:translate(-50%,-50%) scale(1.02)}
  100%{opacity:0;transform:translate(-50%,-58%) scale(1.05)}}
.reel-actions{position:absolute;right:10px;bottom:120px;z-index:4;display:flex;flex-direction:column;gap:16px}
.ra-btn{background:none;border:0;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:3px;
  cursor:pointer;font:inherit}
.ra-ic{width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.42);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;font-size:1.35rem;transition:.14s}
.ra-ic svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round}
.ra-btn:hover .ra-ic{background:rgba(0,0,0,.6)}
.ra-like.on{color:#ff3b5c}
.ra-like.on .ra-ic{transform:scale(1.08)}
.ra-like.on .ra-ic svg{fill:#ff3b5c;stroke:#ff3b5c}
.ra-save.on{color:var(--gold)}
.ra-save.on .ra-ic svg{fill:var(--gold);stroke:var(--gold)}
.ra-n{font-size:.72rem;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.6);min-height:.9em}
/* нижний лист комментариев */
.cmt-sheet[hidden]{display:none}
.cmt-sheet{position:fixed;inset:0;z-index:160}
.cs-back{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.cs-panel{position:absolute;left:0;right:0;bottom:0;max-width:460px;margin:0 auto;background:var(--card);
  border:1px solid var(--border);border-radius:18px 18px 0 0;max-height:72vh;display:flex;flex-direction:column;
  box-shadow:0 -10px 40px rgba(0,0,0,.5)}
.cs-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);color:var(--text)}
.cs-x{background:none;border:0;color:var(--text-mute);font-size:1.2rem;cursor:pointer}
.cs-list{flex:1;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:12px}
.cs-c{display:flex;flex-direction:column;gap:2px}
.cs-c b{color:var(--gold);font-size:.84rem}
.cs-c span{color:var(--text-dim);font-size:.92rem;line-height:1.4;word-break:break-word}
.cs-empty{color:var(--text-mute);font-size:.9rem;text-align:center;padding:18px 0}
.cs-form{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--border)}
.cs-in{flex:1;background:#120a0f;border:1px solid var(--border);border-radius:999px;color:var(--text);padding:11px 16px;font:inherit}
.cs-in:focus{outline:none;border-color:var(--accent)}
.cs-send{background:linear-gradient(180deg,#c22c55,#94213f);color:var(--text);border:0;border-radius:999px;padding:11px 20px;font-weight:700;cursor:pointer}
@media(max-width:880px){
  .reels-wrap{max-width:none;margin:-58px -14px 0}
  .reels{height:100vh;border-radius:0;border:0}
}

/* ── лёгкие hover-анимации (плавно, ненавязчиво) ──────────────────────────── */
.btn-accent,.btn-outline-gold,.btn-gold,.btn-gold-sm,.btn-tip,
.pf-subbar .subs-pop summary,.pf-tier,.cat-tabs a,.feed-tabs a,
.rec-card,.photo-tile,.vid-card,.ps-cell,.pf-stats>div,.vc-play,.discount-banner,.am-row{
  transition:transform .16s ease, filter .16s ease, box-shadow .16s ease, border-color .16s ease, color .16s ease}
.btn-accent:hover,.pf-subbar .subs-pop summary:hover,.btn-tip:hover,
.btn-outline-gold:hover,.btn-gold:hover{transform:translateY(-2px);filter:brightness(1.06)}
.pf-tier:hover{transform:translateY(-3px);border-color:var(--gold-soft)}
.pf-stats>div:hover b{color:var(--gold)}
.photo-tile:hover{transform:translateY(-2px);border-color:var(--gold-soft)}
.cat-tabs a:hover,.feed-tabs a:hover{transform:translateY(-1px)}
.vid-card:hover .vc-play{transform:scale(1.12)}
.discount-banner:hover{transform:translateY(-1px)}
.rec-card:hover{transform:translateY(-3px)}

@media(max-width:880px){
  .pf-tiers{grid-template-columns:1fr}
  .photo-grid{grid-template-columns:repeat(4,1fr)}
  .pf-subbar .btn-tip{flex:1;text-align:center}
}
@media(max-width:560px){
  .photo-grid{grid-template-columns:repeat(3,1fr)}
  .pf-stats{gap:12px 22px}
  .pf-stats b{font-size:1.15rem}
}

/* ── «строгий» премиум-тон: меньше свечения, глубже цвета, чище формы ────── */
body{background-image:radial-gradient(1100px 440px at 50% -280px, rgba(150,18,40,.06), transparent 72%)}
/* кнопки — плоские, без неонового шлейфа, чуть строже радиусы */
.btn-accent{box-shadow:none;background:linear-gradient(180deg,#c22c55,#94213f);border-radius:10px}
.btn-accent:hover{filter:brightness(1.06);transform:none}
.btn-outline-gold{border-radius:10px}
/* герой — чистый фон + 3D-рамка (без баннер-картинки) */
.wh-hero{border-radius:14px}
.wh-hero:after{background:
  radial-gradient(560px 240px at 86% -50px, rgba(212,175,55,.1), transparent 72%)}
.wh-logo{border-width:2px;box-shadow:0 6px 18px rgba(0,0,0,.5)}
/* премиум-шапка: спокойнее */
.pf-stats b{font-weight:700}
.pf-subbar .subs-pop summary{background:linear-gradient(180deg,#c22c55,#94213f);box-shadow:none;
  border-radius:12px;letter-spacing:.3px;font-weight:700}
.btn-tip{border-radius:12px;font-weight:600}
/* тиры — без свечения, ровные рамки, featured = тонкая золотая линия сверху */
.pf-tier{border-radius:12px;background:#140e12}
.pf-tier.feat{box-shadow:none;border-color:var(--border);border-top:2px solid var(--gold)}
.pft-pop{background:transparent;color:var(--gold);border:1px solid var(--gold-soft);font-weight:700;top:-11px}
.pft-price{font-weight:700}
/* видео-плитки — строже: меньше радиус, ▶ без розового свечения */
.vid-card{border-radius:12px}
.vid-card:hover{box-shadow:0 12px 26px rgba(0,0,0,.5)}
.vc-play{background:rgba(18,11,14,.7);border:1px solid rgba(255,255,255,.26);box-shadow:none}
.vu-cta{background:#b23458;box-shadow:none;border-radius:9px;font-weight:700}
.vc-badge{border-radius:6px;font-weight:700}
/* баннеры — тоньше, спокойнее */
.crypto40-banner,.discount-banner{border-radius:10px}
/* recommendation/photo карточки — ровнее */
.rec-card,.photo-tile{border-radius:12px}

/* ============ Insta app shell (reels-приложение WHReels / ?app=1) ============ */
body.appshell{background:var(--bg);margin:0}
.app-main{min-height:100vh}
/* плавающий «pill»-таббар (инста-стиль): иконки, активная подсветка-пилюля */
.tabbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 9px);z-index:50;
  display:flex;align-items:center;gap:2px;padding:6px 8px;width:auto;max-width:calc(100% - 18px);
  background:rgba(20,15,26,.78);backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);
  border:1px solid rgba(255,255,255,.09);border-radius:30px;box-shadow:0 12px 36px rgba(0,0,0,.5)}
.tab{position:relative;display:flex;align-items:center;justify-content:center;width:54px;height:46px;border-radius:23px;
  color:#b6aec2;text-decoration:none;transition:background .18s,color .18s,transform .12s}
.tab > span:not(.tc-plus){display:none}            /* только иконки (＋ оставляем) */
.tab svg{width:26px;height:26px;fill:currentColor}
.tab:active{transform:scale(.88)}
.tab.on{color:#fff;background:rgba(255,255,255,.15)}
.tab-prem,.tab-prem.on{color:var(--gold)}
.tab-prem svg{filter:drop-shadow(0 0 6px rgba(212,175,55,.45))}
.tab-av{width:27px;height:27px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(255,255,255,.28)}
.tab.on .tab-av{border-color:#fff}
.tab-badge{position:absolute;top:8px;right:11px;background:#e3415b;color:transparent;font-size:0;
  width:9px;height:9px;min-width:0;border-radius:50%;border:1.5px solid rgba(20,15,26,.9);padding:0;display:block}
/* на экране переписки таб-бар прячем (как в инсте) — внизу композер */
body.appshell:has(.msg-form) .tabbar{display:none}
/* отступ снизу под плавающий бар на скролл-страницах (лента/переписка — исключение) */
.appshell .ig-wrap{padding-bottom:calc(env(safe-area-inset-bottom) + 78px)}
body.appshell:not(:has(.msg-form)) .msg-wrap{padding-bottom:calc(env(safe-area-inset-bottom) + 78px)}

/* лента в инста-режиме: на весь экран, контролы над таб-баром */
.appshell .reels-wrap{margin:0;max-width:none}
/* высота ленты = РОВНО видимая зона над таб-баром → один рилс на экран, без выглядывания следующего */
.appshell .reels{height:100vh;height:100dvh;          /* лента на весь экран, бар floats сверху */
  border-radius:0;border:0;overflow-y:auto;overscroll-behavior:contain}
.appshell .reel{height:100%;scroll-snap-stop:always;overflow:hidden}
.appshell .reel-overlay{bottom:0;padding-bottom:calc(env(safe-area-inset-bottom) + 86px)}
.appshell .reel-actions{bottom:calc(env(safe-area-inset-bottom) + 150px)}
/* переключатель ленты For you / Following */
.appshell .feed-tabs{position:fixed;top:calc(env(safe-area-inset-top) + 8px);left:50%;transform:translateX(-50%);z-index:26;
  gap:3px;background:rgba(0,0,0,.42);border-radius:22px;padding:3px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.feed-tabs .ft{padding:6px 15px;border-radius:20px;color:var(--text-dim);text-decoration:none;font-size:13px;font-weight:700}
.feed-tabs .ft.on{background:#fff;color:#111}

/* общие скролл-страницы (Explore/Profile/Premium) — отступ под таб-бар */
.ig-wrap{max-width:560px;margin:0 auto;padding:0 0 78px;min-height:100vh}
.ig-top{position:sticky;top:0;z-index:6;background:var(--bg);padding:14px 16px 10px;border-bottom:1px solid var(--border)}
.ig-top h1{margin:0;font-size:20px;font-weight:800}
.ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.ig-cell{position:relative;aspect-ratio:1;overflow:hidden;background:#15101b;display:block}
.ig-cell img{width:100%;height:100%;object-fit:cover}
.ig-play{position:absolute;top:6px;right:7px;color:var(--text);font-size:12px;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.ig-multi{position:absolute;top:6px;right:7px;color:var(--text);font-size:11px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.ig-lock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:24px;
  background:rgba(8,5,12,.4);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.ig-locked img{filter:blur(2px) brightness(.6)}
.ig-empty{grid-column:1/-1;text-align:center;color:var(--text-mute);padding:42px 20px;font-size:14px;line-height:1.5}

/* профиль */
.pr-head{display:flex;gap:16px;align-items:center;padding:18px 16px 6px}
.pr-av{display:flex;align-items:center;justify-content:center;border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--accent));color:#1a1320;font-weight:800;overflow:hidden}
.pr-av img{width:100%;height:100%;object-fit:cover}
.pr-av-lg{width:78px;height:78px;font-size:30px;flex:0 0 78px}
.pr-meta{flex:1;min-width:0}
.pr-name{font-size:18px;font-weight:800}
.pr-stats{display:flex;gap:16px;margin:5px 0;color:var(--text-dim);font-size:13px}
.pr-stats b{color:var(--text)}
.pr-badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;
  background:#241d2e;color:var(--text-dim);border:1px solid var(--border)}
.pr-badge-bel{background:rgba(120,160,255,.12);color:#bcd0ff;border-color:rgba(120,160,255,.3)}
.pr-badge-nu{background:rgba(227,65,91,.14);color:#ff9db0;border-color:rgba(227,65,91,.35)}
.pr-bio{position:relative;margin:6px 16px 4px}
.pr-bio textarea{width:100%;background:var(--card);border:1px solid var(--border);border-radius:12px;color:#eee;
  padding:10px 60px 10px 12px;font:inherit;font-size:13.5px;resize:none;box-sizing:border-box}
.pr-bio-save{position:absolute;right:8px;top:8px;background:none;border:0;color:var(--gold);font-weight:700;font-size:13px;cursor:pointer}
/* адаптивный ряд кнопок профиля — всегда одна строка, тянется под любую ширину */
.pr-actions{display:flex;gap:7px;align-items:stretch;flex-wrap:nowrap;padding:10px 14px 12px}
.pr-actions .pr-up{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;
  padding:10px 6px;border-radius:10px;font-size:13.5px;font-weight:800;text-decoration:none;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-actions .pr-link{flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:var(--text-dim);
  text-decoration:none;font-size:15px;padding:10px 12px;border:1px solid var(--border);border-radius:10px}
@media(max-width:360px){.pr-actions .pr-up{font-size:12.5px;padding:10px 4px}}
.pr-tabs{display:flex;justify-content:center;gap:18px;border-top:1px solid var(--border);padding:11px 0;color:var(--text);font-size:13px;font-weight:700}
.pr-guest{text-align:center;padding:54px 24px}
.pr-guest h2{margin:14px 0 6px}
.pr-guest p{color:var(--text-mute);font-size:14px;line-height:1.55;max-width:340px;margin:0 auto 18px}
.pr-guest .btn-gold{text-decoration:none}
.pr-reg{display:block;margin-top:12px;color:var(--gold);text-decoration:none;font-size:14px}

/* премиум */
.prem-hero{text-align:center;padding:26px 20px 6px}
.prem-crown{font-size:30px;color:var(--gold)}
.prem-hero h1{margin:6px 0;font-size:24px}
.prem-hero p{color:var(--text-mute);font-size:14px;line-height:1.55;max-width:420px;margin:0 auto}
.prem-tiers{padding:6px 6px}
.prem-h2{font-size:16px;margin:18px 16px 8px}

/* плавающая кнопка установки во вкладке Feed (только веб) */
.feed-getapp{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:25;
  display:inline-flex;align-items:center;gap:7px;white-space:nowrap;background:rgba(212,175,55,.96);
  color:#1a1320;font-weight:800;font-size:12.5px;text-decoration:none;padding:7px 11px 7px 13px;
  border-radius:30px;box-shadow:0 6px 20px rgba(0,0,0,.45)}
.feed-getapp i{font-style:normal;font-weight:700;opacity:.55;cursor:pointer;padding:0 0 0 3px}
/* на мобиле — ПОД сайтовую шапку (бургер + Sign in), чтобы не налезало */
@media(max-width:880px){.feed-getapp{top:calc(env(safe-area-inset-top,0px) + 52px)}}

/* ===== Share sheet (TG + Instagram впереди) ===== */
.sh-sheet{position:fixed;inset:0;z-index:120}
.sh-back{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.sh-panel{position:absolute;left:0;right:0;bottom:0;background:#16111d;border-top:1px solid var(--border);
  border-radius:18px 18px 0 0;padding:14px 14px calc(18px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto;
  animation:shUp .2s ease}
@keyframes shUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sh-head{display:flex;align-items:center;justify-content:space-between;margin:0 4px 12px}
.sh-head b{font-size:15px}
.sh-x{background:none;border:0;color:var(--text-mute);font-size:18px;cursor:pointer}
.sh-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 6px}
@media(max-width:360px){.sh-row{grid-template-columns:repeat(3,1fr)}}
.sh-app{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;cursor:pointer;
  color:var(--text-dim);font-size:11px;font-weight:600;text-decoration:none}
.sh-ic{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:22px;background:#241d2e}
.sh-ic svg{width:28px;height:28px;fill:#fff}
.sh-ic-tg{background:#2aabee}
.sh-ic-ig{background:linear-gradient(45deg,#f9ce34,#ee2a7b,#6228d7)}
.sh-ic-wa{background:#25d366}
.sh-ic-x{background:#000;border:1px solid #333;font-size:22px;color:var(--text)}
.sh-toast{margin:12px 4px 0;padding:9px 12px;background:rgba(212,175,90,.12);border:1px solid rgba(212,175,90,.3);
  border-radius:10px;color:var(--text-dim);font-size:12.5px;text-align:center}

/* ===== Auth-гейт для гостей: мягкий призыв каждые 10 рилсов (не блокирует) ===== */
.auth-gate[hidden]{display:none}   /* важно: класс с display:flex иначе перебивает атрибут hidden */
.auth-gate{position:fixed;inset:0;z-index:140;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(8,5,12,.8);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.ag-card{max-width:360px;width:100%;text-align:center;background:#16111d;border:1px solid var(--border);
  border-radius:20px;padding:26px 22px}
.ag-logo{font-weight:800;letter-spacing:1px;margin-bottom:14px;font-size:18px}
.ag-card h2{margin:0 0 8px;font-size:21px}
.ag-card p{color:var(--text-mute);font-size:14px;line-height:1.55;margin:0 0 18px}
.ag-btn{display:block;padding:13px;border-radius:13px;text-decoration:none;font-weight:800;font-size:15px;
  margin-bottom:10px;background:#2a2333;color:var(--text-dim);border:1px solid var(--border)}
.ag-primary{background:linear-gradient(180deg,var(--gold),var(--gold-soft));color:#1a1320;border:0}
.ag-signin{display:block;color:var(--text-dim);font-size:13px;text-decoration:none;margin:6px 0 14px}
.ag-signin b{color:var(--gold)}
.ag-later{background:none;border:0;color:var(--text-mute);font-size:13px;cursor:pointer}

/* на мобиле в ВЕБ-режиме (есть сайтовая шапка) опускаем кнопку звука под «Admin/Sign in» */
@media(max-width:880px){ body:not(.appshell) .reel-snd{ top:64px } }

/* кнопка входа через Telegram-бот (deep-link, без ввода номера) */
.btn-tg-login{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;box-sizing:border-box;
  background:#2aabee;color:var(--text);font-weight:800;font-size:15px;text-decoration:none;
  padding:13px;border-radius:12px;margin-top:10px;border:0}
.btn-tg-login svg{width:22px;height:22px;fill:#fff}
.btn-tg-login:hover{filter:brightness(1.06)}

/* hero как цельный баннер-картинка (текст уже в самой картинке) + кнопки под ней */
.wh-hero-banner{padding:0;background:#0d0710}
.wh-hero-banner:after{content:none}
.wh-banner-img{width:100%;height:auto;display:block}
.wh-hero-banner .hero-cta{display:flex;gap:12px;flex-wrap:wrap;padding:16px 18px 18px;margin:0}
@media(max-width:560px){.wh-hero-banner .hero-cta{padding:13px 13px 15px}.wh-hero-banner .hero-cta .btn-accent,.wh-hero-banner .hero-cta .btn-outline-gold{flex:1;text-align:center}}

/* hero: атмосферное фото-фон + наложенный брендинг (картинка без текста) */
.wh-hero-photo{position:relative;aspect-ratio:2/1;display:flex;align-items:flex-end;
  background:#0d0710 url('/static/hero.jpg?v=2') center/cover no-repeat}
@media(max-width:760px){.wh-hero-photo{aspect-ratio:auto;min-height:300px;background-position:24% center}}
.wh-hero-photo:after{content:"";position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(7,4,6,.94) 3%, rgba(7,4,6,.28) 52%, transparent 78%),
            linear-gradient(90deg, rgba(7,4,6,.82) 0%, rgba(7,4,6,.32) 42%, transparent 68%)}
.wh-hero-photo .wh-hero-inner{position:relative;z-index:1;padding:26px 30px;max-width:560px}
.wh-hero-photo .wh-wordmark{font-size:2rem;letter-spacing:2px;margin:4px 0 8px;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.wh-hero-photo .wh-hero-sub{color:var(--text-dim);margin-bottom:18px;font-size:1rem;text-shadow:0 1px 8px rgba(0,0,0,.7)}
@media(max-width:560px){.wh-hero-photo{min-height:280px}.wh-hero-photo .wh-hero-inner{padding:20px 18px}.wh-hero-photo .wh-wordmark{font-size:1.6rem}}

/* статус «Creator» (золотой) для админа/создателя */
.pr-badge-creator{background:linear-gradient(180deg,rgba(212,175,55,.22),rgba(212,175,55,.1));
  color:var(--gold);border-color:var(--gold-soft);font-weight:800}

/* ===== Инста-профиль креатора /c/{slug} ===== */
.cp-head{display:flex;align-items:center;gap:22px;padding:18px 18px 8px}
.cp-av{width:84px;height:84px;flex:0 0 84px;border-radius:50%;overflow:hidden;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(135deg,var(--gold),var(--accent));color:#1a1320;font-weight:800;
  font-size:32px;border:2px solid var(--gold-soft)}
.cp-av img{width:100%;height:100%;object-fit:cover}
.cp-stats{flex:1;display:flex;justify-content:space-around;text-align:center}
.cp-stats div{display:flex;flex-direction:column}
.cp-stats b{font-size:17px}.cp-stats span{font-size:12px;color:var(--text-mute)}
.cp-meta{padding:4px 18px 0}
.cp-name{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px}
.cp-badge{font-size:11px;font-weight:700;color:var(--gold);border:1px solid var(--gold-soft);border-radius:20px;padding:2px 8px}
.cp-bio{color:var(--text-dim);font-size:13.5px;line-height:1.5;margin-top:5px}
.cp-actions{display:flex;gap:8px;padding:14px 18px}
.cp-btn{flex:1;text-align:center;padding:9px 10px;border-radius:10px;font-weight:700;font-size:13.5px;
  text-decoration:none;background:#251e30;color:#eee;border:1px solid var(--border);cursor:pointer}
.cp-btn.cp-primary{background:linear-gradient(180deg,var(--gold),var(--gold-soft));color:#1a1320;border:0}
.cp-btn.cp-follow.on,.cp-btn.cp-subbed{background:#1c2a1c;color:#9fe0a0;border-color:rgba(120,200,120,.4)}
.cp-actions a.cp-btn{flex:0 0 auto;padding:9px 14px}
.cp-tabs{display:flex;justify-content:center;border-top:1px solid var(--border);padding:11px 0;color:var(--text);font-size:13px;font-weight:700}
.reel-by a{color:inherit;text-decoration:none}
.reel-by a:active{opacity:.7}

/* отступ под статус-бар/вырез (standalone APK/PWA) — чтобы контент не лез наверх */
.appshell .ig-wrap{padding-top:env(safe-area-inset-top)}
.appshell .msg-wrap{padding-top:calc(env(safe-area-inset-top) + 8px)}
.appshell .ig-top{top:env(safe-area-inset-top)}
.appshell .reel-snd{top:calc(20px + env(safe-area-inset-top))!important}

/* ===== Кабинет креатора /studio ===== */
.stu-top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px;gap:10px}
.stu-top h1{font-size:20px;margin:0}
.stu-view{color:var(--gold);font-size:13px;text-decoration:none;white-space:nowrap}
.stu-msg{margin:8px 16px;padding:11px 14px;border-radius:11px;font-size:13.5px}
.stu-msg.ok{background:rgba(120,200,120,.12);border:1px solid rgba(120,200,120,.35);color:#bfe7c0}
.stu-msg.bad{background:rgba(227,65,91,.12);border:1px solid rgba(227,65,91,.35);color:#ffb3c0}
.stu-form{padding:6px 16px 16px;display:flex;flex-direction:column;gap:10px}
.stu-file{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 16px;border:2px dashed var(--gold-soft);
  border-radius:14px;background:var(--card);cursor:pointer;text-align:center;position:relative}
.stu-file input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.stu-ic{font-size:30px}
.stu-pick{font-weight:700;color:var(--text-dim)}
.stu-fname{font-size:12px;color:var(--gold);word-break:break-all}
.stu-cap{background:var(--card);border:1px solid var(--border);border-radius:11px;color:#eee;padding:12px;font:inherit;font-size:14px;box-sizing:border-box}
.stu-btn{padding:14px;border-radius:12px;font-size:15px;border:0}
.stu-btn:disabled{opacity:.6}
.stu-note{color:var(--text-mute);font-size:12px;text-align:center;margin:2px 0 0}
.stu-cell{position:relative}
.stu-del{position:absolute;top:5px;left:5px;z-index:2;width:24px;height:24px;border-radius:50%;border:0;
  background:rgba(0,0,0,.6);color:var(--text);font-size:12px;cursor:pointer;line-height:1}
.stu-cell form{position:absolute;top:0;left:0;margin:0}

/* ===== DM: список диалогов (админ/креатор) + шапка треда ===== */
.dm-list{display:flex;flex-direction:column}
.dm-row{display:flex;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;color:inherit;
  border-bottom:1px solid rgba(255,255,255,.05)}
.dm-row:active{background:rgba(255,255,255,.04)}
.dm-av{width:46px;height:46px;flex:0 0 46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--gold),var(--accent));color:#1a1320;font-weight:800;font-size:18px}
.dm-main{min-width:0;flex:1}
.dm-name{font-weight:700;font-size:14.5px;display:flex;align-items:center;gap:8px}
.dm-badge{font-style:normal;background:#e3415b;color:var(--text);font-size:11px;font-weight:700;min-width:18px;height:18px;
  border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.dm-last{color:var(--text-mute);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.msg-head{display:flex;align-items:center;gap:6px;padding:0 2px}
.msg-back{font-size:30px;line-height:1;color:var(--text-dim);text-decoration:none;padding:0 6px 4px}

/* ===== DM как в инсте (app-режим): шапка сверху, тред тянется, инпут-пилюля снизу ===== */
.appshell .msg-wrap{display:flex;flex-direction:column;padding:0;max-width:none;margin:0;
  height:calc(100dvh - 52px - env(safe-area-inset-bottom))}
.appshell .msg-wrap .sec-title,.appshell .msg-head{margin:0;border-left:0;font-size:1.2rem;font-weight:800;
  padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;border-bottom:1px solid var(--border);
  position:sticky;top:0;background:var(--bg);z-index:3;display:flex;align-items:center;gap:6px}
.appshell .msg-head .sec-title{padding:0;border:0;position:static}
.appshell .msg-sub{padding:8px 16px 0;margin:0;font-size:.82rem}
.appshell .dm-list{flex:1;overflow-y:auto}
.appshell .msg-thread{flex:1;overflow-y:auto;padding:14px 14px 8px;margin:0;gap:6px;min-height:0}
.appshell .msg-wrap .empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:24px;color:var(--text-mute)}
.appshell .msg-form{position:sticky;bottom:0;background:var(--bg);margin:0;gap:8px;
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--border)}
.appshell .msg-form textarea{border-radius:22px;padding:11px 16px;background:#1a1320;min-height:0}
.appshell .msg-form .btn-accent{border-radius:22px;padding:0 20px;align-self:stretch}
.appshell .msg-out .msg-b{background:linear-gradient(180deg,var(--gold),var(--gold-soft));color:#1a1320}

/* DM: карточки-рилсы, ссылки, время */
.msg{display:flex;flex-direction:column}
.msg-out{align-items:flex-end}
.msg-in{align-items:flex-start}
.msg-t{font-size:10px;color:var(--text-mute);margin:2px 7px 0}
.dm-link{color:var(--gold);text-decoration:underline;word-break:break-all}
.msg-out .dm-link{color:#2a1f08}
.dm-reel{display:block;width:148px;max-width:58vw;border-radius:12px;overflow:hidden;position:relative;
  background:#15101b;text-decoration:none}
.dm-reel img{width:100%;height:198px;object-fit:cover;display:block}
.dm-reel-badge{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.62);color:var(--text);font-size:12px;
  font-weight:700;padding:3px 9px;border-radius:20px}
.msg-b:has(.dm-reel){padding:4px;background:none!important;border:0}
.sh-ic-dm{background:#7a5cff}

/* DM user↔user: аватар-картинка, @ник, шапка собеседника */
.dm-av{overflow:hidden}
.dm-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.dm-handle{color:var(--text-mute);font-weight:500;font-size:12.5px}
.msg-peer{display:flex;align-items:center;gap:9px;text-decoration:none;color:inherit}
.msg-peer-av{width:34px;height:34px;flex:0 0 34px;border-radius:50%;overflow:hidden;display:flex;align-items:center;
  justify-content:center;background:linear-gradient(135deg,var(--gold),var(--accent));color:#1a1320;font-weight:800;font-size:15px}
.msg-peer-av img{width:100%;height:100%;object-fit:cover}
.msg-peer-nm{font-size:15px;font-weight:800;display:flex;flex-direction:column;line-height:1.1}
.msg-peer-nm i{font-style:normal;font-weight:500;font-size:11.5px;color:var(--text-mute)}
.pr-handle{color:var(--text-mute);font-size:13px;font-weight:500;margin-left:6px}

/* /me: редактирование @username + био */
.pr-edit{display:flex;flex-direction:column;gap:8px;padding:8px 16px 4px}
.pr-uname-wrap{display:flex;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:0 12px}
.pr-uname-wrap span{color:var(--text-mute);font-weight:700}
.pr-uname{flex:1;background:none;border:0;color:#eee;padding:10px 6px;font:inherit;font-size:14px;outline:none}
.pr-edit textarea{background:var(--card);border:1px solid var(--border);border-radius:12px;color:#eee;padding:10px 12px;font:inherit;font-size:13.5px;resize:none;box-sizing:border-box}
.pr-save{align-self:flex-end;padding:8px 22px;border-radius:10px;border:0;font-size:13.5px}

/* /me: загрузка аватара (камера-бейдж) */
.pr-avform{margin:0;flex:0 0 auto}
.cp-av-edit{position:relative;cursor:pointer}
.cp-av-edit input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.cp-av-cam{position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;border-radius:50%;background:var(--gold);
  color:#1a1320;display:flex;align-items:center;justify-content:center;font-size:13px;border:2px solid var(--bg);z-index:2}

/* ===== Страница настроек профиля /me/edit (инста-edit) ===== */
.set-wrap{max-width:560px;padding-bottom:60px}
.set-head{display:flex;align-items:center;gap:6px;padding:12px 12px 10px;position:sticky;top:0;background:var(--bg);z-index:4;border-bottom:1px solid var(--border)}
.set-head h1{margin:0;font-size:18px;font-weight:800}
.set-av{display:flex;justify-content:center;padding:18px 0 6px;margin:0}
.set-av-l{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}
.set-av-t{color:var(--gold);font-size:13px;font-weight:700}
.set-form{display:flex;flex-direction:column;gap:6px;padding:6px 16px 14px}
.set-lbl{color:var(--text-mute);font-size:12px;font-weight:700;margin-top:8px}
.set-form textarea{background:var(--card);border:1px solid var(--border);border-radius:12px;color:#eee;padding:11px 12px;font:inherit;font-size:14px;resize:none;box-sizing:border-box}
.set-save{align-self:flex-start;padding:11px 28px;border-radius:11px;border:0;font-size:15px;margin-top:8px}
.set-section{border-top:1px solid var(--border);margin-top:8px}
.set-row{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;text-decoration:none;color:var(--text-dim);border-bottom:1px solid rgba(255,255,255,.05);font-size:14.5px}
.set-row i{color:var(--text-mute);font-style:normal}
.set-out{color:#ff9db0}

/* ===== Кропер аватара (круг, зум, центровка) ===== */
.crop[hidden]{display:none}
.crop{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.82);padding:20px}
.crop-card{background:#16111d;border:1px solid var(--border);border-radius:18px;padding:18px;max-width:360px;width:100%;text-align:center}
.crop-h{color:var(--text-mute);font-size:13px;margin-bottom:12px}
.crop-box{position:relative;width:min(280px,72vw);height:min(280px,72vw);margin:0 auto;border-radius:14px;overflow:hidden;background:#0a0608;touch-action:none}
.crop-box canvas{width:100%;height:100%;display:block;cursor:grab}
.crop-ring{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 9999px rgba(7,4,6,.62);pointer-events:none}
#cropZoom{width:100%;margin:16px 0 4px;accent-color:var(--gold)}
.crop-actions{display:flex;gap:10px;margin-top:8px}
.crop-actions button{flex:1;padding:11px;border-radius:11px;border:1px solid var(--border);background:#251e30;color:#eee;font-weight:700;font-size:14px;cursor:pointer}
.crop-actions .btn-gold{border:0}

/* ===== Уведомления / поиск / шапка Explore / studio-табы ===== */
.notif-list{display:flex;flex-direction:column}
.notif-row{display:flex;align-items:center;gap:11px;padding:11px 14px;text-decoration:none;color:inherit;border-bottom:1px solid rgba(255,255,255,.05)}
.notif-main{flex:1;min-width:0;font-size:13.5px;color:var(--text-dim);line-height:1.4}
.notif-main b{font-weight:700}
.notif-t{display:block;color:var(--text-mute);font-size:11px;margin-top:2px}
.notif-thumb{width:42px;height:42px;border-radius:8px;object-fit:cover;flex:0 0 42px}
.srch-bar{display:flex;gap:8px;padding:12px 14px}
.srch-in{flex:1;background:var(--card);border:1px solid var(--border);border-radius:22px;color:#eee;padding:11px 16px;font:inherit;font-size:14px;outline:none}
.srch-go{padding:0 18px;border-radius:22px;border:0;background:var(--gold);color:#1a1320;font-weight:800;cursor:pointer}
.srch-id{flex:1;display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;min-width:0}
.srch-msg{flex:0 0 auto;font-size:18px;text-decoration:none;padding:6px 8px}
.ig-top-row{display:flex;align-items:center;justify-content:space-between}
.ig-top-act{display:flex;align-items:center;gap:15px;font-size:20px}
.ig-top-act a{text-decoration:none}
.ig-bell{position:relative}
.ig-bell-b{position:absolute;top:-4px;right:-7px;background:#e3415b;color:var(--text);font-style:normal;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.dm-new{display:block;margin:0 14px 8px;padding:11px 14px;background:var(--card);border:1px solid var(--border);border-radius:12px;color:var(--text-dim);text-decoration:none;font-size:13.5px;font-weight:600}
.stu-tabs{display:flex;gap:8px;padding:6px 16px 0}
.stu-tab{flex:1;padding:9px;border-radius:10px;border:1px solid var(--border);background:#1a1320;color:var(--text-mute);font-weight:700;font-size:13.5px;cursor:pointer}
.stu-tab.on{background:rgba(212,175,55,.15);color:var(--gold);border-color:var(--gold-soft)}

/* минимал просмотров в ленте */
.reel-views{color:var(--text-dim);font-weight:500;font-size:.76rem;margin-left:8px;opacity:.75}
/* кликабельный стат following */
.cp-stats a.cp-stat{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:inherit}
.cp-stats a.cp-stat:active{opacity:.6}
/* пикер «отправить рилс» */
.shr-reel{display:flex;align-items:center;gap:10px;padding:10px 14px}
.shr-reel img{width:40px;height:54px;border-radius:8px;object-fit:cover;flex:0 0 40px}
.shr-reel span{color:var(--text-dim);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shr-row{margin:0;align-items:center}
.shr-send{flex:0 0 auto;background:var(--gold);color:#1a1320;border:0;border-radius:18px;padding:7px 16px;font-weight:800;font-size:13px;cursor:pointer}

/* ── Stories: кольцо сверху (Explore) ── */
.st-ring{display:flex;gap:13px;overflow-x:auto;padding:13px 14px 12px;border-bottom:1px solid var(--border);
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.st-ring::-webkit-scrollbar{display:none}
.st-b{flex:0 0 auto;width:64px;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:5px}
.st-av{width:56px;height:56px;border-radius:50%;margin:3px;position:relative;display:flex;align-items:center;
  justify-content:center;background:#15101b;color:var(--text);font-weight:800;font-size:19px;
  box-shadow:0 0 0 2px var(--bg),0 0 0 4px #3a3340}            /* seen = серое кольцо */
.st-av img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.st-av.st-on{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--gold)}   /* непросмотрено = золотое */
.st-plus{position:absolute;right:-2px;bottom:-2px;width:20px;height:20px;border-radius:50%;
  background:var(--gold);color:#1a1208;font-weight:800;font-size:14px;line-height:1;
  display:flex;align-items:center;justify-content:center;border:2px solid var(--bg)}
.st-nm{font-size:11px;color:var(--text-dim);max-width:62px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── Stories: полноэкранный вьюер ── */
.sv-body{margin:0;background:#000;overflow:hidden;height:100dvh}
.sv{position:fixed;inset:0;background:#000;display:flex;flex-direction:column;max-width:560px;margin:0 auto;overflow:hidden}
.sv-bars{position:absolute;top:calc(env(safe-area-inset-top) + 8px);left:8px;right:8px;z-index:7;display:flex;gap:4px}
.sv-bar{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.32);overflow:hidden}
.sv-bar > i{display:block;height:100%;width:0;background:#fff}
.sv-head{position:absolute;top:calc(env(safe-area-inset-top) + 18px);left:12px;right:12px;z-index:7;
  display:flex;align-items:center;justify-content:space-between}
.sv-author{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--text)}
.sv-av{width:34px;height:34px;border-radius:50%;background:#15101b;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:14px;overflow:hidden;flex:0 0 34px}
.sv-av img{width:100%;height:100%;object-fit:cover}
.sv-author b{font-size:14px;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.7)}
.sv-hact{display:flex;align-items:center;gap:16px}
.sv-del{background:none;border:0;color:var(--text);font-size:18px;cursor:pointer}
.sv-x{color:var(--text);font-size:25px;text-decoration:none;line-height:1}
.sv-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000}
.sv-media{width:100%;height:100%;object-fit:contain;background:#000}
.sv-tap{position:absolute;top:0;bottom:0;z-index:5}
.sv-prev{left:0;width:30%}
.sv-next{right:0;width:70%}
.sv-cap{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 80px);z-index:6;text-align:center;
  color:var(--text);font-size:15px;padding:0 26px;text-shadow:0 1px 7px rgba(0,0,0,.85)}
.sv-views{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 22px);z-index:7;
  color:var(--text);font-size:13px;background:rgba(0,0,0,.45);padding:6px 13px;border-radius:15px}
.sv-reply{position:absolute;left:14px;right:14px;bottom:calc(env(safe-area-inset-bottom) + 16px);z-index:7;
  display:flex;gap:8px;align-items:center}
.sv-reply input{flex:1;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.45);border-radius:22px;
  color:var(--text);padding:12px 17px;font-size:14px;outline:none}
.sv-reply input::placeholder{color:rgba(255,255,255,.72)}
.sv-reply button{background:none;border:0;color:var(--text);font-size:21px;padding:6px;cursor:pointer}
.sv-reply.sent input{border-color:var(--gold);color:var(--gold)}

/* ── views на плитках сетки (инста-стиль ▶ N) + вкладки профиля (Posts/Saved) ── */
.ig-views{position:absolute;left:7px;bottom:6px;color:var(--text);font-size:11px;font-weight:700;
  display:flex;align-items:center;gap:3px;text-shadow:0 1px 4px rgba(0,0,0,.85);pointer-events:none}
.cp-tabs{gap:38px;padding:0}
.cp-tabs > span,.cp-tabs > a{padding:11px 4px;color:var(--text-mute);text-decoration:none;border-top:1px solid transparent;margin-top:-1px}
.cp-tabs .on{color:var(--text);border-top-color:var(--text)}
.ra-save.on .ra-ic{transform:scale(1.06)}
/* вкладки профиля (Reels / Posts / Reposts / Saved) — инста-стиль с иконками */
.pf-tabs{display:flex;border-top:1px solid var(--border)}
.pf-tab{flex:1;display:flex;align-items:center;justify-content:center;height:44px;background:none;border:0;
  border-top:1px solid transparent;margin-top:-1px;color:var(--text-mute);cursor:pointer}
.pf-tab svg{width:22px;height:22px;fill:currentColor}
.pf-tab.on{color:var(--text);border-top-color:var(--text)}
.pf-pane[hidden]{display:none}            /* .ig-grid display:grid перебивает [hidden] → явный guard */
.ig-sub{display:block;font-size:12px;color:var(--text-mute);margin-top:4px}
.prem-web{display:block;text-align:center;margin:22px 16px}

/* ── DM: фото в чате + реакции + Seen + кнопка фото ── */
.msg-img{display:block;max-width:200px;max-height:280px;width:auto;border-radius:12px;cursor:pointer}
.msg-b:has(.msg-img){padding:3px;background:none!important;border:0}
.msg-b:has(.msg-img):has(.msg-txt){padding:3px}
.msg-txt{display:block}
.msg-img + .msg-txt{margin-top:5px;padding:0 4px 3px}
.msg-reacts{display:flex;gap:4px;margin:3px 6px 0;flex-wrap:wrap}
.msg-react{background:#1a1320;border:1px solid var(--border);border-radius:12px;padding:1px 7px;font-size:13px;
  display:inline-flex;align-items:center;gap:3px;line-height:1.5}
.msg-react.mine{border-color:var(--gold);background:rgba(212,175,55,.16)}
.msg-react i{font-style:normal;font-size:11px;color:var(--text-dim)}
.msg-seen{font-size:10px;color:var(--text-mute);margin:1px 7px 0}
.react-bar{position:fixed;z-index:40;display:flex;gap:2px;background:#241a2c;border:1px solid var(--border);
  border-radius:24px;padding:4px 6px;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.rb-e{background:none;border:0;font-size:22px;padding:2px 5px;cursor:pointer;line-height:1;border-radius:50%}
.rb-e:active{transform:scale(1.25)}
.msg-photo{display:flex;align-items:center;justify-content:center;font-size:21px;width:42px;height:42px;flex:0 0 42px;
  background:#1a1320;border:1px solid var(--border);border-radius:50%;cursor:pointer;align-self:flex-end}

/* ── меню профиля креатора (mute/block/report) ── */
.cprof{position:relative}
.cp-more{position:absolute;top:8px;right:12px;z-index:8;background:none;border:0;color:var(--text);font-size:25px;
  line-height:1;cursor:pointer;padding:4px 8px}
.cp-menu{position:absolute;top:44px;right:12px;z-index:9;background:#241a2c;border:1px solid var(--border);
  border-radius:12px;padding:5px;display:flex;flex-direction:column;min-width:168px;box-shadow:0 10px 30px rgba(0,0,0,.55)}
.cp-menu[hidden]{display:none}
.cp-menu button{background:none;border:0;color:var(--text-dim);text-align:left;padding:11px 12px;border-radius:8px;font-size:14px;cursor:pointer}
.cp-menu button:active{background:rgba(255,255,255,.06)}
.cp-menu-rep{color:#e3415b!important}

/* ── комменты: ветки + лайки + reply + @упоминания ── */
.cs-c-row{display:flex;align-items:flex-start;gap:8px}
.cs-c-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.cs-c-meta{display:flex;gap:14px;margin-top:2px}
.cs-reply{background:none;border:0;color:var(--text-mute);font-size:12px;font-weight:600;padding:0;cursor:pointer}
.cs-like{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;flex:0 0 auto;padding-top:2px;color:var(--text-mute)}
.cs-like .cs-h{font-size:14px;display:flex}
.cs-like .cs-h svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.cs-like.on{color:#ff3b5c}
.cs-like.on .cs-h svg{fill:#ff3b5c;stroke:#ff3b5c}
.cs-like i{font-style:normal;font-size:11px;color:var(--text-mute)}
.cs-replies{margin:9px 0 0 18px;display:flex;flex-direction:column;gap:11px;border-left:1px solid var(--border);padding-left:11px}
.cs-at{color:var(--gold);text-decoration:none;font-weight:600}
.cs-replyhint{display:flex;align-items:center;justify-content:space-between;padding:7px 16px;background:#1a1320;
  border-top:1px solid var(--border);color:var(--text-mute);font-size:12px}
.cs-replyhint[hidden]{display:none}
.cs-replyhint button{background:none;border:0;color:var(--text-mute);font-size:14px;cursor:pointer}

/* ── settings-тогглы + verified-галочка + приватный профиль ── */
.set-sec-h{color:var(--text-mute);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;padding:6px 2px 10px}
.set-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
.set-toggle > span{display:flex;flex-direction:column;gap:2px}
.set-toggle > span small{color:var(--text-mute);font-size:12px;font-weight:400}
.set-toggle input{display:none}
.set-sw{position:relative;flex:0 0 auto;width:44px;height:26px;background:#3a3340;border-radius:14px;transition:background .15s}
.set-sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .15s}
.set-toggle input:checked + .set-sw{background:var(--gold)}
.set-toggle input:checked + .set-sw::after{transform:translateX(18px)}
.cp-verified{color:#3897f0;font-weight:900}
.cp-private{text-align:center;padding:46px 24px;color:var(--text-dim);font-size:36px}
.cp-private div{font-size:17px;font-weight:700;color:var(--text);margin-top:8px}
.cp-private p{font-size:14px;color:var(--text-mute);margin-top:4px}
.cp-av-story{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--gold);text-decoration:none}
.ig-prem{color:var(--gold);text-shadow:0 0 8px rgba(212,175,55,.5);font-size:19px;line-height:1}

/* ── центральная ＋ в таб-баре ── */
.tab-create{cursor:pointer;background:none;border:0}
.tab-create{width:48px}
.tab-create .tc-plus{display:flex;align-items:center;justify-content:center;width:40px;height:34px;border-radius:12px;
  background:linear-gradient(135deg,var(--gold),var(--accent));color:#1a1208;font-size:25px;font-weight:600;line-height:1;
  box-shadow:0 4px 14px rgba(212,175,55,.5)}
.tab-create.on{background:none}
.tab-create:active .tc-plus{transform:scale(.9)}

/* ── камера-first: лист создания ── */
.create-sheet{position:fixed;inset:0;z-index:120;background:#000;color:var(--text);
  display:flex;flex-direction:column;overflow:hidden}
.create-sheet[hidden]{display:none}
.cr-cam{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end}
.cr-cam[hidden]{display:none}
.cr-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}
.cr-video[hidden]{display:none}
.cr-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:var(--text-dim);gap:10px;padding:30px}
.cr-fallback[hidden]{display:none}
.cr-fb-ic{font-size:46px;opacity:.7}
.cr-fallback p{font-size:15px;line-height:1.5}
.cr-top{position:absolute;top:calc(env(safe-area-inset-top) + 10px);left:0;right:0;z-index:6;
  display:flex;align-items:center;justify-content:space-between;padding:0 14px}
.cr-x{background:rgba(0,0,0,.35);border:0;color:var(--text);font-size:21px;width:40px;height:40px;border-radius:50%;cursor:pointer;line-height:1}
.cr-flip{background:rgba(0,0,0,.35);border:0;color:var(--text);width:40px;height:40px;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center}
.cr-flip svg{width:23px;height:23px;fill:#fff}
.cr-bottom{position:relative;z-index:6;padding:0 0 calc(env(safe-area-inset-bottom) + 22px);
  background:linear-gradient(to top,rgba(0,0,0,.55),transparent)}
.cr-modes{display:flex;justify-content:center;gap:24px;padding:12px 0 16px}
.cr-mode{background:none;border:0;color:rgba(255,255,255,.6);font-size:14px;font-weight:700;cursor:pointer;
  padding:5px 4px;position:relative}
.cr-mode.on{color:var(--text)}
.cr-mode.on::after{content:"";position:absolute;left:50%;bottom:-3px;transform:translateX(-50%);
  width:5px;height:5px;border-radius:50%;background:var(--gold)}
.cr-row{display:flex;align-items:center;justify-content:space-between;padding:0 38px}
.cr-gallery{width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;cursor:pointer}
.cr-gallery svg{width:24px;height:24px;fill:#fff}
.cr-spacer{background:none;border:0;visibility:hidden}
.cr-shutter{width:74px;height:74px;border-radius:50%;background:none;border:4px solid #fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0}
.cr-shutter i{width:58px;height:58px;border-radius:50%;background:#fff;transition:transform .1s}
.cr-shutter:active i{transform:scale(.86)}
.cr-hint{text-align:center;color:rgba(255,255,255,.78);font-size:12px;padding-top:14px}

/* экран подтверждения + подпись */
.cr-confirm{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;background:#0c0810}
.cr-confirm[hidden]{display:none}
.cr-cf-top{display:flex;align-items:center;justify-content:space-between;
  padding:calc(env(safe-area-inset-top) + 12px) 14px 12px;border-bottom:1px solid var(--border)}
.cr-back{background:none;border:0;color:var(--text);font-size:30px;line-height:1;cursor:pointer;width:40px;text-align:left}
.cr-cf-title{font-size:16px;font-weight:700}
.cr-share{background:var(--gold);border:0;color:#1a1208;font-weight:800;font-size:14px;padding:9px 20px;border-radius:22px;cursor:pointer}
.cr-share:disabled{opacity:.5}
.cr-preview{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:#000;overflow:hidden}
.cr-pv{max-width:100%;max-height:100%;object-fit:contain}
.cr-pv-count{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.6);color:var(--text);font-size:13px;
  padding:5px 11px;border-radius:14px}
.cr-cap{border:0;border-top:1px solid var(--border);background:#0c0810;color:var(--text);font-size:15px;
  padding:15px 16px calc(env(safe-area-inset-bottom) + 15px);resize:none;outline:none;font-family:inherit}
.cr-cap::placeholder{color:var(--text-mute)}
.cr-uploading{position:absolute;inset:0;background:rgba(0,0,0,.78);display:flex;align-items:center;justify-content:center;
  gap:11px;color:var(--text);font-size:15px;font-weight:600;z-index:9}
.cr-uploading[hidden]{display:none}
.cr-spin{width:22px;height:22px;border:3px solid rgba(255,255,255,.3);border-top-color:var(--gold);border-radius:50%;
  animation:crspin .7s linear infinite}
@keyframes crspin{to{transform:rotate(360deg)}}

/* ── PPV в личке: платное фото + чаевые ── */
#tipForm{margin-left:auto}
.msg-tip{background:linear-gradient(135deg,var(--gold),var(--accent));border:0;color:#1a1208;font-weight:800;
  font-size:13px;padding:7px 13px;border-radius:18px;cursor:pointer;white-space:nowrap}
.msg-tip:active{transform:scale(.95)}
.msg-ppvbtn{background:linear-gradient(135deg,var(--gold),var(--accent))!important;border:0;color:#1a1208;font-size:19px;cursor:pointer}
.msg-ppv-form{margin:0}
.msg-ppv{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:200px;height:220px;
  border:0;border-radius:14px;cursor:pointer;color:var(--text);
  background:repeating-linear-gradient(45deg,#241a2c,#241a2c 12px,#2c2034 12px,#2c2034 24px)}
.msg-ppv-blur{font-size:54px;filter:drop-shadow(0 4px 12px rgba(212,175,55,.5))}
.msg-ppv-cta{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:14px;font-weight:600;color:var(--text-dim)}
.msg-ppv-cta b{font-size:21px;color:var(--gold)}
.msg-ppv-tag{display:inline-block;margin:4px 6px 0;font-size:11px;font-weight:700;color:var(--gold)}

/* ── страница хэштега ── */
.tag-h{display:flex;align-items:center;gap:8px}
.tag-h h1{margin:0;font-size:20px}
.tag-sub{font-size:12px;color:var(--text-mute)}
.reel-title .cs-at{color:#fff;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.7)}

/* ══════════ СВЕТЛАЯ ТЕМА (скоуп = приложение body.appshell; десктоп-страницы остаются тёмными) ══════════ */
[data-theme="light"] body.appshell{
  --bg:#f4f1f8; --card:#ffffff; --border:#e7e3ef;
  --text:#17121d; --text-dim:#463d50; --text-mute:#6a6175;
  background:var(--bg);
}
[data-theme="light"] .appshell .app-main{background:var(--bg)}
/* тёмный таб-бар оставляем стеклянным → пин белого для активной вкладки */
[data-theme="light"] .appshell .tab.on,
[data-theme="light"] .appshell .tab.on .tab-av{color:#fff}
/* текст ПОВЕРХ медиа (лента, сетка, обложки) — всегда белый */
[data-theme="light"] .appshell :is(.reel-title,.reel-by,.reel-views,.reel-cta,.reel-lock,
  .reel-photobadge,.reel-lockcenter,.reel-lockcenter .lkt,.lk,.lkt,.ra-btn,.ra-n,.cta-h,.cta-btn,
  .ig-play,.ig-multi,.ig-views,.ig-lock,.vc-dur){color:#fff}
/* кнопки/бейджи на цветном фоне — белый текст */
[data-theme="light"] .appshell :is(.btn-accent,.btn-tip,.cs-send,.cta-btn,.dm-badge,.dm-reel-badge,
  .ig-bell-b,.tab-badge,.s-badge,.vu-cta,.per-btn.on,.vc-badge.vc-nu,.btn-tg,.btn-tg-login,
  .btn-patreon,.msg-tip){color:#fff}
/* сторис-вьюер: фиксированный чёрный → весь текст белый */
[data-theme="light"] .appshell :is(.sv-author,.sv-author b,.sv-del,.sv-x,.sv-cap,.sv-views,
  .sv-reply input,.sv-reply button,.st-av){color:#fff}
/* экран камеры/создания: фиксированный тёмный → белый текст (Share — тёмный на золоте) */
[data-theme="light"] .create-sheet,
[data-theme="light"] .create-sheet :is(.cr-x,.cr-flip,.cr-back,.cr-cap,.cr-pv-count,.cr-mode,
  .cr-hint,.cr-uploading,.cr-fallback,.cr-fallback p){color:#fff}
/* PPV-плитка в личке (тёмный паттерн) */
[data-theme="light"] .appshell .msg-ppv,[data-theme="light"] .appshell .msg-ppv .msg-ppv-cta{color:#fff}
/* ВСЕ поля ввода приложения → светлые (общее правило) */
[data-theme="light"] body.appshell textarea,
[data-theme="light"] body.appshell input:not([type=checkbox]):not([type=radio]):not([type=range]){
  background:#fff;border-color:var(--border);color:var(--text)}
[data-theme="light"] body.appshell ::placeholder{color:var(--text-mute)}
/* исключения: поля поверх фиксированно-тёмных экранов остаются тёмными */
[data-theme="light"] .create-sheet .cr-cap{background:#0c0810;border-color:rgba(255,255,255,.12);color:#fff}
[data-theme="light"] .sv-reply input{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.45);color:#fff}
/* тёмные кнопки/дропдауны/поповеры → светлые */
[data-theme="light"] .appshell .cp-btn{background:#f0edf5;color:var(--text);border-color:var(--border)}
[data-theme="light"] .appshell .cp-menu{background:#fff;border-color:var(--border)}
[data-theme="light"] .appshell .cp-menu button{color:var(--text)}
[data-theme="light"] .appshell .react-bar{background:#fff;border-color:var(--border)}
/* входящий DM-бабл на светлой карточке */
[data-theme="light"] .appshell .msg-in .msg-b{color:var(--text-dim)}

/* ── переключатель темы в настройках ── */
.theme-seg{display:flex;gap:8px;padding:2px 0}
.theme-opt{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:13px 6px;border-radius:12px;
  background:var(--card);border:1px solid var(--border);color:var(--text);font-size:21px;cursor:pointer}
.theme-opt span{font-size:12px;font-weight:600;color:var(--text-mute)}
.theme-opt.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.theme-opt.on span{color:var(--text)}
.theme-opt:active{transform:scale(.97)}

/* ── фото-сет: свайп-карусель (инста-стиль) ── */
.ps-byrow{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
.ps-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  border-radius:14px;background:#000;-webkit-overflow-scrolling:touch}
.ps-carousel::-webkit-scrollbar{display:none}
.ps-slide{flex:0 0 100%;scroll-snap-align:center;display:flex;align-items:center;justify-content:center;background:#000}
.ps-slide img{width:100%;max-height:82vh;object-fit:contain}
.ps-single img{width:100%;border-radius:14px;display:block}
.ps-dots{display:flex;justify-content:center;gap:6px;padding:11px 0 4px}
.ps-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:background .15s,transform .15s}
.ps-dot.on{background:var(--gold);transform:scale(1.25)}
.ps-cap2{font-size:14px;line-height:1.4;padding:8px 2px 0}
.ps-cap2 b{font-weight:700}

/* ── доходы креатора ── */
.stu-earn{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 14px;
  padding:14px 16px;border-radius:14px;text-decoration:none;color:#1a1208;
  background:linear-gradient(135deg,var(--gold),var(--gold-soft))}
.stu-earn span{font-weight:800;font-size:15px}
.stu-earn i{font-style:normal;font-size:12px;opacity:.85}
.earn-hero{text-align:center;padding:18px 0 8px}
.earn-total{font-size:42px;font-weight:800;letter-spacing:-1px;color:var(--text)}
.earn-sub{font-size:13px;color:var(--text-mute);margin-top:2px}
.earn-sub b{color:var(--text)}
.earn-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 6px}
.earn-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px}
.earn-ic{font-size:20px}
.earn-amt{font-size:21px;font-weight:800;margin-top:6px;color:var(--text)}
.earn-lbl{font-size:12px;color:var(--text-mute)}
.earn-n{font-size:11px;color:var(--text-mute);margin-top:2px}
.earn-tx{display:flex;flex-direction:column}
.earn-row{display:flex;align-items:center;gap:11px;padding:11px 2px;border-bottom:1px solid var(--border)}
.earn-row-ic{font-size:18px;width:30px;text-align:center}
.earn-row-main{flex:1;min-width:0}
.earn-row-l{font-size:14px;font-weight:600;color:var(--text)}
.earn-row-w{font-size:12px;color:var(--text-mute)}
.earn-row-amt{font-weight:800;color:#34c759}
.earn-note{font-size:11px;color:var(--text-mute);text-align:center;padding:16px 10px}

/* ── поиск: трендовые теги ── */
.srch-tags{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 4px}
.srch-tag{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:18px;
  background:var(--card);border:1px solid var(--border);color:var(--text);text-decoration:none;font-weight:600;font-size:14px}
.srch-tag i{font-style:normal;font-size:11px;color:var(--text-mute)}
.srch-tag:active{transform:scale(.96)}

/* ── DM-композер: ＋ вложения, продажа фото, отправка (иконки) ── */
.msg-attach{flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer;padding:0}
.msg-attach svg{width:24px;height:24px;fill:currentColor}
.appshell .msg-form .btn-accent.msg-send{width:42px;height:42px;border-radius:50%;padding:0;flex:0 0 auto;align-self:auto;
  display:flex;align-items:center;justify-content:center}
.msg-send svg{width:21px;height:21px;fill:#fff;margin-left:1px}
.msg-tip{display:inline-flex;align-items:center;gap:5px}
.msg-tip svg{width:15px;height:15px;fill:currentColor}
.dm-attach,.dm-ppvbar{position:fixed;left:8px;right:8px;max-width:544px;margin:0 auto;z-index:60}
.dm-attach{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden;
  box-shadow:0 14px 38px rgba(0,0,0,.45)}
.dm-attach[hidden],.dm-ppvbar[hidden]{display:none}
.dm-att-opt{display:flex;align-items:center;gap:13px;width:100%;background:none;border:0;cursor:pointer;
  padding:15px 16px;text-align:left;color:var(--text)}
.dm-att-opt + .dm-att-opt{border-top:1px solid var(--border)}
.dm-att-opt:active{background:rgba(127,127,127,.1)}
.dm-att-ic{width:26px;height:26px;flex:0 0 26px;fill:var(--gold)}
.dm-att-opt span{display:flex;flex-direction:column;gap:2px;min-width:0}
.dm-att-opt b{font-size:14.5px;font-weight:700}
.dm-att-opt i{font-style:normal;font-size:12px;color:var(--text-mute)}
.dm-ppvbar{display:flex;align-items:center;gap:9px;padding:10px 12px;background:var(--card);
  border:1px solid var(--gold);border-radius:16px;box-shadow:0 14px 38px rgba(0,0,0,.45)}
.dm-ppvbar-l{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap}
.dm-ppvbar-in{display:flex;align-items:center;gap:1px;background:var(--bg);border:1px solid var(--border);
  border-radius:10px;padding:6px 9px;font-weight:700;color:var(--text)}
.dm-ppvbar-in input{width:48px;background:none;border:0;outline:none;color:var(--text);font-size:15px;font-weight:700}
.dm-ppvbar-go{flex:1;background:linear-gradient(135deg,var(--gold),var(--gold-soft));border:0;color:#1a1208;
  font-weight:800;font-size:13px;padding:9px 10px;border-radius:11px;cursor:pointer;white-space:nowrap}
.dm-ppvbar-x{background:none;border:0;color:var(--text-mute);font-size:16px;cursor:pointer;padding:2px 4px}

/* ── ссылки в профиле ── */
.cp-links{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px 2px}
.cp-link{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:20px;
  background:var(--card);border:1px solid var(--border);color:var(--text);text-decoration:none;font-size:13px;font-weight:600}
.cp-link svg{width:16px;height:16px;fill:var(--gold)}
.cp-link:active{transform:scale(.97)}
/* настройки: ссылки + кошелёк */
.set-hint{font-size:13px;color:var(--text-mute);padding:2px 2px 10px;line-height:1.45}
.set-input{width:100%;background:var(--card);border:1px solid var(--border);border-radius:11px;
  padding:11px 13px;color:var(--text);font:inherit;margin-bottom:9px}
.set-input:focus{outline:none;border-color:var(--accent)}
.set-links{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.set-link-row{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);
  border-radius:11px;padding:9px 12px}
.set-link-l{flex:1;display:flex;flex-direction:column;min-width:0}
.set-link-l b{font-size:14px}
.set-link-l i{font-style:normal;font-size:12px;color:var(--text-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.set-link-x{background:none;border:0;color:#e3415b;font-size:15px;cursor:pointer;padding:4px 6px}
.set-link-add{display:flex;flex-direction:column;gap:0}
.set-link-add .set-input{margin-bottom:8px}
/* выплаты в дашборде */
.earn-payout{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin:12px 0}
.earn-pay-row{display:flex;align-items:center;justify-content:space-between;font-size:15px;color:var(--text)}
.earn-pay-row b{font-size:20px;font-weight:800;color:#34c759}
.earn-pay-row.sub{font-size:13px;color:var(--text-mute);margin-top:4px}
.earn-pay-w{font-size:12px;color:var(--text-mute);margin-top:9px}
.earn-pay-w a{color:var(--gold);text-decoration:none}
.earn-pay-set{display:inline-block;margin-top:9px;color:var(--gold);text-decoration:none;font-weight:700;font-size:13px}
/* админ-выплаты */
.po-list{display:flex;flex-direction:column;gap:11px}
.po-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px}
.po-top{display:flex;align-items:center;justify-content:space-between}
.po-top b{font-size:16px}
.po-avail{font-size:18px;font-weight:800;color:#34c759}
.po-meta{font-size:12px;color:var(--text-mute);margin-top:3px}
.po-wallet{font-size:12px;color:var(--text-dim);margin-top:6px;word-break:break-all}
.po-nowallet{font-size:12px;color:#e3a341;margin-top:6px}
.po-form{margin-top:11px}
.po-form .btn-gold{width:100%}

/* ── единый набор line-иконок (_icons.html) ── */
.ico{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;
  stroke-linejoin:round;vertical-align:-4px;flex:0 0 auto}
.ig-top-act .ico{width:23px;height:23px;vertical-align:-5px}
.set-row .ico,.set-toggle .ico{width:21px;height:21px;vertical-align:-5px;margin-right:4px}
.cp-btn .ico,.pr-up .ico{width:18px;height:18px;vertical-align:-4px;margin-right:3px}
.ig-multi .ico,.ig-lock .ico,.ig-views .ico{width:14px;height:14px;vertical-align:-2px;stroke-width:2.2}
.stu-tab .ico,.cp-menu .ico{width:18px;height:18px;vertical-align:-4px;margin-right:5px}
.stu-earn .ico{width:20px;height:20px;vertical-align:-4px;margin-right:5px}
.stu-ic .ico{width:32px;height:32px;vertical-align:middle;stroke-width:1.7}
.cp-tabs .ico{width:16px;height:16px;vertical-align:-3px;margin-right:4px}
.cp-link .ico{width:16px;height:16px}
.cp-private-ic .ico{width:42px;height:42px;stroke-width:1.6}
.cp-msg .ico{width:19px;height:19px;vertical-align:-4px}
.cp-menu .ico{width:17px;height:17px;vertical-align:-3px;margin-right:7px}
.cp-av-cam .ico{width:15px;height:15px;stroke:#fff}
.theme-opt .ico{width:25px;height:25px;vertical-align:0}
.theme-opt.on .ico{stroke:var(--gold)}
.set-input::placeholder{color:var(--text-mute)}

/* ── плавные переходы между страницами (View Transitions API) ── */
@view-transition{ navigation: auto; }
::view-transition-old(root){ animation: vt-out .18s ease both; }
::view-transition-new(root){ animation: vt-in .22s cubic-bezier(.22,.61,.36,1) both; }
@keyframes vt-out{ to{ opacity:0 } }
@keyframes vt-in{ from{ opacity:0; transform:translateY(8px) } }
.tabbar{ view-transition-name:tabbar }          /* бар не перетекает — стоит на месте */
::view-transition-group(tabbar){ animation-duration:0s }
body.appshell, .appshell a, .appshell button{ -webkit-tap-highlight-color:transparent }

/* wh-safearea-top */
@media(max-width:880px){
  body:not(.appshell) .content{padding-top:max(64px, calc(env(safe-area-inset-top) + 18px))}
  .mobile-burger,.mobile-auth{top:calc(env(safe-area-inset-top, 0px) + 8px)}
}

/* Автоперевод в личке (desk): подпись-перевод под входящим + кнопка RU→EN */
.msg-tr{font-size:.82rem;color:#b7a8bf;margin:3px 6px 2px;max-width:80%;line-height:1.35;opacity:.9}
.msg-in .msg-tr{margin-right:auto}
.msg-trbtn{background:#2a1f33;border:1px solid var(--border,#3a2a44);color:#d7bff0;border-radius:12px;padding:0 11px;font-size:.74rem;font-weight:800;letter-spacing:.04em;white-space:nowrap;cursor:pointer;align-self:stretch}
.msg-trbtn:hover{background:#352741}
.msg-trbtn:disabled{opacity:.6;cursor:default}

/* Единый инбокс: метка модели в строке диалога */
.dm-model{display:inline-block;font-size:.72rem;font-weight:700;color:#e6c98f;background:#2a1f12;border:1px solid #4a3a1f;border-radius:8px;padding:1px 7px;margin-left:5px;vertical-align:middle}

/* Десктоп-веб: вид ДИАЛОГА инбокса на всю высоту, композер внизу, лента скроллится внутри.
   Скоуп :has(.msg-form) = только открытый диалог (список и пейволл не трогаем). */
@media (min-width: 861px){
  body:not(.appshell) .content:has(.msg-form){
    height:calc(100vh - 58px); padding:0; display:flex; flex-direction:column; overflow:hidden;
  }
  body:not(.appshell) .content:has(.msg-form) .msg-wrap{
    flex:1; min-height:0; display:flex; flex-direction:column;
    max-width:900px; width:100%; margin:0 auto; padding:14px 24px 0;
  }
  body:not(.appshell) .content:has(.msg-form) .msg-head{flex:0 0 auto}
  body:not(.appshell) .content:has(.msg-form) .msg-thread{flex:1; overflow-y:auto; min-height:0; margin-bottom:0}
  body:not(.appshell) .content:has(.msg-form) .msg-form{
    flex:0 0 auto; position:sticky; bottom:0; background:var(--bg,#0f0a0d); padding:10px 0 12px;
  }
}

/* Панель реакций: hidden должен реально скрывать (класс .react-bar display:flex перебивал) */
.react-bar[hidden]{display:none!important}
/* Пузырь сообщения обнимает контент, не растягивается в столбик */
.msg-b{width:-moz-fit-content;width:fit-content;height:auto}

/* Пузырь: убить любое flex-растяжение (align-self + фикс flex), скоуп — диалог в вебе */
body:not(.appshell) .content:has(.msg-form) .msg-b{
  height:auto!important;max-height:none!important;width:-moz-fit-content!important;width:fit-content!important;
  align-self:flex-start!important;flex:0 0 auto!important
}
body:not(.appshell) .content:has(.msg-form) .msg-out .msg-b{align-self:flex-end!important}

/* Пузырь обнимает контент во ВСЕХ режимах (вкл. app-режим/appshell) — тред открывается с ?app=1 */
.msg-b{height:auto!important;max-height:none!important;align-self:flex-start!important;flex:0 0 auto!important;
  width:-moz-fit-content!important;width:fit-content!important}
.msg-out .msg-b{align-self:flex-end!important}
.msg-b:has(.msg-img){width:auto!important}

/* ФИКС высоты пузыря: white-space:pre-wrap на .msg-b рендерил пробелы/переносы Jinja-разметки
   (пустые строки от {% if %}/{% elif %}/{% endif %}) как реальные пустые строки → бабл раздувался
   в столбик. height:auto тут не спасал — контент реально имел высоту. Переносим pre-wrap на сам
   текст (.msg-txt содержит только тело сообщения, без разметочных пробелов). */
.msg-b{white-space:normal!important}
.msg-txt{white-space:pre-wrap;word-break:break-word}

/* ═══════════ REDESIGN v2 — content-first home ═══════════ */
.nh-hero{padding:40px 2px 26px;max-width:640px}
.nh-kick{color:var(--gold);font-weight:700;letter-spacing:.16em;font-size:.75rem;text-transform:uppercase;margin-bottom:14px}
.nh-word{font-size:2.1rem;font-weight:800;letter-spacing:1.5px;line-height:1.05;margin-bottom:12px}
.nh-sub{color:var(--text-dim);font-size:1.05rem;max-width:46ch;margin-bottom:22px;line-height:1.5}
.nh-hero .hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.nh-word .brand-wild{color:var(--text)}
.vid-grid{gap:26px 22px}
.vid-card{background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.vid-card .vc-thumb{border-radius:13px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.4);transition:transform .25s ease,box-shadow .25s ease}
.vid-card:hover .vc-thumb{transform:translateY(-4px);box-shadow:0 16px 38px rgba(0,0,0,.55)}
.vc-meta{padding:12px 2px 0!important;background:none!important;border:0!important}
.vc-title{font-weight:600!important}
.rec-card{box-shadow:none;border-radius:14px}
.rec-card:hover{box-shadow:0 16px 38px rgba(0,0,0,.5)}
.row-head{margin-top:44px;margin-bottom:18px}
.nh-promo{margin-top:64px;padding-top:34px;border-top:1px solid var(--border)}
.nh-promo-head{display:flex;align-items:baseline;gap:22px;flex-wrap:wrap;margin-bottom:6px}
.nh-promo-head h2{font-size:1.5rem;color:var(--text)}
.nh-promo .pf-stats{border:0;padding:8px 0}
.nh-promo .pf-tier{box-shadow:none}
.crypto40-banner,.discount-banner{margin-top:16px}

/* ═══ REDESIGN cine — big video hero on home ═══ */
.nh-cine{position:relative;height:56vh;min-height:380px;max-height:600px;border-radius:18px;overflow:hidden;margin:2px 0 10px;background:linear-gradient(120deg,#3a1622,#1a1013 60%)}
.nh-cine-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(1.05) brightness(.82) blur(1px);transform:scale(1.04)}
.nh-cine-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(13,10,12,.92),rgba(13,10,12,.5) 46%,rgba(13,10,12,.12) 74%),linear-gradient(0deg,rgba(13,10,12,.9),transparent 55%)}
.nh-cine-in{position:absolute;left:0;bottom:0;z-index:3;padding:0 36px 38px;max-width:600px}
.nh-cine-in .nh-kick{color:var(--gold);font-weight:700;letter-spacing:.16em;font-size:.75rem;text-transform:uppercase;margin-bottom:12px}
.nh-cine-in .nh-word{font-size:2.7rem;font-weight:800;letter-spacing:1.5px;line-height:1.03;margin-bottom:12px}
.nh-cine-in .nh-word .brand-wild{color:#fff}
.nh-cine-in .nh-sub{color:#e7dde2;font-size:1.05rem;max-width:42ch;margin-bottom:22px;line-height:1.5}
.nh-cine-in .hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.nh-cine-snd{position:absolute;right:18px;bottom:18px;z-index:4;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:15px;cursor:pointer;color:#fff;background:rgba(13,10,12,.5);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2)}
@media(max-width:760px){.nh-cine{height:44vh;min-height:300px}.nh-cine-in{padding:0 18px 22px}.nh-cine-in .nh-word{font-size:2rem}}

/* ═══════════ REDESIGN nav — topbar + sidebar (modern SVG) ═══════════ */
svg.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;display:block;flex:0 0 auto}

.topbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:16px;height:58px;padding:0 22px;background:rgba(13,10,12,.82);backdrop-filter:saturate(1.2) blur(12px);-webkit-backdrop-filter:saturate(1.2) blur(12px);border-bottom:1px solid var(--border)}
.tb-menu{display:none;background:none;border:0;color:var(--text-dim);cursor:pointer;padding:6px;margin-left:-6px;border-radius:8px}
.tb-menu:hover{color:var(--text);background:rgba(255,255,255,.06)}
.tb-logo{font-weight:800;letter-spacing:1px;font-size:1.12rem;white-space:nowrap}
.tb-logo .brand-wild{color:var(--text)}.tb-logo .brand-harmony{color:var(--gold);margin-left:2px}
.tb-nav{display:flex;gap:4px;margin-left:8px}
.tb-nav a{color:var(--text-dim);font-size:.93rem;font-weight:500;padding:8px 13px;border-radius:9px;white-space:nowrap}
.tb-nav a:hover{color:var(--text);background:rgba(255,255,255,.05)}
.tb-nav a.on{color:var(--text);background:rgba(255,255,255,.07)}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.tb-ic{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:var(--text-dim)}
.tb-ic:hover{color:var(--text);background:rgba(255,255,255,.06)}
.tb-badge{position:absolute;top:3px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;font-style:normal}
.tb-signin{color:var(--text-dim);font-weight:600;font-size:.92rem;padding:8px 12px;border-radius:9px}
.tb-signin:hover{color:var(--text)}
.tb-join{padding:9px 18px!important;font-size:.92rem;border-radius:9px!important;box-shadow:none!important}
.tb-acct{position:relative}
.tb-acct summary{list-style:none;cursor:pointer;display:grid;place-items:center}
.tb-acct summary::-webkit-details-marker{display:none}
.tb-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.9rem;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-dark))}
.tb-pop{position:absolute;top:calc(100% + 8px);right:0;min-width:196px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:0 14px 40px rgba(0,0,0,.55);z-index:120}
.tb-pop-nm{padding:9px 12px 8px;font-weight:700;color:var(--text);border-bottom:1px solid var(--border);margin-bottom:4px;font-size:.9rem}
.tb-pop a{display:block;padding:9px 12px;border-radius:8px;color:var(--text-dim);font-size:.9rem;font-weight:500}
.tb-pop a:hover{background:rgba(255,255,255,.06);color:var(--text)}

.sidebar{position:fixed;top:58px;left:0;width:232px;height:calc(100vh - 58px);z-index:90;background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:14px 0;background-image:none}
.s-nav{display:flex;flex-direction:column;gap:2px;padding:6px 12px}
.s-nav a{display:flex;align-items:center;gap:12px;padding:10px 13px;border-radius:10px;color:var(--text-dim);font-size:.94rem;font-weight:500;transition:.12s;box-shadow:none}
.s-nav a span{flex:1}
.s-nav a:hover{background:rgba(255,255,255,.05);color:var(--text)}
.s-nav a:hover .ic,.s-nav a.on .ic{color:var(--gold)}
.s-nav a.on{background:rgba(255,255,255,.07);color:var(--text)}
.s-nav .ic{color:var(--text-mute)}
.s-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:.68rem;padding:1px 7px;border-radius:10px;font-style:normal;font-weight:700}
.s-discount{display:flex;align-items:center;gap:12px;margin:6px 12px;padding:10px 13px;border-radius:10px;color:var(--gold-soft);border:1px solid rgba(201,162,75,.28);font-size:.92rem;font-weight:600}
.s-discount:hover{background:rgba(201,162,75,.08)}
.s-discount .ic{color:var(--gold)}
.s-foot{margin-top:auto;padding:14px 20px 6px}
.s-login{display:block;text-align:center;box-shadow:none!important}
.s-18{color:var(--text-mute);font-size:.72rem;margin-top:12px}

.content{padding:26px 34px 80px;max-width:none;margin:0}
body.logged .content{margin-left:232px}
body.guest .content{margin-left:auto;margin-right:auto;max-width:1240px}
body.guest .sidebar{display:none}

.nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:88;opacity:0;pointer-events:none;transition:opacity .2s}

@media(max-width:900px){
  .tb-nav{display:none}
  .tb-menu{display:grid}
  .content{padding:18px 16px 84px;margin-left:0!important;margin-right:0!important;max-width:none!important}
  .sidebar,body.guest .sidebar{display:flex!important;transform:translateX(-100%);transition:transform .24s ease;box-shadow:0 0 44px rgba(0,0,0,.6)}
  body.nav-open .sidebar{transform:none}
  body.nav-open .nav-backdrop{opacity:1;pointer-events:auto}
  .tb-join{padding:8px 14px!important}
}
@media(max-width:430px){
  .topbar{gap:10px;padding:0 14px}
  .tb-signin{display:none}
}

/* feed get-app pill icon (SVG, no 90s emoji) */
.feed-getapp{display:inline-flex;align-items:center;gap:7px}
.feed-getapp .ga-ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

/* smooth in-page anchors + offset for sticky topbar (58px) */
html{scroll-behavior:smooth}
#wh-feed,#models,#photos,#join,.nh-promo{scroll-margin-top:74px}

/* models catalog page */
.mdl-hero{padding:34px 0 20px;max-width:680px}
.mdl-h1{font-size:2rem;font-weight:800;letter-spacing:-.5px;margin:8px 0 8px;color:var(--text)}
.mdl-sub{color:var(--text-dim);line-height:1.5}
.mdl-grid{margin-top:6px}
.mdl-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.mdl-price{font-size:.78rem;color:var(--text-mute);background:rgba(255,255,255,.05);border:1px solid var(--border);padding:3px 9px;border-radius:999px;white-space:nowrap}
.row-link{color:var(--gold);font-weight:600;text-decoration:none}
.row-link:hover{filter:brightness(1.1)}

/* ═══════════ REDESIGN cine-fullbleed — cinematic home на всю страницу ═══════════ */
body.home .content{max-width:none;padding:0 0 64px}
body.home.guest .content{margin:0;margin-top:-58px}   /* герой под прозрачным топ-баром */
body.home.logged .content{margin-left:232px}
.topbar{transition:background .25s ease,border-color .25s ease}
body.home.guest .topbar{background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
body.home.guest.scrolled .topbar{background:rgba(13,10,12,.85);border-bottom-color:var(--border);backdrop-filter:saturate(1.2) blur(12px);-webkit-backdrop-filter:saturate(1.2) blur(12px)}

.nh-cine{position:relative;width:100%;height:78vh;min-height:540px;max-height:860px;border-radius:0;margin:0;overflow:hidden;display:flex;align-items:flex-end;background:linear-gradient(120deg,#3a1a28,#160f13 55%,var(--bg))}
.nh-cine-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(1.05) brightness(.8);transform:scale(1.04)}
.nh-cine-scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(13,10,12,.6),transparent 20%),
  linear-gradient(90deg,rgba(13,10,12,.9),rgba(13,10,12,.45) 48%,rgba(13,10,12,.08) 76%),
  linear-gradient(0deg,var(--bg),rgba(13,10,12,.25) 30%,transparent 56%)}
.nh-cine-in{position:relative;z-index:3;width:100%;max-width:1320px;margin:0 auto;padding:0 40px 60px;left:auto;bottom:auto}
.nh-live{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#eab0bd;background:rgba(178,52,88,.14);border:1px solid rgba(178,52,88,.34);border-radius:20px;padding:5px 12px;margin-bottom:18px;font-weight:700}
.nh-live i{width:7px;height:7px;border-radius:50%;background:#fff;animation:nhpulse 1.6s infinite}
@keyframes nhpulse{0%,100%{opacity:.4}50%{opacity:1}}
.nh-cine-in .nh-word{font-size:clamp(2.6rem,6vw,4.3rem);font-weight:800;letter-spacing:-.01em;line-height:1.02;margin-bottom:14px}
.nh-cine-in .nh-word .brand-wild{color:#fff}
.nh-cine-in .nh-sub{color:#e7dde2;font-size:1.06rem;max-width:44ch;margin-bottom:24px;line-height:1.5}
.nh-cine-snd{position:absolute;z-index:4;right:40px;bottom:56px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(20,14,17,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.22);cursor:pointer}
.nh-cine-snd svg{width:20px;height:20px;fill:currentColor;display:block}
.nh-cine-snd .snd-on{display:none}
.nh-cine-snd.on .snd-off{display:none}
.nh-cine-snd.on .snd-on{display:block}

.cine-body{max-width:1320px;margin:0 auto;padding:34px 40px 0}

.model-strip{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 14px;scroll-snap-type:x mandatory}
.model-strip::-webkit-scrollbar{height:8px}
.model-strip::-webkit-scrollbar-thumb{background:var(--card);border-radius:8px}
.ms-card{flex:0 0 auto;width:176px;aspect-ratio:3/4;border-radius:14px;overflow:hidden;position:relative;scroll-snap-align:start;border:1px solid var(--border);background:linear-gradient(135deg,var(--accent-dark),#241016);transition:transform .18s,border-color .18s}
.ms-card:hover{transform:translateY(-3px);border-color:var(--gold-soft)}
.ms-cover{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .3s}
.ms-card:hover .ms-cover{transform:scale(1.05)}
.ms-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,7,9,.9),transparent 58%)}
.ms-info{position:absolute;left:12px;right:12px;bottom:11px;z-index:2}
.ms-name{color:#fff;font-weight:700;font-size:1rem;line-height:1.15}
.ms-sub{color:var(--gold);font-size:.75rem;margin-top:2px}

@media(max-width:900px){
  body.home.guest .content{margin-top:-52px}
  .nh-cine{height:64vh;min-height:420px}
  .nh-cine-in{padding:0 16px 40px}
  .nh-cine-snd{right:16px;bottom:36px}
  .cine-body{padding:22px 16px 0}
  .ms-card{width:142px}
}

/* ═══ tier level accents — выделяем уровень (Silver<Gold<Platinum<VIP) ═══ */
.tier-name{font-weight:700}
.lvl-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:9px;vertical-align:1px;background:var(--text-mute);box-shadow:0 0 0 2px rgba(255,255,255,.05)}
button.tier-row{border-left-width:3px;border-left-style:solid;border-left-color:var(--border)}
.tier-row.lvl-silver{border-left-color:#c2c6d0}
.tier-row.lvl-silver .lvl-dot{background:#c2c6d0}
.tier-row.lvl-silver .tier-name{color:#e6e8ee}
.tier-row.lvl-gold{border-left-color:var(--gold)}
.tier-row.lvl-gold .lvl-dot{background:var(--gold)}
.tier-row.lvl-gold .tier-name{color:#ecd489}
.tier-row.lvl-platinum{border-left-color:#dfe1ea;background:rgba(223,225,234,.05)}
.tier-row.lvl-platinum .lvl-dot{background:linear-gradient(135deg,#fff,#c9b7e6)}
.tier-row.lvl-platinum .tier-name{color:#f1eef7}
.tier-row.lvl-vip{border-left-color:var(--accent);background:rgba(178,52,88,.09)}
.tier-row.lvl-vip .lvl-dot{background:var(--accent);box-shadow:0 0 0 2px rgba(178,52,88,.25)}
.tier-row.lvl-vip .tier-name{color:#f0b7c6}

/* nav dedup: десктоп — левое меню = «твоё» (разделы контента живут сверху) */
@media(min-width:901px){ body.logged .sidebar .s-dup{display:none} }
/* лёгкая подпись над левым меню (только десктоп+логин) */
body.logged .s-lbl{display:none}
@media(min-width:901px){ body.logged .s-lbl{display:block;padding:4px 26px 8px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute);font-weight:700} }

/* ═══ mobile hardening (redesign) ═══ */
html{overflow-x:clip}
img,video{max-width:100%}
@media(max-width:560px){
  .topbar{gap:8px;padding:0 12px}
  .tb-right{gap:3px}
  .tb-ic{width:36px;height:36px}
  .nh-cine-in .nh-word{font-size:clamp(2rem,8vw,2.9rem)}
  .nh-cine-in .nh-sub{font-size:.98rem}
  .cine-body{padding:20px 14px 0}
  .mdl-h1{font-size:1.6rem}
}

/* гость: тизер «зарегистрируйся и получи скидку» вместо −40% */
.path-promo-guest{display:block;text-align:center;text-decoration:none;background:rgba(192,21,48,.14);border:1px solid var(--gold-soft);color:var(--text-dim);border-radius:9px;padding:9px 12px;font-size:.85rem;line-height:1.35;margin-bottom:10px}
.path-promo-guest b{color:var(--gold)}
a.crypto40-banner.crypto40-guest{display:block;text-decoration:none}
a.crypto40-banner.crypto40-guest b{color:var(--gold)}

/* конверсия рег: home join-band + register perks */
.home-joinband{display:flex;align-items:center;gap:16px;justify-content:space-between;margin:26px 0 8px;padding:18px 22px;border-radius:16px;text-decoration:none;background:linear-gradient(120deg,var(--accent-dark),var(--card));border:1px solid var(--gold-soft)}
.home-joinband .jb-tx{display:flex;flex-direction:column;gap:3px}
.home-joinband .jb-tx b{color:#fff;font-size:1.05rem}
.home-joinband .jb-tx span{color:var(--text-dim);font-size:.9rem;line-height:1.4}
.home-joinband .jb-go{color:var(--gold);font-weight:800;white-space:nowrap}
.home-joinband:hover{filter:brightness(1.08)}
.reg-perks{list-style:none;padding:0;margin:2px 0 16px;display:flex;flex-direction:column;gap:8px;text-align:left}
.reg-perks li{color:var(--text-dim);font-size:.9rem;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:9px 13px}

/* выбор способа оплаты в модалке подписки (Crypto·TG / web·NOWPayments) */
.pay-sw{display:flex;gap:8px;margin:2px 0 12px}
.pay-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 6px;border-radius:11px;border:1px solid var(--border);background:var(--bg);color:var(--text-dim);font:inherit;font-size:.86rem;font-weight:700;cursor:pointer;line-height:1.15}
.pay-btn i{font-style:normal;font-weight:500;font-size:.68rem;opacity:.7}
.pay-btn.on{border-color:var(--gold);background:var(--card);color:var(--text)}
.pay-btn:hover{border-color:var(--gold-soft)}

/* owner-only KPI на главной (members / paid) — видно только владельцу */
.owner-kpi{display:flex;align-items:center;gap:7px;margin:0 0 2px;padding:9px 14px;background:linear-gradient(90deg,rgba(212,175,55,.13),transparent);border-bottom:1px solid var(--border);color:var(--text-dim);font-size:.83rem;font-weight:600;text-decoration:none}
.owner-kpi .ok-b{color:#fff;font-weight:800}
.owner-kpi .ok-gold{color:var(--gold,#d4af37)}
.owner-kpi .ok-l{margin-right:3px}
.owner-kpi .ok-sep{opacity:.4}
.owner-kpi .ok-arrow{margin-left:auto;color:var(--gold,#d4af37);font-weight:700}
.owner-kpi:hover{background:linear-gradient(90deg,rgba(212,175,55,.22),transparent)}
/* «Join free» — заметная бесплатная кнопка на профиле модели */
.cp-joinfree:not(.on){border-color:var(--gold,#d4af37);color:var(--gold,#d4af37);background:rgba(212,175,55,.09)}
.cp-joinfree:not(.on):hover{background:rgba(212,175,55,.18)}

/* «Join free» на полном профиле /m/ */
.mp-joinfree:not(.on){background:rgba(212,175,55,.12) !important;border:1px solid var(--gold,#d4af37) !important;color:var(--gold,#d4af37) !important}
.mp-joinfree.on{opacity:.72}

/* аккуратная сетка действий на профиле модели: равная ширина + Join free выделен */
.pf-actions{align-items:stretch;width:min(300px,100%);gap:9px}
.pf-actions .subs-pop{width:100%}
.pf-actions .subs-pop>summary{width:100%;text-align:center;box-sizing:border-box}
.pf-actions>.btn-accent,.pf-actions .badge-active{width:100%;text-align:center;box-sizing:border-box}
.pf-actions .mp-joinfree{width:100%;box-sizing:border-box;text-align:center;padding:10px 14px;font-size:.98rem;font-weight:800}
.pf-actions .mp-joinfree:not(.on){background:linear-gradient(180deg,var(--gold,#d4af37),var(--gold-soft,#b8912e)) !important;color:#1a1208 !important;border:0 !important;box-shadow:0 2px 12px rgba(212,175,55,.28)}
.pf-actions .mp-joinfree:not(.on):hover{filter:brightness(1.06);transform:translateY(-1px)}
.pf-actions .tip-form{width:100%}
.pf-actions .tip-form .tip-input{flex:1;width:auto}
.pf-actions .tip-form .btn-gold-sm{white-space:nowrap}
.pf-row2{display:flex;gap:8px}
.pf-row2 .btn-gold-sm{flex:1;text-align:center;box-sizing:border-box;white-space:nowrap}

/* профиль модели: действия горизонтальной полосой на всю ширину (баланс лево/право) */
.pf-actions{flex-basis:100%;width:auto;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:10px;margin-top:2px}
.pf-actions .subs-pop{width:auto}
.pf-actions .subs-pop>summary{width:auto;white-space:nowrap}
.pf-actions>.btn-accent,.pf-actions .badge-active{width:auto}
.pf-actions .mp-joinfree{width:auto;padding:9px 16px}
.pf-actions .tip-form{width:auto;margin:0}
.pf-actions .tip-form .tip-input{flex:0 0 60px;width:60px}
.pf-actions .pf-row2{display:flex;gap:8px;width:auto}
.pf-actions .pf-row2 .btn-gold-sm{flex:0 0 auto}
@media(max-width:560px){.pf-actions{padding:0 4px}}

/* Patreon-подобный шрифт заголовков (Bricolage Grotesque, самохостинг) */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:400 700;font-display:swap;src:url(/static/fonts/bricolage_0.woff2) format('woff2')}
:root{--serif:'Bricolage Grotesque','Iowan Old Style',Palatino,Georgia,serif}
h1,h2,h3,.pf-name,.cp-name,.row-head h2{font-family:var(--serif);letter-spacing:-.006em}
.pf-name,.cp-name{font-weight:600}

/* публичная соц-полоса в героe (members/this week/models/reels) */
.nh-proof{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;margin-top:22px;color:var(--text-dim);font-size:.86rem;font-weight:500}
.nh-proof b{color:#fff;font-weight:800;margin-right:3px}
.nh-proof i{opacity:.4;font-style:normal}
@media(max-width:560px){.nh-proof{font-size:.8rem;gap:4px 8px;margin-top:16px}}

/* 30-сек превью фри-видео для гостей */
.player{position:relative}
.preview-gate{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(13,10,12,.84),rgba(13,10,12,.97));backdrop-filter:blur(7px);text-align:center;padding:22px}
.preview-gate .pg-in{max-width:360px}
.preview-gate .pg-t{font-size:1.15rem;font-weight:800;color:#fff;margin-bottom:8px}
.preview-gate p{color:var(--text-dim);margin:0 0 16px;line-height:1.5}
.preview-gate .pg-login{display:block;margin-top:12px;color:var(--gold,#c9a24b);text-decoration:none;font-size:.88rem}

/* ── pinned welcome card (home) ── */
.nh-pinned{display:flex;gap:18px;align-items:stretch;margin:2px 0 26px;padding:16px;
  background:linear-gradient(135deg,rgba(178,52,88,.10),rgba(201,162,75,.05));
  border:1px solid var(--border);border-left:3px solid var(--gold,#c9a24b);border-radius:16px;
  text-decoration:none;transition:border-color .2s,transform .2s;overflow:hidden}
.nh-pinned:hover{border-color:var(--gold,#c9a24b);transform:translateY(-1px)}
.nhp-img{flex:0 0 200px;border-radius:12px;overflow:hidden;background:#0e0b0d}
.nhp-img img{width:100%;height:100%;object-fit:cover;display:block}
.nhp-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.nhp-badge{align-self:flex-start;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--gold,#c9a24b);background:rgba(201,162,75,.12);border:1px solid rgba(201,162,75,.22);
  padding:4px 10px;border-radius:20px}
.nhp-title{font-family:var(--serif);font-size:1.4rem;margin:9px 0 0;color:var(--text);line-height:1.22}
.nhp-ex{margin:7px 0 0;color:var(--text-dim);font-size:.92rem;line-height:1.5}
.nhp-cta{margin-top:11px;color:var(--gold,#c9a24b);font-weight:700;font-size:.9rem}
@media(max-width:640px){.nh-pinned{flex-direction:column;gap:12px}.nhp-img{flex:none;width:100%;height:180px}}

/* ── универсальная кнопка «назад» (base.html + app_base.html), 2026-07-10 ── */
.wh-back{position:sticky;top:12px;z-index:40;display:inline-flex;align-items:center;gap:5px;width:max-content;
  margin:0 0 16px;padding:8px 15px 8px 11px;border-radius:999px;text-decoration:none;
  background:color-mix(in srgb,var(--card) 92%,transparent);border:1px solid var(--border);
  color:var(--text);font-weight:700;font-size:.85rem;letter-spacing:.01em;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 22px -12px rgba(0,0,0,.6);transition:.16s}
.wh-back svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.wh-back:hover{border-color:var(--gold-soft);color:var(--gold);transform:translateY(-1px)}
.wh-back:active{transform:translateY(0)}
/* app-режим: плавающая круглая кнопка сверху-слева */
.wh-back--app{position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);left:10px;margin:0;z-index:60;
  padding:9px;border-radius:50%;box-shadow:0 6px 18px rgba(0,0,0,.5)}
.wh-back--app svg{width:20px;height:20px}

/* hero-кроссфейд: 2 видео-слоя, плавный переход между клипами без вспышки постера, 2026-07-10 */
.nh-cine-v{transition:opacity .7s ease}
.nh-cine-v2{opacity:0}
