:root {
  --bg: #070708;
  --panel: #0d0d0f;
  --panel-2: #121216;
  --text: #f4f2ec;
  --muted: #9b9a95;
  --line: rgba(255,255,255,.12);
  --accent: #d8ff4f;
  --accent-2: #a7ffda;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Manrope', sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--bg)}
body{background:var(--bg);color:var(--text);font-family:var(--sans);overflow-x:hidden}
body.locked{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{color:inherit}
::selection{background:var(--accent);color:#050505}
::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#070708}::-webkit-scrollbar-thumb{background:#343438;border-radius:999px}
.noise{position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}
.cursor-glow{position:fixed;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(216,255,79,.08),transparent 66%);pointer-events:none;z-index:0;transform:translate(-50%,-50%)}

/* Signature luminous rail */
.glow-rail{position:fixed;left:0;right:0;top:0;height:3px;z-index:250;pointer-events:none;overflow:visible;background:rgba(255,255,255,.045)}
.glow-rail::before{content:"";position:absolute;left:0;top:-8px;width:var(--scroll-progress,0%);height:18px;background:linear-gradient(90deg,rgba(216,255,79,.02),rgba(167,255,218,.18),rgba(216,255,79,.2));filter:blur(9px);transition:width .08s linear}
.glow-rail span{position:absolute;inset:0 auto 0 0;width:var(--scroll-progress,0%);height:100%;background:linear-gradient(90deg,var(--accent-2),#fff 72%,var(--accent));box-shadow:0 0 8px var(--accent),0 0 22px rgba(216,255,79,.82),0 0 45px rgba(167,255,218,.42);transition:width .08s linear}
.glow-rail span::after{content:"";position:absolute;right:-3px;top:50%;width:7px;height:7px;border-radius:50%;background:#fff;transform:translateY(-50%);box-shadow:0 0 8px #fff,0 0 18px var(--accent),0 0 34px var(--accent-2)}
@keyframes railTravel{0%{transform:translateX(0)}100%{transform:translateX(460%)}}
@keyframes railAura{from{opacity:.25;transform:translateX(-18%)}to{opacity:.8;transform:translateX(18%)}}

/* Cursor-reactive hero typography */
.reactive-title .char{display:inline-block;will-change:transform,filter,color;transition:transform .16s cubic-bezier(.2,.8,.2,1),color .22s ease,filter .22s ease;text-shadow:0 0 0 transparent}
.reactive-title .char.space{width:.27em}
.reactive-title .char.is-near{color:#fff;filter:brightness(1.18);text-shadow:0 0 18px rgba(216,255,79,.35),0 0 42px rgba(167,255,218,.14)}
.reactive-title .accent-line .char.is-near{color:var(--accent-2);text-shadow:0 0 17px rgba(167,255,218,.5),0 0 42px rgba(216,255,79,.2)}
@media (prefers-reduced-motion:reduce){.glow-rail span,.glow-rail::before{transition:none}.reactive-title .char{transition:none}}

.page-loader{position:fixed;inset:0;background:#050506;z-index:999;display:grid;place-items:center;transition:opacity .7s,visibility .7s}.page-loader.loaded{opacity:0;visibility:hidden}.loader-mark{font:italic 700 90px var(--serif)}.loader-line{position:absolute;bottom:12%;width:180px;height:1px;background:#28282b}.loader-line span{display:block;height:100%;background:var(--accent);animation:load 1.3s ease forwards}@keyframes load{from{width:0}to{width:100%}}

/* Loader safety fallback: prevents a permanent cover if JavaScript is blocked. */
.page-loader{animation:aohana-loader-fallback .01s linear 3.2s forwards}
.page-loader.loaded{animation:none}
@keyframes aohana-loader-fallback{to{opacity:0;visibility:hidden;pointer-events:none}}
