:root {
  --bg: #0b0d1f;
  --card: rgba(24, 27, 62, .72);
  --line: rgba(212, 175, 106, .22);
  --gold: #d4af6a;
  --gold2: #f1d9a1;
  --text: #e9e6f5;
  --muted: #9a97b8;
  --accent: #8f7bd8;
  --ok: #6fcf97;
  --warn: #e6a15a;
  --err: #ff9b9b;
  --radius: 16px;
  --ease: cubic-bezier(.2, .8, .2, 1);
}
* { box-sizing: border-box; }
html, body { margin: 0; }
html { scroll-behavior: smooth; }
body {
  background: radial-gradient(1200px 700px at 70% -10%, #2a2462 0%, transparent 60%),
              radial-gradient(900px 600px at -10% 30%, #1d2a5c 0%, transparent 55%), var(--bg);
  background-attachment: fixed;
  color: var(--text);
  font: 16px/1.6 Inter, system-ui, sans-serif;
  min-height: 100vh;
  overflow-x: hidden;
}
#sky { position: fixed; inset: 0; z-index: -1; pointer-events: none; }
.wrap { max-width: 1100px; margin: 0 auto; padding: 0 16px; }
h1, h2, h3, .logo { font-family: "Cormorant Garamond", Georgia, serif; }
h2 { font-size: 1.8rem; margin: 0 0 .3rem; color: var(--gold2); }
h3 { font-size: 1.35rem; margin: 0 0 .4rem; color: var(--gold2); }
.muted { color: var(--muted); }
.small { font-size: .86rem; }
.hint { color: var(--muted); margin: 0 0 1rem; font-size: .95rem; }
.section-title { margin: 26px 0 12px; font-size: 1.5rem; }

/* ================= Герой ================= */
.hero { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; padding-top: 44px; padding-bottom: 26px; }
.logo { font-size: 1.25rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.logo-mark { font-size: 1.5rem; display: inline-block; animation: spin 18s linear infinite; }
.hero h1 { font-size: clamp(2.4rem, 6vw, 4.2rem); margin: .2rem 0 .4rem; font-weight: 600; line-height: 1.05; }
.shimmer {
  background: linear-gradient(100deg, var(--gold2) 0%, var(--gold) 30%, #fff6dc 45%, #c9b7ff 60%, var(--gold) 80%, var(--gold2) 100%);
  background-size: 250% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shimmer 7s linear infinite;
}
@keyframes shimmer { to { background-position: -250% 0; } }
.lead { color: var(--muted); max-width: 560px; margin: 0 0 18px; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.day-orb { position: relative; width: 220px; height: 220px; cursor: pointer; flex: 0 0 auto; }
.orb-rings { position: absolute; inset: 0; width: 100%; height: 100%; }
.ring { fill: none; stroke: var(--gold); transform-origin: 110px 110px; }
.r1 { stroke-dasharray: 2 10; opacity: .7; animation: spin 40s linear infinite; }
.r2 { stroke-dasharray: 60 20 6 20; opacity: .45; animation: spin 26s linear infinite reverse; }
.r3 { stroke: var(--accent); stroke-dasharray: 1 6; opacity: .8; animation: spin 18s linear infinite; }
.orb-dots { transform-origin: 110px 110px; animation: spin 12s linear infinite; }
.orb-dots circle { fill: var(--gold2); filter: drop-shadow(0 0 6px var(--gold)); }
.orb-core {
  position: absolute; inset: 42px; border-radius: 50%; display: grid; place-content: center; text-align: center;
  background: radial-gradient(circle at 35% 30%, rgba(241,217,161,.35), rgba(91,69,173,.35) 55%, rgba(11,13,31,.8));
  box-shadow: 0 0 50px rgba(212,175,106,.35), inset 0 0 30px rgba(143,123,216,.4);
  animation: breathe 5s ease-in-out infinite;
}
.orb-label { font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.orb-num { font: 700 3.6rem/1 "Cormorant Garamond", serif; color: var(--gold2); text-shadow: 0 0 24px rgba(241,217,161,.6); }
.orb-title { font-size: .75rem; color: var(--muted); max-width: 120px; opacity: 0; transition: opacity .8s; }
.orb-title.in { opacity: 1; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes breathe { 50% { box-shadow: 0 0 80px rgba(212,175,106,.5), inset 0 0 40px rgba(143,123,216,.55); } }

/* ================= Вкладки ================= */
.tabs { position: relative; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 24px; }
.tab-glider {
  position: absolute; left: 0; top: 0; border-radius: 999px; pointer-events: none; z-index: 0;
  background: linear-gradient(135deg, var(--gold), #b98f45);
  box-shadow: 0 6px 24px rgba(212,175,106,.35);
  transition: transform .45s var(--ease), width .45s var(--ease), height .45s var(--ease);
}
.tab {
  position: relative; z-index: 1; overflow: hidden;
  background: rgba(11, 13, 31, .35); color: var(--muted); border: 1px solid var(--line);
  padding: 8px 16px; border-radius: 999px; cursor: pointer; font: inherit; font-size: .95rem;
  transition: color .3s, border-color .3s, background .3s;
}
.tab:hover { color: var(--text); border-color: var(--gold); }
.tab.active { background: transparent; color: #1b1630; border-color: transparent; font-weight: 600; }

.panel { display: none; }
.panel.active { display: block; animation: fade .45s var(--ease); }
@keyframes fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ================= Карточки и формы ================= */
.card {
  position: relative; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 22px; backdrop-filter: blur(8px); margin-bottom: 18px;
  transition: transform .25s var(--ease), border-color .3s, box-shadow .3s;
}
.card.tilt:hover { border-color: rgba(212,175,106,.5); box-shadow: 0 14px 40px rgba(0,0,0,.35); }
.card.tilt::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .3s;
  background: radial-gradient(400px circle at var(--mx, 50%) var(--my, 50%), rgba(241,217,161,.09), transparent 40%);
}
.card.tilt:hover::after { opacity: 1; }
.form .row { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 14px; }
.form label, .auth label { display: flex; flex-direction: column; gap: 6px; font-size: .9rem; color: var(--muted); min-width: 180px; }
.form label.grow { flex: 1; }
input, select, textarea {
  background: rgba(10, 12, 32, .7); color: var(--text); border: 1px solid var(--line);
  border-radius: 10px; padding: 10px 12px; font: inherit; color-scheme: dark;
  transition: border-color .25s, box-shadow .25s;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(212,175,106,.18); }
.btn {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, var(--gold), #b98f45); color: #1b1630; border: 1px solid transparent;
  border-radius: 10px; padding: 11px 22px; font: inherit; font-weight: 600; cursor: pointer;
  transition: transform .2s, box-shadow .25s, filter .2s;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(212,175,106,.35); }
.btn:active { transform: translateY(0); }
.btn.ghost { background: transparent; color: var(--gold2); border-color: var(--gold); }
.btn.loading { pointer-events: none; filter: saturate(.6); }
.btn.loading::after { content: ""; display: inline-block; width: 12px; height: 12px; margin-left: 10px; vertical-align: -1px;
  border: 2px solid #1b1630; border-right-color: transparent; border-radius: 50%; animation: spin .7s linear infinite; }
.ripple { position: absolute; border-radius: 50%; background: rgba(255,255,255,.35); transform: scale(0);
  animation: ripple .65s ease-out; pointer-events: none; }
@keyframes ripple { to { transform: scale(1); opacity: 0; } }
.error { color: var(--err); }
.shake { animation: shake .45s; }
@keyframes shake { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }

.actions { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }

/* появление */
.reveal { opacity: 0; transform: translateY(18px) scale(.985); }
.reveal.in { opacity: 1; transform: none; transition: opacity .6s var(--ease) var(--d, 0ms), transform .6s var(--ease) var(--d, 0ms); }

/* загрузка */
.loader { display: flex; gap: 10px; justify-content: center; padding: 30px; }
.loader span { width: 12px; height: 12px; border-radius: 50%; background: var(--gold); animation: dots 1s infinite ease-in-out; }
.loader span:nth-child(2) { animation-delay: .15s; background: var(--gold2); }
.loader span:nth-child(3) { animation-delay: .3s; background: var(--accent); }
@keyframes dots { 50% { transform: translateY(-12px); opacity: .5; } }

/* ================= Числа ================= */
.num-card { display: flex; gap: 16px; align-items: flex-start; }
.big {
  flex: 0 0 auto; width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center;
  font: 700 2rem "Cormorant Garamond", serif; color: #1b1630; position: relative;
  background: radial-gradient(circle at 30% 30%, var(--gold2), var(--gold) 60%, #9b7535);
  box-shadow: 0 0 24px rgba(212, 175, 106, .35);
}
.big::before { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1px dashed rgba(212,175,106,.5); animation: spin 14s linear infinite; }
.big.master { background: radial-gradient(circle at 30% 30%, #e3d8ff, var(--accent) 60%, #5b45ad); color: #fff; }
.big.sm { width: 52px; height: 52px; font-size: 1.5rem; }
.rolling { filter: blur(.6px); opacity: .85; }
.landed { animation: land .7s var(--ease); display: inline-block; }
@keyframes land { 0% { transform: scale(1.6); text-shadow: 0 0 24px #fff; } 100% { transform: scale(1); } }
.label { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--gold); }
.steps { font-size: .82rem; color: var(--muted); font-family: ui-monospace, monospace; margin-top: 6px; }
.pm { font-size: .92rem; margin: .3rem 0 0; }
.pm b { color: var(--ok); } .pm i { color: var(--warn); font-style: normal; font-weight: 600; }
.advice { color: var(--gold2); font-style: italic; }
.sep { border: 0; border-top: 1px solid var(--line); margin: 14px 0; }

/* грани толкования */
.facet-tabs { display: flex; gap: 4px; flex-wrap: wrap; margin: 4px 0 6px; }
.ft { background: none; border: 1px solid var(--line); color: var(--muted); border-radius: 999px; padding: 3px 11px;
  font: inherit; font-size: .8rem; cursor: pointer; transition: .25s; }
.ft:hover { color: var(--text); }
.ft.active { background: rgba(212,175,106,.18); color: var(--gold2); border-color: var(--gold); }
.facet { display: none; }
.facet.active { display: block; animation: fade .35s var(--ease); }
.facet p { margin: .3rem 0; }

/* ================= Квадрат Пифагора ================= */
.psq { display: grid; grid-template-columns: repeat(3, 1fr) 64px; gap: 6px; max-width: 540px; margin: 0 auto 12px; }
.psq .cell {
  border: 1px solid var(--line); border-radius: 12px; padding: 10px; min-height: 88px; cursor: pointer;
  background: rgba(10, 12, 32, .55); text-align: center; font: inherit; color: inherit;
  opacity: 0; transform: scale(.6) rotate(-6deg); animation: pop .55s var(--ease) var(--d) forwards;
  transition: border-color .25s, box-shadow .25s, background .25s;
}
.psq .cell:hover { border-color: var(--gold); background: rgba(212,175,106,.08); }
.psq .cell.sel { border-color: var(--gold2); box-shadow: 0 0 0 2px rgba(241,217,161,.35), 0 0 24px rgba(212,175,106,.3); }
@keyframes pop { to { opacity: 1; transform: none; } }
.psq .cell .d { font: 600 1.5rem "Cormorant Garamond", serif; color: var(--gold2); word-break: break-all; }
.psq .cell .t { font-size: .74rem; color: var(--muted); }
.psq .sum { display: grid; place-items: center; color: var(--gold); font-weight: 600; font-size: 1.1rem;
  border: 1px dashed var(--line); border-radius: 12px; min-height: 40px; transition: .3s; }
.psq .sum.hl { background: rgba(143,123,216,.3); border-color: var(--accent); color: #fff; transform: scale(1.08); }
.cell-detail { max-width: 540px; margin: 0 auto; padding: 12px 14px; border-radius: 12px; background: rgba(10,12,32,.5);
  border: 1px solid var(--line); min-height: 50px; }
.pop { animation: fade .4s var(--ease); }
.working { text-align: center; color: var(--muted); margin-bottom: 14px; }
.working b { color: var(--gold2); font-size: 1.15rem; margin: 0 6px; display: inline-block; min-width: 1ch; }
.list { display: grid; gap: 10px; }
.list .item { border-bottom: 1px solid var(--line); padding-bottom: 8px; }
.tag { display: inline-block; font-size: .78rem; padding: 2px 10px; border-radius: 999px;
  border: 1px solid var(--line); color: var(--gold2); margin-left: 6px; }
.meter { height: 6px; border-radius: 999px; background: rgba(255,255,255,.07); overflow: hidden; margin: 6px 0; }
.meter span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--accent), var(--gold));
  border-radius: inherit; }
.in .meter span, .meter.in span { width: var(--w); transition: width 1.2s var(--ease) .3s; }

/* ================= Матрица ================= */
.matrix-wrap { display: grid; grid-template-columns: minmax(0, 440px) 1fr; gap: 20px; align-items: center; }
.matrix-svg { width: 100%; max-width: 440px; display: block; margin: 0 auto; overflow: visible; }
.matrix-svg line { stroke: var(--gold); stroke-width: 1.5; opacity: .6;
  stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 1s var(--ease) var(--d) forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.node { cursor: pointer; opacity: 0; transform: scale(0); animation: nodeIn .6s var(--ease) var(--d) forwards; outline: none; }
@keyframes nodeIn { 60% { transform: scale(1.15); } to { opacity: 1; transform: scale(1); } }
.node circle { fill: #1b1d45; stroke: var(--gold); stroke-width: 2; transition: fill .3s, stroke .3s; }
.node .halo { fill: none; stroke: var(--gold2); stroke-width: 1; opacity: 0; transition: opacity .3s; }
.node.main circle:not(.halo) { fill: #2b2160; stroke: #c9b7ff; }
.node.center circle:not(.halo) { fill: var(--gold); }
.node.center .halo { opacity: .5; animation: pulse 2.4s ease-in-out infinite; transform-origin: inherit; }
.node:hover .halo, .node:focus .halo, .node.sel .halo { opacity: .9; }
.node.sel circle:not(.halo) { stroke: #fff; stroke-width: 3; }
@keyframes pulse { 50% { stroke-width: 6; opacity: .15; } }
.node text { fill: var(--text); font: 600 18px Inter, sans-serif; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.node.center text:not(.key) { fill: #1b1630; }
.node text.key { fill: var(--muted); font-size: 11px; font-weight: 500; }
.mx-detail { min-height: 200px; }
.arc-num { color: var(--gold2); font-weight: 700; font-family: "Cormorant Garamond", serif; font-size: 1.4rem; margin-right: 6px; }

/* ================= Совместимость ================= */
.compat-top { display: grid; grid-template-columns: 220px 1fr; gap: 24px; align-items: center; }
.gauge { position: relative; width: 220px; height: 220px; }
.gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); overflow: visible; }
.g-bg { fill: none; stroke: rgba(255,255,255,.07); stroke-width: 14; }
.g-fg { fill: none; stroke-width: 14; stroke-linecap: round; transition: stroke-dashoffset 1.6s var(--ease); filter: drop-shadow(0 0 8px rgba(212,175,106,.5)); }
.orbit { transform-origin: 100px 100px; }
.orbit circle { fill: var(--gold2); filter: drop-shadow(0 0 6px var(--gold)); }
.o1 { animation: spin 6s linear infinite; }
.o2 circle { fill: #c9b7ff; filter: drop-shadow(0 0 6px var(--accent)); }
.o2 { animation: spin 6s linear infinite; }
.g-val { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.g-val span { font: 700 3rem/1 "Cormorant Garamond", serif; color: var(--gold2); }
.g-val small { color: var(--muted); font-size: .8rem; }

/* ================= Колесо прогноза ================= */
.wheel-wrap { display: grid; grid-template-columns: 340px 1fr; gap: 24px; align-items: center; }
.wheel-box { position: relative; width: 340px; max-width: 100%; aspect-ratio: 1; }
.wheel { width: 100%; height: 100%; }
.wheel-rot { transform-origin: 170px 170px; transform: rotate(calc(var(--rot) + 540deg)); transition: transform 2.4s cubic-bezier(.15,.85,.25,1); }
.wheel-rot.spun { transform: rotate(var(--rot)); }
.seg { cursor: pointer; }
.seg path { fill: rgba(27,29,69,.85); stroke: var(--line); stroke-width: 1.5; transition: fill .3s; }
.seg:hover path { fill: rgba(143,123,216,.35); }
.seg.sel path { fill: rgba(143,123,216,.55); }
.seg.now path { fill: #b98f45; }
.seg text { text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.seg .sv { fill: var(--gold2); font: 700 20px "Cormorant Garamond", serif; }
.seg .sy { fill: var(--muted); font: 500 10px Inter, sans-serif; }
.seg.now .sv, .seg.now .sy { fill: #1b1630; }
.hub { fill: #0f1130; stroke: var(--gold); stroke-width: 1.5; }
.wheel-hub { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; pointer-events: none; }
.wheel-hub b { font: 700 2.6rem/1 "Cormorant Garamond", serif; color: var(--gold2); }
.wheel-hub small { font-size: .7rem; color: var(--muted); }
.wheel-pointer { position: absolute; left: 50%; top: -8px; transform: translateX(-50%); color: var(--gold2); z-index: 2;
  text-shadow: 0 0 10px var(--gold); animation: bob 1.6s ease-in-out infinite; }
@keyframes bob { 50% { transform: translate(-50%, 4px); } }

/* ================= Буквы ================= */
.letters { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0; }
.letters span { display: inline-flex; flex-direction: column; align-items: center; min-width: 26px; padding: 3px 4px;
  border-radius: 6px; background: rgba(10,12,32,.6); font-size: .9rem;
  opacity: 0; transform: translateY(-10px); animation: pop .4s var(--ease) calc(var(--i) * 45ms + 200ms) forwards; }
.letters span small { color: var(--gold); font-size: .75rem; }
.letters span.v { outline: 1px solid var(--accent); }

/* ================= Справочник ================= */
.num-wheel-wrap { display: grid; grid-template-columns: 320px 1fr; gap: 24px; align-items: center; }
.num-wheel { position: relative; width: 300px; height: 300px; margin: 0 auto; }
.nw-ring { position: absolute; inset: 0; animation: spin 50s linear infinite; }
.num-wheel:hover .nw-ring, .num-wheel.paused .nw-ring { animation-play-state: paused; }
.nw-ring::before { content: ""; position: absolute; inset: 8%; border-radius: 50%; border: 1px dashed var(--line); }
.wn {
  position: absolute; transform: translate(-50%, -50%); width: 48px; height: 48px; border-radius: 50%;
  border: 1px solid var(--gold); background: #15173a; color: var(--gold2); cursor: pointer;
  font: 700 1.4rem "Cormorant Garamond", serif; transition: background .25s, box-shadow .25s;
  animation: counter 50s linear infinite;
}
.num-wheel:hover .wn, .num-wheel.paused .wn { animation-play-state: paused; }
@keyframes counter { from { transform: translate(-50%,-50%) rotate(0); } to { transform: translate(-50%,-50%) rotate(-360deg); } }
.wn:hover, .wn.sel { background: var(--gold); color: #1b1630; box-shadow: 0 0 22px rgba(212,175,106,.6); }
.nw-center { position: absolute; inset: 30%; border-radius: 50%; display: grid; place-content: center; text-align: center;
  background: radial-gradient(circle at 35% 30%, rgba(241,217,161,.3), rgba(91,69,173,.35) 60%, rgba(11,13,31,.8));
  box-shadow: 0 0 40px rgba(212,175,106,.25); }
.nw-center b { font: 700 2.8rem/1 "Cormorant Garamond", serif; color: var(--gold2); }
.nw-center small { font-size: .72rem; color: var(--muted); padding: 0 6px; }
.chip { border: 1px solid var(--accent); background: none; color: #c9b7ff; border-radius: 999px; padding: 1px 10px; cursor: pointer; font: inherit; }
.chip.sel, .chip:hover { background: var(--accent); color: #fff; }

.cards-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); margin-bottom: 20px; }
.flip { perspective: 1000px; height: 250px; cursor: pointer; outline: none; }
.flip-in { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .8s var(--ease); }
.flip:hover .flip-in { transform: rotateY(8deg) translateY(-4px); }
.flip.flipped .flip-in { transform: rotateY(180deg); }
.flip-front, .flip-back { position: absolute; inset: 0; border-radius: 14px; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  border: 1px solid var(--gold); padding: 14px; }
.flip-front { display: grid; place-items: center; text-align: center;
  background: linear-gradient(160deg, #241e57, #12143a 60%), #12143a;
  box-shadow: inset 0 0 0 6px rgba(11,13,31,.6), inset 0 0 0 7px rgba(212,175,106,.35); }
.roman { font: 600 1.2rem "Cormorant Garamond", serif; color: var(--gold); letter-spacing: .1em; }
.arc-sym { font-size: 2.4rem; color: var(--gold2); text-shadow: 0 0 18px var(--gold); animation: breatheText 3s ease-in-out infinite; }
@keyframes breatheText { 50% { opacity: .55; transform: scale(.9); } }
.arc-name { font: 600 1.25rem "Cormorant Garamond", serif; color: var(--text); }
.arc-n { font-size: .75rem; color: var(--muted); }
.flip-back { transform: rotateY(180deg); background: #1a1c45; overflow-y: auto; font-size: .82rem; }
.flip-back p { margin: .35rem 0; }
.flip-back .pm { font-size: .8rem; }

/* ================= Кабинет ================= */
.auth-wrap { display: grid; grid-template-columns: minmax(0, 420px) 1fr; gap: 18px; }
.auth form { display: grid; gap: 12px; }
.auth label { min-width: 0; }
.auth-switch { display: flex; gap: 6px; margin-bottom: 14px; background: rgba(10,12,32,.5); border-radius: 999px; padding: 4px; }
.as { flex: 1; border: 0; background: none; color: var(--muted); padding: 8px; border-radius: 999px; cursor: pointer; font: inherit; transition: .3s; }
.as.active { background: var(--gold); color: #1b1630; font-weight: 600; }
.perk-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.perk-list li { opacity: 0; animation: pop .5s var(--ease) forwards; }
.perk-list li:nth-child(2) { animation-delay: .1s; } .perk-list li:nth-child(3) { animation-delay: .2s; } .perk-list li:nth-child(4) { animation-delay: .3s; }
.cab-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.person { display: flex; flex-direction: column; gap: 10px; margin-bottom: 0; }
.person-top { display: flex; gap: 12px; align-items: center; }
.person.add input { width: 100%; }
.person.vanish { animation: vanish .35s forwards; }
@keyframes vanish { to { opacity: 0; transform: scale(.85); } }
.today-chip { background: rgba(212,175,106,.12); border: 1px solid var(--line); border-radius: 10px; padding: 6px 10px; font-size: .9rem; }
.person-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; }
.mini { border: 1px solid var(--line); background: rgba(10,12,32,.5); color: var(--text); border-radius: 8px; padding: 4px 10px;
  font: inherit; font-size: .82rem; cursor: pointer; transition: .2s; }
.mini:hover { border-color: var(--gold); color: var(--gold2); }
.mini.danger:hover { border-color: var(--err); color: var(--err); }
.hist-head { display: flex; justify-content: space-between; align-items: center; }
.history { display: grid; gap: 6px; }
.hist { display: flex; justify-content: space-between; gap: 10px; text-align: left; border: 1px solid var(--line); background: rgba(10,12,32,.4);
  color: var(--text); border-radius: 10px; padding: 8px 12px; font: inherit; cursor: pointer; transition: .2s; }
.hist:hover { border-color: var(--gold); transform: translateX(4px); }
.hist small { color: var(--muted); white-space: nowrap; }
.linkish { background: none; border: 0; color: var(--muted); text-decoration: underline; cursor: pointer; font: inherit; }
.linkish:hover { color: var(--err); }

/* ================= Тосты и искры ================= */
.toasts { position: fixed; right: 16px; bottom: 16px; display: grid; gap: 8px; z-index: 50; }
.toast { background: #1b1d45; border: 1px solid var(--gold); color: var(--text); padding: 10px 16px; border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,.4); transform: translateY(20px); opacity: 0; transition: .35s var(--ease); max-width: 320px; }
.toast.show { transform: none; opacity: 1; }
.toast.ok { border-color: var(--ok); } .toast.err { border-color: var(--err); }
.spark { position: fixed; width: 6px; height: 6px; border-radius: 50%; pointer-events: none; z-index: 60;
  background: var(--gold2); box-shadow: 0 0 10px var(--gold); animation: spark .9s ease-out forwards; }
@keyframes spark { to { transform: translate(var(--tx), var(--ty)) scale(0); opacity: 0; } }

.footer { padding: 30px 16px 40px; font-size: .85rem; color: var(--muted); text-align: center; border-top: 1px solid var(--line); margin-top: 30px; }

/* ================= Адаптив ================= */
@media (max-width: 860px) {
  .matrix-wrap, .wheel-wrap, .num-wheel-wrap, .compat-top, .auth-wrap { grid-template-columns: 1fr; }
  .gauge, .wheel-box { margin: 0 auto; }
}
@media (max-width: 640px) {
  .hero { grid-template-columns: 1fr; text-align: center; padding-top: 28px; }
  .hero-actions { justify-content: center; }
  .lead { margin-left: auto; margin-right: auto; }
  .day-orb { margin: 0 auto; width: 180px; height: 180px; }
  .orb-core { inset: 34px; } .orb-num { font-size: 2.8rem; }
  .form label { min-width: 100%; }
  .psq { grid-template-columns: repeat(3, 1fr) 44px; }
  .psq .cell { min-height: 72px; padding: 6px; }
  .num-card { flex-direction: column; }
  .num-wheel { width: 260px; height: 260px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* ================================================================ v0.3: углублённые разделы */
.ok-text { color: var(--ok); }
.debt { display: flex; gap: 12px; align-items: flex-start; margin: 10px 0; }
.debt p { margin: .2rem 0 0; }
.debt-n { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center;
  font: 700 1.4rem "Cormorant Garamond", serif; color: #fff; background: linear-gradient(135deg, #8e3b5c, #5b45ad);
  box-shadow: 0 0 18px rgba(142,59,92,.45); }

/* столбики цифр имени */
.bars { display: grid; grid-template-columns: repeat(9, 1fr); gap: 6px; height: 130px; align-items: end; margin: 10px 0 12px; }
.bar-col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 3px; }
.bar-fill { width: 100%; max-width: 30px; height: 0; border-radius: 6px 6px 2px 2px;
  background: linear-gradient(180deg, var(--gold2), var(--accent)); }
.in .bar-fill { height: var(--h); transition: height .9s var(--ease) calc(var(--i) * 70ms + 200ms); }
.bar-col.top .bar-fill { background: linear-gradient(180deg, #fff3cf, var(--gold)); box-shadow: 0 0 14px rgba(241,217,161,.6); }
.bar-col.zero .bv { color: var(--err); }
.bv { font-size: .78rem; color: var(--muted); } .bk { font-weight: 600; color: var(--gold2); }

/* линия вершин */
.timeline { position: relative; display: flex; gap: 3px; margin: 34px 0 14px; }
.tl-seg { width: var(--w); min-width: 54px; flex: 0 0 auto; padding: 8px 6px; border-radius: 10px; text-align: center;
  background: rgba(10,12,32,.6); border: 1px solid var(--line); transform-origin: left; transform: scaleX(0); }
.in .tl-seg { transform: none; transition: transform .7s var(--ease); }
.in .tl-seg:nth-child(2) { transition-delay: .15s; } .in .tl-seg:nth-child(3) { transition-delay: .3s; } .in .tl-seg:nth-child(4) { transition-delay: .45s; }
.tl-seg.now { background: linear-gradient(135deg, rgba(212,175,106,.35), rgba(143,123,216,.3)); border-color: var(--gold); }
.tl-num { display: block; font: 700 1.4rem "Cormorant Garamond", serif; color: var(--gold2); }
.tl-seg small { color: var(--muted); font-size: .72rem; }
.tl-marker { position: absolute; top: -26px; bottom: -6px; left: 0; width: 2px; background: var(--gold2);
  box-shadow: 0 0 10px var(--gold); transform: translateX(0); opacity: 0; }
.in .tl-marker { left: var(--x); opacity: 1; transition: left 1.6s var(--ease) .6s, opacity .4s .6s; }
.tl-marker span { position: absolute; top: 0; left: 6px; white-space: nowrap; font-size: .72rem; color: var(--gold2); }
.pin-list { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.pin { padding: 12px; border-radius: 12px; border: 1px solid var(--line); background: rgba(10,12,32,.35); }
.pin.now { border-color: var(--gold); box-shadow: 0 0 22px rgba(212,175,106,.18); }
.pin-head { display: flex; gap: 10px; align-items: center; }
.pin p { margin: .4rem 0 0; font-size: .92rem; }

/* переходы букв */
.transits { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 10px; scroll-snap-type: x mandatory; }
.tr { flex: 0 0 120px; scroll-snap-align: start; display: flex; flex-direction: column; gap: 2px; padding: 10px; border-radius: 12px;
  border: 1px solid var(--line); background: rgba(10,12,32,.45); text-align: center; }
.tr.now { border-color: var(--gold); background: rgba(212,175,106,.14); }
.tr small { color: var(--muted); font-size: .72rem; }
.tr-letters { letter-spacing: .2em; color: var(--text); }
.tr-ess { font: 700 1.6rem/1.1 "Cormorant Garamond", serif; color: var(--gold2); }

/* подвкладки */
.subtabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.st { background: none; border: 0; color: var(--muted); font: inherit; padding: 6px 12px; border-radius: 8px; cursor: pointer; position: relative; transition: .25s; }
.st:hover { color: var(--text); }
.st.active { color: var(--gold2); background: rgba(212,175,106,.12); }
.st.active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -11px; height: 2px; background: var(--gold); border-radius: 2px; }
.subpane { display: none; } .subpane.active { display: block; animation: fade .4s var(--ease); }

/* энергокарта */
.emap { width: 100%; border-collapse: separate; border-spacing: 0 6px; }
.emap th { text-align: left; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--gold); font-weight: 500; padding: 0 10px; }
.emap td { background: rgba(10,12,32,.5); padding: 8px 10px; }
.emap td:first-child { border-radius: 10px 0 0 10px; } .emap td:last-child { border-radius: 0 10px 10px 0; }
.emap td.ac { font: 700 1.3rem "Cormorant Garamond", serif; color: var(--gold2); text-align: center; width: 18%; cursor: help; }
.emap td.em { color: #c9b7ff; }
.emap tr.total td { background: rgba(212,175,106,.14); }
.chakra-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 8px; background: var(--c);
  box-shadow: 0 0 10px var(--c); animation: breatheDot 3s ease-in-out infinite; vertical-align: 0; }
@keyframes breatheDot { 50% { box-shadow: 0 0 2px var(--c); opacity: .7; } }

/* денежный канал */
.flow { display: flex; align-items: stretch; gap: 6px; overflow-x: auto; padding-bottom: 8px; margin-bottom: 14px; }
.flow-node { flex: 1 0 140px; padding: 12px; border-radius: 12px; border: 1px solid var(--line); background: rgba(10,12,32,.5);
  text-align: center; opacity: 0; animation: pop .5s var(--ease) calc(var(--i) * 120ms) forwards; }
.flow-node.mid { border-color: var(--gold); background: rgba(212,175,106,.14); }
.flow-arc { font-weight: 600; margin: 4px 0; }
.flow-arrow { align-self: center; color: var(--gold); font-size: 1.4rem; animation: bob2 1.6s ease-in-out infinite; }
@keyframes bob2 { 50% { opacity: .4; } }

/* прогноз по возрасту */
.age-now { padding: 14px; border-radius: 12px; border: 1px solid var(--gold); background: rgba(212,175,106,.1); margin-bottom: 12px; }
.age-strip { display: flex; gap: 6px; overflow-x: auto; padding: 4px 2px 12px; }
.age-chip { flex: 0 0 82px; display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 8px 4px; border-radius: 10px;
  border: 1px solid var(--line); background: rgba(10,12,32,.5); color: var(--text); cursor: pointer; font: inherit; transition: .2s; }
.age-chip small { font-size: .66rem; color: var(--muted); }
.age-chip b { font: 700 1.3rem "Cormorant Garamond", serif; color: var(--gold2); }
.age-chip span { font-size: .66rem; color: var(--muted); line-height: 1.2; text-align: center; }
.age-chip:hover { border-color: var(--gold); transform: translateY(-3px); }
.age-chip.now { background: var(--gold); border-color: var(--gold); }
.age-chip.now b, .age-chip.now small, .age-chip.now span { color: #1b1630; }
.age-chip.sel { box-shadow: 0 0 0 2px var(--accent); }
.age-detail { margin-top: 6px; }

/* Ло-Шу */
.loshu-wrap { display: grid; grid-template-columns: 330px 1fr; gap: 20px; align-items: start; }
.loshu { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; width: 330px; height: 330px; isolation: isolate; }
.ls-cell { position: relative; z-index: 1; border: 1px solid var(--line); border-radius: 12px; background: rgba(14,16,42,.72); backdrop-filter: blur(2px); display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center; padding: 4px;
  opacity: 0; transform: scale(.6); animation: pop .5s var(--ease) var(--d) forwards; }
.ls-cell b { font: 700 1.6rem/1 "Cormorant Garamond", serif; color: var(--gold2); word-break: break-all; }
.ls-cell small { font-size: .62rem; color: var(--muted); line-height: 1.2; }
.ls-cell em { font-size: .58rem; color: var(--gold); font-style: normal; opacity: .8; }
.ls-cell.empty b { color: var(--muted); }
.ls-lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; z-index: 0; }
.pl { stroke-width: 10; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 1s var(--ease) var(--d) forwards; }
.pl.full { stroke: var(--gold); opacity: .9; filter: drop-shadow(0 0 10px var(--gold)); }
.pl.empty { stroke: var(--err); opacity: .55; stroke-width: 4; }
.tag.st-full { border-color: var(--ok); color: var(--ok); } .tag.st-empty { border-color: var(--err); color: var(--err); }

/* Гуа: компас */
.gua-card { display: grid; grid-template-columns: 300px 1fr; gap: 22px; align-items: center; }
.compass { width: 300px; max-width: 100%; display: block; animation: fade .6s var(--ease); }
.gsec { cursor: pointer; }
.gsec path { stroke: rgba(11,13,31,.9); stroke-width: 2; transition: filter .25s, opacity .25s; }
.gsec.good path { fill: rgba(79,194,138,.55); } .gsec.bad path { fill: rgba(224,85,85,.35); }
.gsec:hover path, .gsec.sel path { filter: brightness(1.4); }
.gsec text { text-anchor: middle; dominant-baseline: central; pointer-events: none; fill: #fff; }
.gsec .gd { font: 700 14px Inter, sans-serif; } .gsec .gn { font: 500 8.5px Inter, sans-serif; opacity: .85; }
.c-hub { fill: #0f1130; stroke: var(--gold); stroke-width: 1.5; }
.needle { transform-origin: 150px 150px; transform: rotate(0deg); }
.needle.go { transform: rotate(var(--a)); transition: transform 2s cubic-bezier(.3,1.6,.4,1); }
.needle path { fill: var(--gold2); filter: drop-shadow(0 0 6px var(--gold)); }
.c-val { text-anchor: middle; fill: var(--gold2); font: 700 18px "Cormorant Garamond", serif; }

/* ведическая: планеты */
.planet-card { display: flex; gap: 16px; align-items: flex-start; }
.orbit-box { position: relative; flex: 0 0 90px; height: 90px; }
.sun { position: absolute; inset: 25px; border-radius: 50%; display: grid; place-items: center; color: #1b1630;
  font: 700 1.5rem "Cormorant Garamond", serif; background: radial-gradient(circle at 30% 30%, #fff3cf, var(--gold)); box-shadow: 0 0 20px rgba(212,175,106,.6); }
.orb-path { position: absolute; inset: 0; border-radius: 50%; border: 1px dashed var(--line); animation: spin 8s linear infinite; }
.pl-sym { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); width: 22px; height: 22px; border-radius: 50%;
  display: grid; place-items: center; background: #2b2160; border: 1px solid #c9b7ff; color: #e3d8ff; font-size: .85rem; }
.latin { font-family: ui-monospace, monospace; letter-spacing: .12em; color: var(--gold2); }

@media (max-width: 860px) {
  .loshu-wrap, .gua-card { grid-template-columns: 1fr; }
  .loshu, .compass { margin: 0 auto; }
}
@media (max-width: 400px) { .loshu { width: 280px; height: 280px; } .ls-cell em { display: none; } }

/* ================================================================ v0.4: календарь и подбор */
textarea { resize: vertical; min-height: 90px; font: inherit; }
.subhost > .subtabs { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 8px; margin-bottom: 14px; }
.subhost > .subtabs .st.active::after { display: none; }

/* календарь */
.cal-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; text-align: center; }
.cal-head h3 { margin: 0; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.cal-wd { text-align: center; font-size: .75rem; text-transform: uppercase; color: var(--gold); letter-spacing: .08em; padding: 4px 0; }
.cal-day { position: relative; min-height: 78px; border-radius: 12px; border: 1px solid var(--line); cursor: pointer; font: inherit; color: var(--text);
  background: linear-gradient(160deg, color-mix(in srgb, var(--c) 22%, transparent), rgba(10,12,32,.55) 70%);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 6px 2px;
  opacity: 0; transform: translateY(8px) scale(.9); animation: pop .45s var(--ease) var(--d) forwards; transition: transform .2s, box-shadow .2s, opacity .3s, filter .3s; }
.cal-day.blank { border: 0; background: none; cursor: default; animation: none; opacity: 0; }
.cal-day:not(.blank):hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.35), 0 0 0 1px var(--c); }
.cal-day .cd-num { position: absolute; top: 4px; left: 8px; font-size: .78rem; color: var(--muted); }
.cal-day b { font: 700 1.6rem/1 "Cormorant Garamond", serif; color: var(--c); text-shadow: 0 0 12px color-mix(in srgb, var(--c) 60%, transparent); }
.cal-day small { font-size: .68rem; color: var(--muted); }
.cal-day.we .cd-num { color: #e9a3a3; }
.cal-day.today { box-shadow: 0 0 0 2px var(--gold2), 0 0 22px rgba(241,217,161,.35); }
.cal-day.today::after { content: "сегодня"; position: absolute; top: 4px; right: 6px; font-size: .58rem; color: var(--gold2); }
.cal-day.sel { box-shadow: 0 0 0 2px var(--c); }
.cal-grid.hl .cal-day:not(.match):not(.blank) { opacity: .2 !important; filter: grayscale(.8); }
.cal-grid.hl .cal-day.match { transform: scale(1.06); }
.cal-legend { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 10px; }
.leg { border: 1px solid var(--c); background: color-mix(in srgb, var(--c) 14%, transparent); color: var(--text); border-radius: 999px;
  padding: 3px 10px; font: inherit; font-size: .8rem; cursor: pointer; }
.leg b { color: var(--c); }
.cal-detail { padding: 12px 14px; border-radius: 12px; background: rgba(10,12,32,.5); border: 1px solid var(--line); min-height: 50px; }
.cal-detail h3 { margin: 4px 0; }

/* подбор дат */
.heat { display: grid; grid-template-columns: repeat(auto-fill, minmax(12px, 1fr)); gap: 3px; margin: 10px 0 6px; }
.heat span { aspect-ratio: 1; border-radius: 3px; background: var(--c); transition: transform .15s; }
.heat span:hover { transform: scale(1.8); position: relative; z-index: 2; }
.date-card { display: flex; gap: 14px; align-items: flex-start; }
.date-rank { position: absolute; top: 10px; right: 14px; font: 700 1.1rem "Cormorant Garamond", serif; color: var(--muted); }
.ring { --p: 0; flex: 0 0 auto; width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center;
  background: conic-gradient(var(--c) calc(var(--p) * 1%), rgba(255,255,255,.08) 0); position: relative; }
.ring::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: #15173a; }
.ring span { position: relative; font: 700 1.25rem "Cormorant Garamond", serif; color: var(--gold2); }
.reasons { margin: 4px 0 0; padding-left: 18px; font-size: .88rem; }
.reasons li { margin: 2px 0; }

/* биоритмы */
.bio-wrap { position: relative; }
.bio-chart { width: 100%; height: 260px; display: block; }
.bio-zero { stroke: rgba(255,255,255,.18); stroke-dasharray: 4 4; }
.bio-today { fill: rgba(241,217,161,.12); stroke: var(--gold); stroke-dasharray: 3 3; }
.bio-line { fill: none; stroke-width: 2.6; stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 1.6s var(--ease) var(--d) forwards;
  filter: drop-shadow(0 0 4px rgba(255,255,255,.15)); }
.bio-x { fill: var(--muted); font-size: 10px; text-anchor: middle; }
.bio-cross { stroke: var(--gold2); stroke-width: 1; vector-effect: non-scaling-stroke; }
.bio-tip { position: absolute; top: 8px; width: 140px; background: #1b1d45; border: 1px solid var(--gold); border-radius: 10px; padding: 8px 10px;
  font-size: .82rem; pointer-events: none; }
.bio-tip i, .bio-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; }
.bio-legend { display: flex; gap: 16px; flex-wrap: wrap; font-size: .88rem; color: var(--muted); margin-top: 8px; }
.semi { position: relative; width: 170px; margin: 6px 0 10px; }
.semi svg { width: 100%; display: block; overflow: visible; }
.semi-bg, .semi-fg { fill: none; stroke-width: 12; stroke-linecap: round; }
.semi-bg { stroke: rgba(255,255,255,.08); }
.semi-fg { stroke-dasharray: 100; stroke-dashoffset: 100; filter: drop-shadow(0 0 6px rgba(255,255,255,.2)); }
.in .semi-fg { stroke-dashoffset: calc(100 - var(--v)); transition: stroke-dashoffset 1.6s var(--ease) .3s; }
.semi > span { position: absolute; left: 0; right: 0; bottom: 0; text-align: center; font: 700 1.5rem "Cormorant Garamond", serif; color: var(--gold2); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.chip-s { border: 1px solid var(--line); background: rgba(10,12,32,.55); color: var(--text); border-radius: 999px; padding: 4px 12px; font: inherit; font-size: .85rem; }
.chip-s.v { cursor: pointer; opacity: 0; animation: pop .35s var(--ease) calc(var(--i) * 30ms) forwards; font-family: ui-monospace, monospace; }
.chip-s.v:hover { border-color: var(--gold); color: var(--gold2); }

/* синастрия */
.syn { display: grid; gap: 6px; }
.syn-row { display: grid; grid-template-columns: 56px 34px 34px 40px 1fr 120px; gap: 8px; align-items: center; padding: 8px 10px; border-radius: 12px;
  background: rgba(10,12,32,.45); border: 1px solid var(--line); opacity: 0; animation: pop .4s var(--ease) var(--d) forwards; }
.syn-row.best { border-color: var(--gold); background: rgba(212,175,106,.1); }
.syn-year { font: 700 1.1rem "Cormorant Garamond", serif; color: var(--gold2); }
.syn-p, .syn-couple { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; color: #fff;
  background: color-mix(in srgb, var(--c) 70%, #111); }
.syn-couple { width: 36px; height: 36px; box-shadow: 0 0 0 2px var(--c), 0 0 14px var(--c); }
.syn-text { font-size: .88rem; }

/* имена и бизнес */
.name-card { overflow: hidden; }
.name-card.custom { border-color: var(--accent); }
.name-card h3 { font-size: 1.6rem; margin: 0; }
.medal { position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  font-weight: 700; color: #1b1630; animation: medal 2.5s ease-in-out infinite; }
.medal.m1 { background: radial-gradient(circle at 30% 30%, #fff3cf, #d4af6a); }
.medal.m2 { background: radial-gradient(circle at 30% 30%, #fff, #a9b2c9); }
.medal.m3 { background: radial-gradient(circle at 30% 30%, #ffd8b0, #c07a3e); }
@keyframes medal { 50% { transform: rotate(12deg) scale(1.08); } }
.name-table { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 6px; margin-top: 10px; }
.name-table span { position: relative; padding: 4px 8px; border-radius: 8px; background: rgba(10,12,32,.5); font-size: .88rem; overflow: hidden; }
.name-table i { position: absolute; left: 0; bottom: 0; height: 2px; width: var(--w); background: linear-gradient(90deg, var(--accent), var(--gold)); }
details summary { cursor: pointer; color: var(--gold2); font-weight: 600; }
.biz-list { display: grid; gap: 12px; }
.biz { display: grid; grid-template-columns: 40px 1fr auto; gap: 14px; align-items: center; margin: 0; }
.biz.win { border-color: var(--gold); box-shadow: 0 0 30px rgba(212,175,106,.18); }
.biz-rank { font: 700 2rem "Cormorant Garamond", serif; color: var(--gold); text-align: center; }
.biz-main h3 { margin: 0; } .biz-main p { margin: .3rem 0; }

/* смена фамилии */
.sur-ab { display: flex; align-items: center; gap: 12px; margin: 8px 0; }
.sur-arrow { font-size: 1.6rem; color: var(--gold); animation: bob2 1.4s ease-in-out infinite; }
.sur.changed { border-color: var(--accent); }

@media (max-width: 640px) {
  .cal-day { min-height: 58px; } .cal-day small { display: none; } .cal-day b { font-size: 1.3rem; }
  .syn-row { grid-template-columns: 48px 30px 30px 36px 1fr; } .syn-bar { display: none; }
  .biz { grid-template-columns: 30px 1fr; } .biz .ring { display: none; }
}

/* ================================================================ v0.5: интерактив */
.deck-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 8px; }
label.inline { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .9rem; flex-wrap: wrap; }
.deck { position: relative; height: 280px; margin: 10px auto 0; max-width: 820px; overflow: visible; }
.tcard { position: absolute; left: 50%; bottom: 10px; width: 96px; height: 150px; margin-left: -48px; padding: 0; border: 0; background: none;
  cursor: default; transform-origin: 50% 340%; transform: rotate(var(--a)); perspective: 800px;
  transition: transform .6s var(--ease), opacity .4s; z-index: var(--i);
  animation: dealIn .7s var(--ease) calc(var(--i) * 35ms) backwards; }
@keyframes dealIn { from { transform: rotate(0deg) translateY(120px); opacity: 0; } }
.tc-in { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .8s var(--ease); }
.tc-back, .tc-face { position: absolute; inset: 0; border-radius: 10px; backface-visibility: hidden; -webkit-backface-visibility: hidden; border: 1px solid var(--gold); }
.tc-back { display: grid; place-items: center;
  background: repeating-linear-gradient(45deg, rgba(212,175,106,.08) 0 6px, transparent 6px 12px), linear-gradient(160deg, #2b2160, #12143a);
  box-shadow: inset 0 0 0 4px rgba(11,13,31,.7), inset 0 0 0 5px rgba(212,175,106,.35), 0 6px 16px rgba(0,0,0,.4); }
.tc-back span { color: var(--gold2); font-size: 1.6rem; text-shadow: 0 0 12px var(--gold); }
.tc-face { transform: rotateY(180deg); background: linear-gradient(160deg, #241e57, #12143a); }
.tc-front { height: 100%; display: grid; place-items: center; align-content: center; text-align: center; gap: 2px; padding: 6px; }
.tc-front .roman { font-size: 1rem; } .tc-front .arc-sym { font-size: 1.6rem; }
.tc-front .arc-name { font-size: .95rem; line-height: 1.1; } .tc-front .arc-n { font-size: .65rem; }
.deck.shuffling .tcard { animation: shuffle 1.25s var(--ease); }
@keyframes shuffle {
  30% { transform: translate(var(--sx), var(--sy)) rotate(var(--sr)); }
  60% { transform: translate(0, -40px) rotate(0deg); }
  100% { transform: rotate(var(--a)); }
}
.deck.ready .tcard { cursor: pointer; }
.deck.ready:not(.done) .tcard:hover { transform: rotate(var(--a)) translateY(-26px); z-index: 50; }
.deck.ready:not(.done) .tcard:hover .tc-back { box-shadow: inset 0 0 0 4px rgba(11,13,31,.7), inset 0 0 0 5px rgba(212,175,106,.6), 0 0 26px rgba(212,175,106,.6); }
.deck.done .tcard:not(.picked) { opacity: .15; }
.tcard.picked { transform: translateY(-95px) scale(1.55) !important; transform-origin: 50% 50%; z-index: 100; }
.tcard.flipped .tc-in { transform: rotateY(180deg); }
.card-result .day-advice { font-size: 1.1rem; color: var(--gold2); }

/* тест */
.quiz-top { display: flex; justify-content: space-between; align-items: center; }
.qbar { height: 6px; border-radius: 999px; background: rgba(255,255,255,.08); overflow: hidden; margin: 8px 0 16px; }
.qbar span { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--gold)); transition: width .5s var(--ease); }
.qslide { animation: slideR .45s var(--ease); }
.qslide.from-l { animation-name: slideL; }
@keyframes slideR { from { opacity: 0; transform: translateX(40px); } }
@keyframes slideL { from { opacity: 0; transform: translateX(-40px); } }
.qopts { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.qopt { text-align: left; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--line); background: rgba(10,12,32,.55); color: var(--text);
  font: inherit; cursor: pointer; opacity: 0; animation: pop .4s var(--ease) calc(var(--i) * 60ms + 100ms) forwards; transition: border-color .2s, background .2s, transform .2s; }
.qopt:hover { border-color: var(--gold); background: rgba(212,175,106,.1); transform: translateX(4px); }
.qopt.chosen { background: var(--gold); color: #1b1630; border-color: var(--gold); }
.quiz-bars { height: 150px; }
.match { padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); margin: 10px 0; }
.match.exact { border-color: var(--ok); background: rgba(111,207,151,.1); }
.match.close { border-color: var(--gold); background: rgba(212,175,106,.1); }

/* наложение матриц */
.ov-card { display: grid; grid-template-columns: minmax(0, 440px) 1fr; gap: 24px; align-items: center; }
.ov-toggle { display: flex; gap: 6px; justify-content: center; margin-bottom: 6px; }
.mini.active { background: var(--gold); color: #1b1630; border-color: var(--gold); }
.ov-node { opacity: 0; animation: fadeIn .5s var(--ease) var(--d) forwards; }
@keyframes fadeIn { to { opacity: 1; } }
.ov-node circle { stroke-width: 2; }
.ov-a circle { fill: rgba(212,175,106,.9); stroke: #fff3cf; } .ov-a text { fill: #1b1630; }
.ov-b circle { fill: rgba(91,69,173,.92); stroke: #c9b7ff; } .ov-b text { fill: #fff; }
.ov-node text { font: 700 15px Inter, sans-serif; text-anchor: middle; dominant-baseline: central; }
.ov-node.same circle { fill: #4fc28a; stroke: #d6ffe9; filter: drop-shadow(0 0 10px #4fc28a); animation: pulseG 2.4s ease-in-out infinite; }
.ov-node.same text { fill: #0b1a12; font-size: 18px; }
@keyframes pulseG { 50% { filter: drop-shadow(0 0 2px #4fc28a); } }
.ov-a, .ov-b { transition: opacity .4s, transform .4s; transform-box: fill-box; transform-origin: center; }
.ov-svg[data-view="a"] .ov-b, .ov-svg[data-view="b"] .ov-a { opacity: .08; }
.ov-svg[data-view="a"] .ov-a, .ov-svg[data-view="b"] .ov-b { transform: scale(1.15); }
.ov-legend { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; font-size: .82rem; margin-top: 6px; }
.ov-legend .la { color: var(--gold2); } .ov-legend .lb { color: #c9b7ff; } .ov-legend .ls { color: #4fc28a; }
.big-ring { width: 120px; height: 120px; margin: 8px 0 10px; }
.big-ring::before { inset: 10px; } .big-ring span { font-size: 2rem; }
.ov-rows { display: grid; gap: 6px; }
.ov-row { display: grid; grid-template-columns: 26px 160px 1fr 1fr 1fr; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 10px;
  background: rgba(10,12,32,.45); border: 1px solid var(--line); font-size: .9rem; }
.ov-row.same { border-color: #4fc28a; background: rgba(79,194,138,.1); }
.ov-row b { color: var(--gold); }
.ov-x.a { color: var(--gold2); } .ov-x.b { color: #c9b7ff; } .ov-x.p { color: var(--muted); }

/* окно карточки для соцсетей */
.modal { position: fixed; inset: 0; z-index: 80; display: none; place-items: center; padding: 16px;
  background: rgba(5,6,18,.75); backdrop-filter: blur(6px); }
.modal.open { display: grid; animation: fade .3s var(--ease); }
.modal-box { position: relative; width: min(520px, 100%); max-height: 94vh; overflow-y: auto; background: #15173a;
  border: 1px solid var(--gold); border-radius: 18px; padding: 20px; box-shadow: 0 30px 80px rgba(0,0,0,.6); }
.modal-x { position: absolute; top: 10px; right: 12px; background: none; border: 0; color: var(--muted); font-size: 1.2rem; cursor: pointer; }
.fmt { display: flex; gap: 6px; margin: 6px 0 12px; }
.share-cv { width: 100%; height: auto; border-radius: 10px; display: block; box-shadow: 0 10px 30px rgba(0,0,0,.5); max-height: 62vh; object-fit: contain; }
.share-actions { display: flex; gap: 8px; flex-wrap: wrap; margin: 14px 0 6px; }
.share-actions .btn { padding: 9px 14px; }
.mx-share { justify-content: center; margin-top: 8px; }

@media (max-width: 860px) {
  .ov-card { grid-template-columns: 1fr; }
  .ov-row { grid-template-columns: 22px 1fr 1fr; } .ov-row .muted, .ov-x.p { display: none; }
}
@media (max-width: 640px) {
  .deck { height: 250px; } .tcard { width: 66px; height: 104px; margin-left: -33px; transform-origin: 50% 330%; }
  .tcard.picked { transform: translateY(-70px) scale(1.6) !important; }
}

/* ================================================================ v0.6: звёзды и кошелёк */
.wallet-pill { position: fixed; top: 14px; right: 16px; z-index: 40; border: 1px solid var(--gold); border-radius: 999px;
  background: rgba(21,23,58,.85); backdrop-filter: blur(8px); color: var(--gold2); padding: 7px 14px; font: inherit; font-size: .95rem;
  cursor: pointer; box-shadow: 0 6px 20px rgba(0,0,0,.35); transition: transform .2s, box-shadow .2s; }
.wallet-pill:hover { transform: translateY(-2px); box-shadow: 0 8px 26px rgba(212,175,106,.35); }
.wallet-pill .wp-sym { color: var(--gold); text-shadow: 0 0 10px var(--gold); }
.wallet-pill .wp-prem { font-size: .65rem; background: var(--accent); color: #fff; border-radius: 6px; padding: 1px 5px; vertical-align: 2px; }
.wallet-pill.bump { animation: bump .7s var(--ease); }
@keyframes bump { 30% { transform: scale(1.25); box-shadow: 0 0 30px rgba(241,217,161,.8); } }

/* замок с тизером */
.lockbox { position: relative; overflow: hidden; border-color: rgba(212,175,106,.45);
  background: linear-gradient(160deg, rgba(43,33,96,.75), rgba(24,27,62,.8)); }
.lock-blur { position: absolute; inset: 0; padding: 26px; display: grid; gap: 12px; filter: blur(6px); opacity: .35; pointer-events: none; }
.lock-blur span { height: 14px; border-radius: 6px; background: linear-gradient(90deg, var(--gold2), var(--accent)); }
.lock-blur span:nth-child(2n) { width: 70%; } .lock-blur span:nth-child(3n) { width: 85%; }
.lock-body { position: relative; text-align: center; max-width: 560px; margin: 0 auto; }
.lock-ico { font-size: 2rem; animation: wiggle 3s ease-in-out infinite; display: inline-block; }
.lock-ico.big { font-size: 2.6rem; }
@keyframes wiggle { 0%, 90%, 100% { transform: rotate(0); } 93% { transform: rotate(-12deg); } 96% { transform: rotate(10deg); } }
.lock-teaser { margin: .35rem 0; }
.lock-teaser b { color: var(--gold2); }
.lock-btn { margin: 10px 0 6px; box-shadow: 0 0 0 rgba(212,175,106,.5); animation: glowBtn 2.6s ease-in-out infinite; }
.lock-btn small { font-weight: 400; opacity: .7; margin-left: 4px; }
@keyframes glowBtn { 50% { box-shadow: 0 0 26px rgba(212,175,106,.55); } }

/* пакеты */
.packs { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin: 10px 0; }
.pack { position: relative; border: 1px solid var(--line); border-radius: 14px; background: rgba(10,12,32,.55); color: var(--text);
  padding: 16px 10px; font: inherit; cursor: pointer; text-align: center; transition: transform .2s, border-color .2s, box-shadow .2s;
  opacity: 0; animation: pop .45s var(--ease) calc(var(--i) * 70ms) forwards; }
.pack:hover { transform: translateY(-4px); border-color: var(--gold); box-shadow: 0 10px 26px rgba(212,175,106,.2); }
.pack.hit { border-color: var(--gold); background: linear-gradient(160deg, rgba(212,175,106,.18), rgba(10,12,32,.6)); }
.pack.loading { opacity: .6; pointer-events: none; }
.pack-hit { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: var(--gold); color: #1b1630; font-size: .7rem;
  font-weight: 700; padding: 2px 10px; border-radius: 999px; text-transform: uppercase; letter-spacing: .06em; }
.pack-title { font-size: .85rem; color: var(--muted); }
.pack-stars { font: 700 2rem/1.2 "Cormorant Garamond", serif; color: var(--gold2); }
.pack-stars small { font-size: 1rem; color: var(--ok); margin-left: 2px; }
.pack-stars span { color: var(--gold); font-size: 1.2rem; }
.pack-rub { font-weight: 600; }
.prem-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px;
  border: 1px solid var(--accent); background: rgba(143,123,216,.12); margin-top: 8px; }
.modal-box.wide { width: min(640px, 100%); }

/* кошелёк в кабинете */
.wallet-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 6px; }
.wallet-bal { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.wallet-bal > span:not(.wb-sym) { font: 700 3rem/1 "Cormorant Garamond", serif; color: var(--gold2); }
.wb-sym { font-size: 2rem; color: var(--gold); text-shadow: 0 0 16px var(--gold); animation: spin 12s linear infinite; display: inline-block; }
.wallet-bal small { color: var(--muted); width: 100%; }
.wallet-prem { padding: 10px 14px; border-radius: 12px; border: 1px dashed var(--accent); text-align: right; }
.wallet-prem.on { border-style: solid; background: rgba(143,123,216,.18); }
.wallet-grid .card { margin: 0; }
.ref-row { display: flex; gap: 6px; } .ref-row input { flex: 1; min-width: 0; }
.unl { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.tx { display: grid; gap: 4px; margin-top: 8px; }
.tx-row { display: grid; grid-template-columns: 90px 1fr auto; gap: 10px; font-size: .88rem; padding: 6px 8px; border-radius: 8px; background: rgba(10,12,32,.4); }
.tx-row .plus { color: var(--ok); font-weight: 600; } .tx-row .minus { color: var(--warn); font-weight: 600; }
.tx-row small { color: var(--muted); }
.agree { flex-direction: row !important; align-items: flex-start; gap: 8px !important; font-size: .85rem !important; }
.agree input { margin-top: 3px; }
.gift { color: var(--gold2); margin: 4px 0 0; }
.reg-only { display: grid; gap: 12px; }
.reg-only[hidden] { display: none; }
.footer-links a, .legal a { color: var(--gold2); }
.ov-locked { align-items: start; }

/* юридические страницы */
.legal-page { padding: 20px 0 60px; }
.legal { max-width: 820px; }
.legal h1 { font-size: 2.4rem; color: var(--gold2); margin-bottom: .2rem; }
.legal h2 { font-size: 1.4rem; margin-top: 1.6rem; }
.legal p, .legal li { color: var(--text); }
.legal-warn { border-color: var(--warn); color: var(--warn); }

@media (max-width: 640px) {
  .wallet-pill { top: 8px; right: 8px; padding: 5px 11px; font-size: .85rem; }
  .tx-row { grid-template-columns: 70px 1fr; } .tx-row small { display: none; }
  .prem-row { flex-direction: column; align-items: stretch; }
}
.wallet a, .modal-box a { color: var(--gold2); }
.modal-box .share-actions { justify-content: flex-start; }

/* v1.0: ссылки на школу и блог */
.top-links { display: flex; gap: 14px; flex-wrap: wrap; margin: 4px 0 10px; }
.top-links a { color: var(--gold2); text-decoration: none; font-size: .95rem; border-bottom: 1px dashed transparent; }
.top-links a:hover { border-bottom-color: var(--gold); }


/* v1.1: режим ученика */
.practice-toggle { flex-direction: row !important; align-items: center; gap: 8px !important; margin: -4px 0 12px; color: var(--muted); font-size: .9rem !important; cursor: pointer; }
.practice-toggle input { accent-color: var(--gold); width: 16px; height: 16px; }
.practice { border-color: var(--accent); }
.pr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; margin-top: 10px; }
.pr-grid label { display: flex; flex-direction: column; gap: 4px; font-size: .85rem; color: var(--muted); }
.pr-grid input { font: 700 1.3rem "Cormorant Garamond", serif; text-align: center; color: var(--gold2); }
.pr-actions { grid-column: 1 / -1; display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.pr-actions a.btn { text-decoration: none; }
.pr-score { display: flex; gap: 16px; align-items: center; margin-bottom: 12px; }
.pr-score .ring { width: 84px; height: 84px; } .pr-score .ring span { font-size: 1.4rem; }
.pr-score h3 { margin: 0; }
.pr-table { width: 100%; border-collapse: separate; border-spacing: 0 4px; font-size: .92rem; }
.pr-table th { text-align: left; font-size: .75rem; text-transform: uppercase; color: var(--gold); font-weight: 500; padding: 4px 8px; }
.pr-table td { padding: 7px 8px; background: rgba(10,12,32,.45); }
.pr-table tr.ok td { background: rgba(111,207,151,.1); } .pr-table tr.bad td { background: rgba(255,155,155,.08); }
.pr-table tr td:first-child { border-radius: 8px 0 0 8px; } .pr-table tr td:last-child { border-radius: 0 8px 8px 0; }
.tbl-wrap { overflow-x: auto; }

/* v1.1: тариф «Профи» */
.pro-card { display: flex; gap: 14px; align-items: center; padding: 14px; border-radius: 14px; margin: 10px 0 6px;
  border: 1px solid var(--accent); background: linear-gradient(135deg, rgba(143,123,216,.2), rgba(10,12,32,.5)); }
.pro-card.on { align-items: flex-start; border-color: var(--gold); }
.pro-card > div:nth-child(2) { flex: 1; } .pro-card p { margin: .2rem 0 0; }
.pro-badge { flex: 0 0 auto; width: 54px; height: 54px; border-radius: 14px; display: grid; place-items: center; font-weight: 800; letter-spacing: .08em;
  color: #1b1630; background: linear-gradient(135deg, #f1d9a1, #d4af6a 50%, #c9b7ff); box-shadow: 0 0 20px rgba(212,175,106,.4); }
.pro-main { flex: 1; display: grid; gap: 6px; }
.brand-form { display: grid; gap: 6px; margin-top: 6px; }
.people-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.people-head input { max-width: 300px; }
.person-notes { font-size: .85rem; color: var(--muted); background: rgba(10,12,32,.45); border-radius: 8px; padding: 6px 8px; white-space: pre-wrap; max-height: 90px; overflow: auto; }
.person[hidden] { display: none; }
.person.add textarea { width: 100%; }

/* v1.2: уровни PDF, комплекты, мои PDF и карты */
.modal-box.tiers-box { width: min(860px, 100%); }
.tiers { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin: 14px 0 10px; }
.tier { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px 14px 14px; border-radius: 16px;
  border: 1px solid var(--line); background: rgba(10,12,32,.55); opacity: 0; animation: tierIn .5s var(--ease) forwards;
  animation-delay: calc(var(--i) * 90ms); transition: transform .25s, border-color .25s, box-shadow .25s; }
.tier:hover { transform: translateY(-4px); border-color: var(--gold); }
.tier.hit { border-color: var(--gold); background: linear-gradient(160deg, rgba(212,175,106,.2), rgba(10,12,32,.6));
  box-shadow: 0 10px 34px rgba(212,175,106,.18); }
.tier.owned { border-color: rgba(111,207,151,.6); }
@keyframes tierIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.tier-title { font: 700 1.45rem "Cormorant Garamond", serif; color: var(--gold2); }
.tier-pages { font-size: .8rem; color: var(--muted); margin-top: -4px; }
.tier-desc { font-size: .86rem; margin: 0; flex: 1; }
.tier-price { font: 700 1.5rem "Cormorant Garamond", serif; color: var(--text); display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.tier-price s { color: var(--muted); font-size: 1.05rem; font-weight: 500; }
.tier-price small { width: 100%; font: 400 .74rem Inter, sans-serif; color: var(--muted); }
.tier-own { color: var(--ok); font-size: 1.1rem; }
.tier .btn { width: 100%; }
.bundles .tiers { margin-bottom: 6px; }
.bundle-pdfs { font-size: .88rem; color: var(--muted); display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pdf-owns, .chart-links { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); margin: 8px 0 14px; }
.pdf-own, .chart-link { display: grid; gap: 2px; text-align: left; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line);
  background: rgba(10,12,32,.5); color: var(--text); font: inherit; cursor: pointer; text-decoration: none; transition: .2s; }
.pdf-own:hover, .chart-link:hover { border-color: var(--gold); transform: translateY(-2px); }
.pdf-own small, .chart-link small { color: var(--muted); font-size: .76rem; }
.chart-link b { color: var(--gold2); }
@media (prefers-reduced-motion: reduce) { .tier { animation: none; opacity: 1; } }

/* v1.3: отзывы на главной */
.home-reviews { margin: 34px 0 10px; }
.hr-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.hr-head a { color: var(--gold2); }
.hr-list { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin-top: 10px; }
.hr-top { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; }
.hr-top small { display: block; color: var(--muted); font-size: .78rem; }
.hr-num { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font: 700 1.35rem "Cormorant Garamond", serif;
  color: #1b1630; background: radial-gradient(circle at 30% 30%, var(--gold2), var(--gold)); text-decoration: none; }
.hr-stars { color: var(--gold2); letter-spacing: 1px; }
.hr p { margin: .6rem 0 0; font-size: .95rem; }

/* v1.3: быстрый вход при покупке */
.qa-tabs { display: flex; gap: 6px; justify-content: center; margin: 6px 0 12px; }
.qa-form { display: grid; gap: 10px; }
.qa-form .agree { display: flex; gap: 8px; align-items: flex-start; text-align: left; }
.qa-form .agree a { color: var(--gold2); }
.qa-pass { display: flex; gap: 10px; align-items: center; justify-content: center; margin: 10px 0; }
.qa-pass code { font-size: 1.4rem; letter-spacing: 2px; padding: 8px 14px; border-radius: 10px; border: 1px dashed var(--gold); color: var(--gold2); background: rgba(10,12,32,.6); }
.footer-req a { color: var(--gold2); }

/* разработчик сайта */
.dev-credit { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; padding: 6px 14px 6px 10px; border-radius: 999px;
  border: 1px solid var(--line); color: var(--muted); text-decoration: none; font-size: .82rem; transition: border-color .25s, color .25s, transform .25s; }
.dev-credit:hover { border-color: var(--gold); color: var(--text); transform: translateY(-2px); }
.dev-credit img { width: 28px; height: 28px; border-radius: 6px; object-fit: contain; }
.dev-name { color: var(--gold2); font-weight: 600; }
