/* ===== Сингулярность v2 — production styles ===== */
html { scroll-behavior: smooth; }
* { box-sizing: border-box; }
body {
  margin: 0;
  background: #2B2D31;
  font-family: 'Golos Text', system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.7;
  overflow-x: clip;
}

:root {
  --bg:#2B2D31; --bg2:#232529; --text:#C0C4CC; --hi:#EDEFF3; --muted:#8B8F98;
  --glass:rgba(255,255,255,0.04); --glass2:rgba(255,255,255,0.07); --stroke:rgba(192,196,204,0.15);
  --gold:#B8963E; --goldhi:#D4B45C; --navy:#274690; --navy2:#1F3A5F;
  --shadow:rgba(0,0,0,0.4); --inset:rgba(255,255,255,0.09);
  --edge:linear-gradient(155deg, rgba(255,255,255,.22), rgba(255,255,255,.04) 32%, rgba(184,150,62,.06) 68%, rgba(184,150,62,.3) 100%);
  --edgegold:linear-gradient(155deg, rgba(212,180,92,.4), rgba(255,255,255,.05) 35%, rgba(184,150,62,.12) 70%, rgba(184,150,62,.45) 100%);
}
:root[data-theme="light"] {
  --bg:#E7E9EE; --bg2:#DCDFE6; --text:#41444C; --hi:#20232A; --muted:#6A6F79;
  --glass:rgba(255,255,255,0.55); --glass2:rgba(255,255,255,0.8); --stroke:rgba(43,45,49,0.14);
  --shadow:rgba(30,40,60,0.16); --inset:rgba(255,255,255,0.95);
  --edge:linear-gradient(155deg, rgba(255,255,255,.95), rgba(43,45,49,.08) 35%, rgba(184,150,62,.14) 70%, rgba(184,150,62,.4) 100%);
  --edgegold:linear-gradient(155deg, rgba(184,150,62,.5), rgba(255,255,255,.6) 35%, rgba(184,150,62,.15) 70%, rgba(184,150,62,.5) 100%);
}

#sing-root {
  background: var(--bg); color: var(--text); min-height: 100vh; overflow-x: clip;
  transition: background .5s cubic-bezier(.22,1,.36,1), color .5s cubic-bezier(.22,1,.36,1);
  font-size: 17px; line-height: 1.7; position: relative;
}

a { color: #B8963E; text-decoration: none; transition: color .3s cubic-bezier(.22,1,.36,1); }
a:hover { color: #D4B45C; }
input, textarea, button { font-family: 'Golos Text', system-ui, sans-serif; }
input::placeholder, textarea::placeholder { color: var(--muted); }
button { cursor: pointer; }
[data-cursor="on"], [data-cursor="on"] * { cursor: none; }

/* ===== keyframes ===== */
@keyframes tickerMove { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes ringSpin { from { transform: rotateX(72deg) rotateZ(0deg); } to { transform: rotateX(72deg) rotateZ(360deg); } }
@keyframes ringSpinFlat { from { transform: rotateZ(0deg); } to { transform: rotateZ(360deg); } }
@keyframes floatY { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@keyframes wingFlap { 0%,100% { transform: rotate(-24deg); } 50% { transform: rotate(16deg); } }
@keyframes swanCross { 0% { transform: translateX(-35vw); } 14% { transform: translateX(135vw); } 100% { transform: translateX(135vw); } }
@keyframes rise { from { opacity: 0; transform: translateY(34px); } to { opacity: 1; transform: translateY(0); } }
@keyframes glowPulse { 0%,100% { opacity: .4; } 50% { opacity: .85; } }
@keyframes scrollHint { 0%,100% { transform: scaleY(.2); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } }

section[data-screen-label], footer[data-screen-label] {
  animation: rise cubic-bezier(.22,1,.36,1) both;
  animation-timeline: view();
  animation-range: entry 0% entry 35%;
}

/* ===== generic hover/focus port of the prototype's style-hover / style-focus ===== */
/* elements carry data-hover='{"color":"var(--goldhi)"}' — JS applies/reverts inline styles on mouseenter/leave */

/* ===== responsive (mirrors the prototype's mobile pass, desktop untouched below 768px) ===== */
@media (max-width: 768px) {
  #nav-links-desktop { display: none !important; }
  #nav-burger { display: flex !important; }
  section[data-screen-label] { padding-left: 20px !important; padding-right: 20px !important; padding-top: 88px !important; }
  footer[data-screen-label] { padding: 48px 20px 32px !important; margin-top: 56px !important; }
  #hero-grid { grid-template-columns: 1fr !important; padding: 104px 20px 56px !important; gap: 36px !important; }
  #hero-scene { max-height: 42vh !important; margin: 0 auto; }
  #founder-grid { grid-template-columns: 1fr !important; gap: 26px !important; padding: 26px 20px !important; }
  #ticker-bar span { padding: 0 14px !important; }
  #ticker-live-label { padding: 0 10px !important; font-size: 11px !important; }
  #ticker-updated { padding: 0 10px !important; font-size: 11px !important; }
  [data-chip] { min-height: 44px !important; display: inline-flex !important; align-items: center !important; padding: 11px 18px !important; }
  [data-tapbtn] { min-height: 44px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; padding: 11px 18px !important; }
  [data-icobtn] { min-width: 40px !important; min-height: 40px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; padding: 8px !important; }
  #disclaimer-banner { flex-direction: column !important; align-items: stretch !important; gap: 14px !important; }
  #disclaimer-btn { width: 100% !important; text-align: center; }
  nav { backdrop-filter: blur(14px) !important; -webkit-backdrop-filter: blur(14px) !important; }
}
@media (max-width: 480px) {
  section[data-screen-label] { padding-top: 64px !important; padding-left: 16px !important; padding-right: 16px !important; }
  footer[data-screen-label] { padding: 40px 16px 28px !important; }
  #hero-grid { padding: 88px 16px 48px !important; }
  #ticker-updated { display: none !important; }
}

/* ===== founder photo slot ===== */
#founder-photo-slot {
  width: 100%; height: 100%; position: relative; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  background: var(--glass2); color: var(--muted); font-size: 13px; letter-spacing: .04em;
  text-align: center; padding: 20px; background-size: cover; background-position: center;
}
#founder-photo-slot.has-image { color: transparent; }
#founder-photo-slot.drag-over { outline: 2px dashed var(--gold); outline-offset: -8px; }
#founder-photo-slot input[type="file"] { display: none; }
