/* Карта домов: слой поверх радио-карты. Телефон — шторка снизу в три
   положения, широкий экран — колонка справа. Иконки вместо подписей,
   у каждой aria-label и title. */
:root{--d-bg:#110e09;--d-line:rgba(243,236,222,.12);--d-t:#f2ece1;
  --d-mut:#a39683;--d-amb:#e2a24a;--d-amb2:rgba(226,162,74,.16)}

.dctl{position:fixed;left:12px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:540;
  display:flex;flex-direction:column;gap:8px}
.dctl button{width:42px;height:42px;border-radius:12px;background:rgba(20,16,9,.82);
  border:0;color:var(--d-mut);display:grid;place-items:center;cursor:pointer;
  -webkit-tap-highlight-color:transparent}
.dctl button:hover{color:var(--d-t)}
.dctl button.off{opacity:.55}
.dctl button.on{color:var(--d-amb)}
.dctl svg{width:20px;height:20px}

/* поиск */
.dsearch{position:fixed;left:62px;bottom:calc(68px + env(safe-area-inset-bottom));z-index:545;
  width:min(420px,calc(100vw - 76px));background:var(--d-bg);border:0;
  border-radius:14px;display:none;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.dsearch.on{display:block}
.dsearch input{width:100%;box-sizing:border-box;background:transparent;border:0;outline:0;
  color:var(--d-t);font:16px/1.3 Gol,system-ui,sans-serif;padding:13px 14px;
  border-bottom:1px solid var(--d-line)}
.dsearch ul{list-style:none;margin:0;padding:0;max-height:48vh;overflow:auto}
.dsearch li{padding:9px 14px;cursor:pointer}
.dsearch li:hover,.dsearch li.act{background:var(--d-amb2)}
.dsearch li b{display:block;color:var(--d-t);font-weight:500;font-size:14.5px}
.dsearch li small{color:var(--d-mut);font-size:12px;opacity:.8}
.dsearch li i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;
  background:var(--d-amb);vertical-align:1px}
.dsearch li i.g1{background:transparent;border:1px solid var(--d-mut)}

/* карточка */
.dcard{position:fixed;z-index:560;background:var(--d-bg);color:var(--d-t);
  font:15px/1.52 Gol,system-ui,sans-serif;display:flex;flex-direction:column;
  border:0;transition:transform .24s cubic-bezier(.2,.8,.2,1);
  -webkit-font-smoothing:antialiased}
.dcard[hidden]{display:none}
.dcard .dhead{display:flex;align-items:center;gap:0;padding:4px 4px 0 8px;flex:none}
.dcard .dgrip{flex:1;height:22px;cursor:grab;position:relative}
.dcard .dgrip:before{content:"";position:absolute;left:50%;top:9px;width:38px;height:4px;
  margin-left:-19px;border-radius:2px;background:rgba(243,236,222,.22)}
.dcard .dbtn{width:40px;height:40px;border:0;background:transparent;color:var(--d-mut);opacity:.75;
  display:grid;place-items:center;border-radius:10px;cursor:pointer;flex:none;padding:0}
.dcard .dbtn:hover{color:var(--d-t);opacity:1;background:rgba(243,236,222,.06)}
.dcard .dbtn.ok{color:var(--d-amb);opacity:1}
.dcard .dbtn svg{width:19px;height:19px}
.dcard .dbody{overflow:auto;-webkit-overflow-scrolling:touch;padding:0 16px 28px;flex:1;
  overscroll-behavior:contain}
.dcard h1,.dcard h2.dt{font:600 19px/1.25 Gol,system-ui,sans-serif;margin:2px 0 3px;letter-spacing:-.01em}
.dcard .dsub{color:var(--d-mut);font-size:12.5px;line-height:1.4;margin:0 0 10px;opacity:.85}
.dcard .daka{color:var(--d-mut);font-size:12px;margin:-6px 0 10px;font-style:italic;opacity:.7}
.dcard .dshort{font-size:15.5px;line-height:1.48;margin:4px 0 12px}
.dcard p{margin:0 0 11px}
.dcard sup a{color:var(--d-mut);text-decoration:none;font-size:10px;padding:0 2px;opacity:.7}
.dcard sup a:hover{color:var(--d-amb);opacity:1}

/* лента фото: первая крупно, остальные — полоской */
.dphw{position:relative;margin:4px -16px 12px}
.dph{display:flex;gap:4px;overflow-x:auto;padding:0 16px;scroll-padding:0 16px;
  scroll-snap-type:x proximity;scrollbar-width:none;cursor:pointer}
.dph.grab{cursor:grabbing;scroll-snap-type:none}
.dph.grab a{pointer-events:none}
.dph::-webkit-scrollbar{display:none}
.dph a{flex:none;position:relative;scroll-snap-align:start;border-radius:8px;overflow:hidden;
  background:#1d1810;height:150px}
.dph a:first-child{height:190px}
.dph img{-webkit-user-drag:none;user-select:none}
.dph img{height:100%;width:auto;display:block;min-width:90px;object-fit:cover}
.dph a span{position:absolute;left:5px;bottom:5px;background:rgba(0,0,0,.5);color:rgba(255,255,255,.85);
  font-size:10.5px;padding:0 5px;border-radius:5px}
/* стрелки ленты — только там, где есть мышь, и только когда есть куда ехать */
.dpa{display:none;position:absolute;top:50%;margin-top:-16px;width:32px;height:32px;border-radius:50%;
  border:0;background:rgba(13,10,6,.72);color:var(--d-t);place-items:center;cursor:pointer;padding:0;z-index:2}
.dpa svg{width:18px;height:18px}
.dpl{left:8px}.dpr{right:8px}
@media (hover:hover){
  .dphw.can-l:hover .dpl,.dphw.can-r:hover .dpr{display:grid}
}

/* плеер */
.dplay{display:flex;align-items:center;gap:10px;margin:2px 0 12px;padding:0}
.dplay button{width:38px;height:38px;border-radius:50%;border:0;background:var(--d-amb);
  color:#1a1208;display:grid;place-items:center;cursor:pointer;flex:none}
.dplay .dtr{flex:1;height:3px;border-radius:2px;background:rgba(243,236,222,.13);position:relative;cursor:pointer}
.dplay .dtr:before{content:"";position:absolute;left:0;right:0;top:-12px;bottom:-12px}
.dplay .dtr i{position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:var(--d-amb);width:0}
.dplay time{font-size:11.5px;color:var(--d-mut);min-width:32px;text-align:right;opacity:.8;font-variant-numeric:tabular-nums}

/* люди, вопросы, ссылки */
.dpeople{display:flex;flex-wrap:wrap;gap:2px 14px;margin:4px 0 12px}
.dpeople a,.dpeople span{font-size:13px;padding:2px 0;color:var(--d-t);text-decoration:none;opacity:.9}
.dpeople small{color:var(--d-mut);font-size:11.5px;opacity:.8}
.dq{margin:16px 0 6px}
.dq a{display:flex;gap:10px;align-items:flex-start;padding:7px 0;color:var(--d-t);text-decoration:none;
  font-size:14px;line-height:1.35}
.dq a:hover{color:var(--d-amb)}
.dq a svg{flex:none;width:17px;height:17px;color:var(--d-amb);margin-top:1px;opacity:.85}
.dlinks{display:flex;flex-wrap:wrap;gap:0;margin:12px -10px 0}
.dlinks a{width:40px;height:40px;border-radius:10px;border:0;
  display:grid;place-items:center;color:var(--d-mut);text-decoration:none;opacity:.6;
  font:600 11px/1 Gol,system-ui,sans-serif}
.dlinks a:hover{color:var(--d-t);opacity:1}
.dlinks a svg{width:17px;height:17px}
.dsrc{color:var(--d-mut);font-size:11px;line-height:1.4;margin-top:6px;opacity:.55}
.dsrc a{color:inherit}

/* телефон: шторка снизу, три положения (peek / half / full) */
@media (max-width:899px){
  .dcard{left:0;right:0;bottom:0;height:92vh;height:92dvh;border-radius:16px 16px 0 0;
    padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -10px 40px rgba(0,0,0,.45);
    transform:translateY(calc(100% - var(--dpeek,150px)))}
  .dcard.half{transform:translateY(42%)}
  .dcard.full{transform:translateY(0)}
  .dcard.drag{transition:none}
  .dcard:not(.half):not(.full) .dbody{overflow:hidden}
}
/* широкий экран: колонка справа, карта слева свободна */
@media (min-width:900px){
  .dcard{top:72px;right:12px;bottom:12px;width:420px;border-radius:16px;
    box-shadow:0 18px 50px rgba(0,0,0,.55)}
  .dcard .dgrip{cursor:default}
  .dcard .dgrip:before{display:none}
  .dph a{height:170px}.dph a:first-child{height:220px}
}
@media (min-width:1500px){.dcard{width:480px}}

/* подпись снимка в просмотрщике */
.pswp__dcap{position:absolute;left:0;right:0;bottom:0;padding:14px 16px calc(14px + env(safe-area-inset-bottom));
  background:linear-gradient(transparent,rgba(0,0,0,.7));color:rgba(242,236,225,.8);font:12.5px/1.4 Gol,system-ui,sans-serif;
  pointer-events:none}
.pswp__dcap a{color:#e2a24a;pointer-events:auto}
.pswp__dcap b{font-weight:600}

/* текст для поисковиков на /dom/<слаг> до загрузки скрипта */
.dseo{position:fixed;z-index:550;right:12px;top:72px;width:420px;max-height:calc(100vh - 90px);
  overflow:auto;background:var(--d-bg);color:var(--d-t);padding:16px;border-radius:16px;
  font:15px/1.5 Gol,system-ui,sans-serif;border:0}
.dseo a{color:var(--d-amb)}
@media (max-width:899px){.dseo{left:0;right:0;top:auto;bottom:0;width:auto;max-height:40vh;border-radius:18px 18px 0 0}}

/* карточка открыта — кнопки радио-карты не лезут поверх */
body.dopen .rcreate,body.dopen .rhint{opacity:0!important;pointer-events:none!important}
.dcard .dbody{scrollbar-width:thin;scrollbar-color:rgba(243,236,222,.18) transparent}

/* список домов улицы */
.dstreet{list-style:none;margin:6px 0 0;padding:0}
.dstreet li{padding:9px 0;border-bottom:1px solid rgba(243,236,222,.06);cursor:pointer;line-height:1.35}
.dstreet li b{font-weight:600}
.dstreet li small{color:var(--d-mut);margin-left:4px}
.dstreet li span{display:block;color:var(--d-mut);font-size:12.5px;margin-top:2px;opacity:.85}
.dstreet li.g1 b{font-weight:400;color:var(--d-mut)}
.dstreet li:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;
  margin-right:8px;vertical-align:1px;border:1px solid var(--d-mut)}
.dstreet li.g2:before,.dstreet li.g3:before{background:var(--d-amb);border-color:var(--d-amb)}
.dstreet a{color:inherit;text-decoration:none}
.dcard .dsub a{color:var(--d-mut);text-decoration:underline;text-decoration-color:rgba(163,150,131,.4);text-underline-offset:2px}

.dnear{display:flex;align-items:center;gap:5px;color:var(--d-mut);font-size:11px;letter-spacing:.04em;
  text-transform:uppercase;margin:18px 0 4px;opacity:.6}
.dnear i{display:inline-grid;width:14px;height:14px}
.dph.small a,.dph.small a:first-child{height:96px}

/* связи: дом из справки, человек, «связано», «рядом» */
.dcard .dx,.dcard .dpk{color:var(--d-t);text-decoration:underline;text-decoration-color:rgba(226,162,74,.55);
  text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}
.dcard .dx:hover,.dcard .dpk:hover{color:var(--d-amb);text-decoration-color:var(--d-amb)}
.dcard .dsub .dpk{color:var(--d-mut)}
.dpeople a.dpk{text-decoration:underline;text-decoration-color:rgba(226,162,74,.45);text-underline-offset:3px}
.dpeople a.dpk:hover{color:var(--d-amb)}
.drel{display:flex;flex-direction:column;margin:2px 0 10px}
.drel a{display:block;padding:7px 0;border-bottom:1px solid rgba(243,236,222,.06);color:var(--d-t);text-decoration:none;line-height:1.3}
.drel a:last-child{border-bottom:0}
.drel a:hover b{color:var(--d-amb)}
.drel b{font-weight:500;font-size:14px}
.drel small{display:block;color:var(--d-mut);font-size:11.5px;margin-top:1px;opacity:.8}
.dnb{gap:2px 14px}
.dnb a{text-decoration:none;font-size:13px}
.dnb a:hover{color:var(--d-amb)}
.dplay .dmus{width:34px;height:34px;border-radius:50%;background:transparent;color:var(--d-amb);border:0;flex:none}
.dplay .dmus svg{width:18px;height:18px}
.dplay .dmus.off{color:var(--d-mut);opacity:.55;position:relative}
.dplay .dmus.off:after{content:"";position:absolute;left:8px;right:8px;top:50%;height:1.6px;background:currentColor;transform:rotate(-40deg)}

/* карточка открыта — кубик живёт в её шапке, плавающий не дублирует */
body.dopen #rrand{display:none}
/* телефон: кнопки слоя и поиск — над таб-баром сайта */
@media (max-width:760px){
  .dctl{bottom:calc(80px + env(safe-area-inset-bottom))}
  .dsearch{bottom:calc(130px + env(safe-area-inset-bottom))}
}
