:root { color-scheme: dark; }
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
  background: #020617;
}
.mono { font-family: 'JetBrains Mono', monospace; }
.brand { font-family: 'Bricolage Grotesque', sans-serif; letter-spacing: -0.03em;
  background: linear-gradient(120deg, #ff5f7e, #ffb14e, #b98cff);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ---- Browser chrome ---- */
.chrome { background: #161c29; border-bottom: 1px solid #2b3446; }

/* Loading effects */
.chrome-progress {
  background: linear-gradient(90deg, transparent, #ff5f7e, #ffb14e, transparent);
  background-size: 200% 100%;
  animation: slide 1.1s linear infinite;
}
@keyframes slide { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

.dream-progress {
  width: 40%;
  background: linear-gradient(90deg, #ff5f7e, #b98cff);
  animation: prog 1.3s ease-in-out infinite;
}
@keyframes prog { 0% { margin-left: -40%; } 100% { margin-left: 100%; } }

.dream-orb {
  width: 72px; height: 72px; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #ff9dbb, #ff5f7e 40%, #7a2a52 80%);
  box-shadow: 0 0 40px #ff5f7e88, inset 0 0 20px #ffffff44;
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse {
  0%,100% { transform: scale(1); filter: hue-rotate(0deg); }
  50% { transform: scale(1.15); filter: hue-rotate(60deg); }
}

.float-slow { animation: float 3.5s ease-in-out infinite; }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* Home screen atmosphere */
.homescreen {
  background:
    radial-gradient(circle at 20% 10%, #ff5f7e22, transparent 40%),
    radial-gradient(circle at 80% 20%, #b98cff22, transparent 40%),
    radial-gradient(circle at 50% 90%, #ffb14e1a, transparent 45%),
    #020617;
}

/* ---- Generated fake site typography ---- */
.gensite { min-height: 100%; animation: fadein 0.5s ease; }
.gsite-hero { font-family: 'Newsreader', serif; }
.gsite-h2 { font-family: 'Bricolage Grotesque', sans-serif; letter-spacing: -0.02em; }
.gsite-body { font-family: 'Newsreader', serif; font-size: 1.05rem; }
.gensite section { animation: rise 0.5s ease both; }
@keyframes fadein { from { opacity: 0; } to { opacity: 1; } }
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* scrollbar flair */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #0d1119; }
::-webkit-scrollbar-thumb { background: #ff5f7e66; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #ff5f7e; }

@media (max-width: 640px) {
  .brand { font-size: 3rem; }
}