
/* GREEN HEAVEN — cinematic motion layer
   Additive enhancement only: no layout, spacing, typography, or content changes. */
:root {
  --gh-neon: #55ff55;
  --gh-gold: #ffaa00;
  --gh-cyan: #55ffff;
}
html { scroll-behavior: smooth; }
body { isolation: isolate; }
.gh-atmosphere {
  position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden;
  background:
    radial-gradient(ellipse at 12% 18%, rgba(30, 255, 110, .075), transparent 34%),
    radial-gradient(ellipse at 86% 35%, rgba(0, 220, 255, .055), transparent 32%),
    radial-gradient(ellipse at 52% 100%, rgba(255, 170, 0, .045), transparent 38%);
}
.gh-atmosphere::before, .gh-atmosphere::after {
  content: ""; position: absolute; width: 42vw; height: 42vw; min-width: 280px; min-height: 280px;
  border-radius: 50%; filter: blur(85px); opacity: .12; will-change: transform;
  animation: gh-orbit 22s ease-in-out infinite alternate;
}
.gh-atmosphere::before { background: #1aff83; top: -22%; left: -12%; }
.gh-atmosphere::after { background: #00d9ff; bottom: -28%; right: -10%; animation-delay: -9s; }
.gh-particle-canvas {
  position: fixed; inset: 0; width: 100%; height: 100%; z-index: 80;
  pointer-events: none; opacity: .65;
}
.gh-light-sweep {
  position: fixed; inset: 0; z-index: 79; pointer-events: none; opacity: 0;
  background: linear-gradient(115deg, transparent 0%, rgba(85,255,85,.025) 45%, rgba(85,255,255,.04) 50%, transparent 60%);
  transform: translateX(-100%); animation: gh-sweep 13s ease-in-out infinite;
}
:where(.wrap, main, .page-content) { position: relative; }
:where(.card, .panel, .stat-card, .leaderboard-card, .server-card, .feature-card, .shop-card, .event-card, .creator-card, .staff-card, .punishment-card, .update-card, .rule-card, .player-card, article) {
  transform-style: preserve-3d;
  transition: transform .28s cubic-bezier(.2,.75,.25,1), box-shadow .28s ease, border-color .28s ease, filter .28s ease;
}
:where(.card, .panel, .stat-card, .leaderboard-card, .server-card, .feature-card, .shop-card, .event-card, .creator-card, .staff-card, .punishment-card, .update-card, .rule-card, .player-card, article):hover {
  border-color: rgba(85,255,85,.55);
  box-shadow: 0 12px 36px rgba(0,0,0,.22), 0 0 24px rgba(85,255,85,.075);
}
a, button, [role="button"] { transition: color .2s ease, text-shadow .2s ease, filter .2s ease; }
a:hover, button:hover, [role="button"]:hover { filter: drop-shadow(0 0 7px rgba(85,255,85,.22)); }
:where(button, .btn, a.btn, [role="button"]) { position: relative; overflow: hidden; }
:where(button, .btn, a.btn, [role="button"])::after {
  content: ""; position: absolute; inset: -120% auto -120% -45%; width: 28%;
  transform: rotate(22deg) translateX(-220%); pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent);
  transition: transform .65s ease;
}
:where(button, .btn, a.btn, [role="button"]):hover::after { transform: rotate(22deg) translateX(650%); }
header.topbar { box-shadow: 0 5px 28px rgba(0,0,0,.18); }
.brand img, img.logo { transition: transform .35s ease, filter .35s ease; }
.brand:hover img, img.logo:hover { transform: rotate(-3deg) scale(1.045); filter: drop-shadow(0 0 12px rgba(85,255,85,.35)); }
::selection { text-shadow: none; }
@keyframes gh-orbit { from { transform: translate3d(-3%, 0, 0) scale(.92); } to { transform: translate3d(7%, 8%, 0) scale(1.12); } }
@keyframes gh-sweep { 0%, 72%, 100% { opacity: 0; transform: translateX(-100%); } 78% { opacity: .8; } 92% { opacity: .25; transform: translateX(100%); } }
@media (hover: hover) and (pointer: fine) {
  .gh-tilt { will-change: transform; }
}
@media (max-width: 700px) {
  .gh-atmosphere::before, .gh-atmosphere::after { filter: blur(65px); opacity: .08; }
  .gh-particle-canvas { opacity: .36; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .gh-particle-canvas { display: none; }
}
