:root{--bg:#12101a;--card:#1b1823;--ink:#f1ece6;--mute:#b4acc0;--line:#322a3c;--accent:#c0262f;--accent-ink:#fff;--field:#100e16;
color-scheme:dark;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#12101a;--card:#1b1823;--ink:#f1ece6;--mute:#b4acc0;--line:#322a3c;--accent:#c0262f;--accent-ink:#fff;--field:#100e16;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#12101a;--card:#1b1823;--ink:#f1ece6;--mute:#b4acc0;--line:#322a3c;--accent:#c0262f;--accent-ink:#fff;--field:#100e16;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.7 "PT Serif",Georgia,"Times New Roman",serif;min-height:100vh;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 30% 40%,rgba(130,40,60,.13),transparent 40%),
    radial-gradient(circle at 70% 60%,rgba(40,70,95,.12),transparent 45%),
    radial-gradient(ellipse at 50% -10%,#3d1a2c 0,transparent 55%),
    radial-gradient(ellipse at 85% 105%,#14303a 0,transparent 50%);
  transform:translate3d(0,0,0)}
body::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.5) 100%);transform:translate3d(0,0,0)}
@keyframes fog{to{transform:translate(6%,4%) scale(1.12)}}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){body::before{inset:-20%;animation:fog 45s ease-in-out infinite alternate}}
.wrap{max-width:720px;margin:0 auto;padding:20px 16px 60px;position:relative;z-index:1}
header{text-align:center;padding:28px 0 18px}
h1{margin:0;font-family:"Playfair Display",Georgia,serif;font-size:clamp(30px,7vw,44px);letter-spacing:.03em;font-weight:700}
h1 span{color:var(--accent);text-shadow:0 0 20px rgba(179,32,42,.7)}
.sub{color:var(--mute);font-style:italic;margin:6px 0 0}
button,input,select,textarea{font:inherit;color:inherit}
.btn{background:var(--accent);color:var(--accent-ink);border:0;border-radius:6px;padding:10px 18px;cursor:pointer}
.btn:disabled{opacity:.5;cursor:default}
.ghost{background:none;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:7px 14px;cursor:pointer}
.ghost.on{border-color:var(--accent);color:var(--accent)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.center{justify-content:center;margin:14px 0}
input,select,textarea{width:100%;background:var(--field);border:1px solid var(--line);border-radius:6px;padding:10px;margin:0 0 10px}
textarea{min-height:140px;resize:vertical}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin:0 0 14px;box-shadow:0 4px 14px rgba(0,0,0,.5)}
#rbody,#crb,#mpanel{overscroll-behavior:contain}
.story{cursor:pointer}
.story:hover{border-color:var(--accent);box-shadow:0 0 22px rgba(179,32,42,.28)}
.story h2{margin:0 0 4px;font-family:"Playfair Display",Georgia,serif;font-size:22px;line-height:1.3;font-weight:700}
.meta{color:var(--mute);font-size:15px}
.tag{display:inline-block;border:1px solid var(--line);border-radius:99px;padding:0 9px;font-size:13px;margin-right:6px}
.excerpt{margin:8px 0 0;color:var(--ink);opacity:.92}
.body{white-space:pre-wrap;overflow-wrap:anywhere;margin:14px 0}
.cm{border-top:1px solid var(--line);padding:10px 0}
.cm p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.note{text-align:center;color:var(--mute);padding:20px}
.err{color:var(--accent);margin:0 0 10px}
h3{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:20px;margin:22px 0 8px}
.hide{display:none!important}
#age{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,8,14,.94)}
#age.hide{display:none}
.ov{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,8,14,.9)}
.ov.hide{display:none}
.ov .card{max-width:520px;width:100%;margin:0;max-height:85vh;overflow:auto}
.ov ul{padding-left:20px;margin:8px 0 14px}
footer a{color:var(--mute)}
.pg #rbody{overflow-x:auto!important;overflow-y:hidden!important;padding-right:0!important;scrollbar-width:none}
.pg #rbody::-webkit-scrollbar{display:none}
.day{border-color:var(--accent);box-shadow:0 0 24px rgba(192,38,47,.25)}
.cvr{float:left;width:72px;height:108px;object-fit:cover;border-radius:6px;margin:0 12px 6px 0;background:var(--field)}
.cvr.big{width:140px;height:210px}
.card::after{content:"";display:block;clear:both}
.cb{max-width:82%;padding:9px 13px;border-radius:16px;margin:8px 0;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap;animation:cbin .25s ease-out}
.cb.no-anim{animation:none}
.cb.me{margin-left:auto;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px}
.cb.ot{margin-right:auto;background:var(--field);border:1px solid var(--line);border-bottom-left-radius:4px}
.cb.sys{max-width:100%;text-align:center;color:var(--mute);font-style:italic;background:none;padding:4px}
.cb.typ{color:var(--mute);font-style:italic}
.cn{font-size:12px;color:var(--mute);margin-bottom:2px}
@keyframes cbin{from{opacity:0;transform:translateY(8px)}}
#bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;display:flex;align-items:center;gap:12px;padding:8px 0;background:rgba(18,16,26,.95)}
@media (hover:hover) and (pointer:fine){#bar{background:rgba(18,16,26,.88);backdrop-filter:blur(8px)}}
#burger{display:flex;align-items:center;padding:8px 12px}
#menu{position:fixed;inset:0;z-index:35;display:none}
#menu.open{display:block}
#mbg{position:absolute;inset:0;background:rgba(0,0,0,.6)}
#mpanel{position:absolute;left:0;top:0;bottom:0;width:min(86vw,340px);overflow:auto;background:var(--card);border-right:1px solid var(--line);padding:calc(16px + env(safe-area-inset-top,0px)) 14px calc(20px + env(safe-area-inset-bottom,0px));animation:mslide .18s ease-out}
@keyframes mslide{from{transform:translateX(-100%)}}
.mi{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;background:none;border:0;border-radius:6px;padding:9px 10px;cursor:pointer;color:var(--ink)}
.mi:hover,.mi.on{background:rgba(192,38,47,.18)}
.mi.on{color:var(--accent)}
.mi span:first-child{overflow-wrap:anywhere}
.mt{margin:16px 10px 4px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.rp{margin-left:20px;border-left:2px solid var(--line);padding-left:12px}
.rp input,.rp textarea{margin-bottom:8px}
/* профиль */
.profile-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.profile-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;background:var(--field);flex:none;border:2px solid var(--line)}
.profile-avatar-ph{display:flex;align-items:center;justify-content:center;font-family:"Playfair Display",Georgia,serif;font-size:32px;color:var(--accent)}
.hero{text-align:center;padding:26px 16px 20px;margin:0 0 14px;border:1px solid var(--line);border-radius:12px;background:radial-gradient(ellipse at 50% 0,rgba(192,38,47,.24),transparent 65%),var(--card)}
.hero h2{font-family:"Playfair Display",Georgia,serif;font-size:clamp(26px,6.5vw,40px);line-height:1.2;margin:0 0 10px;font-weight:700}
.hero p{color:var(--mute);margin:0 auto 16px;max-width:520px}
.shh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:24px 0 4px}
.shh h3{margin:0}
.shh a{color:var(--accent);white-space:nowrap}
.shelf{display:flex;gap:12px;overflow-x:auto;padding:6px 2px 12px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.shelf::-webkit-scrollbar{display:none}
.tile{flex:none;width:120px;cursor:pointer;scroll-snap-align:start}
.tile .cv{width:120px;height:180px;border-radius:8px;object-fit:cover;background:var(--field);display:block;border:1px solid var(--line)}
.tile .ph{display:flex;align-items:center;justify-content:center;font-size:38px;background:linear-gradient(160deg,#3a1624,#14111c)}
.tile:hover .cv{border-color:var(--accent);box-shadow:0 0 18px rgba(192,38,47,.3)}
.tile .tt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.3;margin-top:6px;font-weight:700}
.tile .tm{display:block;font-size:12px;color:var(--mute);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:22px 0 14px}
.bal{font:700 34px/1.2 "Playfair Display",Georgia,serif;color:var(--ink)}
.tx{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--line)}
@media (hover:none){body::after{display:none}.card{box-shadow:0 2px 8px rgba(0,0,0,.35)}}

/* ===== добавлено при переносе на Django ===== */
.status{text-align:center;color:var(--mute);padding:10px 20px;margin:0}
.status.error{color:var(--accent)}
.status.success{color:var(--ink)}
.field{margin:0 0 12px}
.field label{display:block;color:var(--mute);font-size:15px;margin:0 0 4px}
.field .help,.help{color:var(--mute);font-size:13px;margin:4px 0 0}
.errorlist{list-style:none;margin:4px 0 0;padding:0;color:var(--accent);font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 10px;padding:0}
.chips label{display:inline-block;border:1px solid var(--line);border-radius:6px;padding:7px 14px;cursor:pointer;color:var(--ink)}
.chips input{position:absolute;opacity:0;width:0;height:0;margin:0}
.chips label:has(input:checked){border-color:var(--accent);color:var(--accent)}
.check{display:flex;gap:8px;align-items:flex-start;color:var(--mute)}
.check input{width:auto;margin:5px 0 0}
a.btn,a.ghost{text-decoration:none;display:inline-block}
a{color:var(--accent)}
.inline{display:inline;margin:0}
.inline .ghost,.inline .btn{display:inline-block}
.linkbtn{background:none;border:0;padding:0;color:var(--accent);cursor:pointer}
.pager{display:flex;justify-content:center;gap:10px;margin:14px 0}
details.reply summary{cursor:pointer;color:var(--accent);display:inline}
details.reply[open] summary{margin-bottom:6px}
.bar-track{height:8px;border-radius:4px;background:var(--field);overflow:hidden;margin-top:4px}
.bar-fill{height:100%;background:var(--accent)}
.avatar-sm{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--line);background:var(--field)}
/* читалка и переписка — полноэкранные */
.screen{position:fixed;inset:0;z-index:5;display:flex;justify-content:center;background:var(--bg)}
.screen .card{max-width:760px;width:100%;height:100%;margin:0;border-radius:0;display:flex;flex-direction:column;max-height:none}
.screen.chat .card{max-width:520px}
#age .card{margin:0}
a.story,a.tile{color:var(--ink);text-decoration:none;display:block}
a.tile{display:block;color:inherit}
.row form{margin:0}
a.mi{text-decoration:none}
form .mi{font:inherit}
