/* Nhavesinh – Trang chủ 8 khối cầu */
.nvs-hero{
  --bg:#0a0e15; --ink:#efece6; --ink-2:#e9e6df; --mute:#9b978f; --mute-2:#b9b4aa; --dim:#8a8f9c;
  --line:#263044; --accent:#e0a95c; --accent-2:#f3c487;
  --r:240px; --slot:132px; --s:84px;
  position:relative; box-sizing:border-box; min-height:max(640px, 100svh);
  display:flex; flex-direction:column; justify-content:center;
  color:var(--ink-2); font-family:'Noto Serif', Georgia, serif;
  background-color:var(--bg);
  background-image:
    radial-gradient(1px 1px at 12% 18%,rgba(255,255,255,.55) 50%,transparent 51%),
    radial-gradient(1px 1px at 27% 72%,rgba(255,255,255,.4) 50%,transparent 51%),
    radial-gradient(1px 1px at 46% 9%,rgba(255,255,255,.5) 50%,transparent 51%),
    radial-gradient(1px 1px at 63% 84%,rgba(255,255,255,.35) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 81% 22%,rgba(255,255,255,.6) 50%,transparent 51%),
    radial-gradient(1px 1px at 92% 61%,rgba(255,255,255,.4) 50%,transparent 51%),
    radial-gradient(1px 1px at 7% 88%,rgba(255,255,255,.35) 50%,transparent 51%),
    radial-gradient(1px 1px at 36% 41%,rgba(255,255,255,.3) 50%,transparent 51%),
    radial-gradient(1px 1px at 72% 47%,rgba(255,255,255,.3) 50%,transparent 51%),
    radial-gradient(1200px 700px at 78% 45%,rgba(40,58,92,.35),transparent 70%);
  overflow:hidden;
}
.nvs-hero *,.nvs-hero *::before,.nvs-hero *::after{box-sizing:border-box}
.nvs-hero.is-bleed{width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw)}

.nvs-hero__inner{
  width:100%; max-width:1440px; margin:0 auto; padding:72px 64px 88px;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:48px;
}
.nvs-hero__text{flex:1 1 460px; max-width:600px; display:flex; flex-direction:column; gap:28px; min-width:0}

.nvs-eyebrow{margin:0; font:600 12px/1.4 'Be Vietnam Pro',sans-serif; letter-spacing:.18em; color:var(--accent)}

/* Câu trích dẫn */
.nvs-quote{margin:0; display:flex; flex-direction:column; gap:18px}
.nvs-quote blockquote{margin:0; padding:0; border:0; background:none; quotes:none}
.nvs-quote blockquote::before,.nvs-quote blockquote::after{content:none}
.nvs-quote__text{margin:0; font-family:'Be Vietnam Pro',sans-serif; font-weight:400; letter-spacing:-.02em; color:var(--ink); text-wrap:balance}
.nvs-quote.is-short .nvs-quote__text{font-size:clamp(40px,5.2vw,72px); line-height:1.07}
.nvs-quote.is-mid .nvs-quote__text{font-size:clamp(32px,3.9vw,54px); line-height:1.12}
.nvs-quote.is-long .nvs-quote__text{font-size:clamp(26px,3vw,40px); line-height:1.2}
.nvs-hl{color:var(--accent)}
.nvs-quote__by{display:flex; flex-wrap:wrap; align-items:baseline; column-gap:12px; row-gap:4px; font:500 15px/1.5 'Be Vietnam Pro',sans-serif; color:var(--mute-2)}
.nvs-quote__dash{width:32px; height:1px; background:var(--accent); align-self:center}
.nvs-quote__src{font:italic 400 15px/1.5 'Noto Serif',serif; color:var(--dim)}
.nvs-quote__src::before{content:"· "; font-style:normal}
.nvs-quote__orig{flex-basis:100%; padding-left:44px; font:400 14px/1.5 'Noto Serif',serif; color:var(--dim); letter-spacing:.06em}

.nvs-intro{margin:0; font-size:19px; line-height:1.75; color:var(--mute)}
.nvs-intro__strong{color:var(--ink-2)}

/* Dải trạng thái */
.nvs-status{margin:0; display:flex; flex-wrap:wrap; width:fit-content; max-width:100%; border:1px solid var(--line); border-radius:6px; background:rgba(14,19,29,.7); font-family:'JetBrains Mono',monospace}
.nvs-status>div{padding:12px 18px; display:flex; flex-direction:column; gap:6px; border-right:1px solid var(--line)}
.nvs-status>div:last-child{border-right:0}
.nvs-status dt{font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim)}
.nvs-status dd{margin:0; font-size:14px; color:var(--ink-2); display:flex; align-items:center; gap:8px}
.nvs-moon{width:12px; height:12px; border-radius:50%; display:inline-block; background:#d9c49a; box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.nvs-hint{margin:0; font:400 13px/1.5 'Be Vietnam Pro',sans-serif; color:var(--dim)}

/* Quỹ đạo */
.nvs-orbit{position:relative; flex:0 0 auto; display:flex; flex-direction:column; align-items:center}
.nvs-stage{position:relative; width:calc(var(--r) * 2 + var(--slot) + 16px); height:calc(var(--r) * 2 + var(--slot) + 16px)}
.nvs-track{position:absolute; border-radius:50%; pointer-events:none}
.nvs-track--a{inset:calc(var(--slot) / 2 + 8px); border:1px solid rgba(224,169,92,.18)}
.nvs-track--b{inset:calc(var(--slot) / 2 - 22px); border:1px dashed rgba(138,143,156,.18)}
.nvs-glow{position:absolute; inset:30%; border-radius:50%; background:radial-gradient(circle at 50% 45%,rgba(224,169,92,.16),rgba(10,14,21,0) 70%); pointer-events:none}

@keyframes nvs-ccw{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}
@keyframes nvs-cw{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.nvs-ring{position:absolute; inset:0; animation:nvs-ccw var(--nvs-dur,80s) linear infinite}
.nvs-slot{position:absolute; left:50%; top:50%; width:var(--slot); height:var(--slot); margin:calc(var(--slot) / -2) 0 0 calc(var(--slot) / -2);
  transform:rotate(var(--a)) translateX(var(--r)) rotate(calc(var(--a) * -1))}
.nvs-upright{width:100%; height:100%; animation:nvs-cw var(--nvs-dur,80s) linear infinite}
.nvs-stage:hover .nvs-ring,.nvs-stage:hover .nvs-upright,
.nvs-stage:focus-within .nvs-ring,.nvs-stage:focus-within .nvs-upright,
.nvs-stage.is-paused .nvs-ring,.nvs-stage.is-paused .nvs-upright,
.nvs-hero.is-offscreen .nvs-ring,.nvs-hero.is-offscreen .nvs-upright{animation-play-state:paused}

.nvs-node{appearance:none; -webkit-appearance:none; border:0; background:none; padding:0; margin:0; cursor:pointer; color:inherit;
  width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; border-radius:12px}
.nvs-node:focus-visible{outline:2px solid var(--accent); outline-offset:4px}
.nvs-orb{display:block; width:var(--s); height:var(--s); border-radius:50%;
  background:radial-gradient(circle at 32% 28%,var(--c1) 0%,var(--c2) 46%,var(--c3) 100%);
  box-shadow:0 0 36px var(--g),inset -10px -12px 22px rgba(0,0,0,.5);
  transition:transform .25s ease, box-shadow .25s ease}
.nvs-node:hover .nvs-orb,.nvs-node:focus-visible .nvs-orb{transform:scale(1.12)}
.nvs-node[aria-pressed="true"] .nvs-orb{transform:scale(1.12); box-shadow:0 0 0 2px var(--accent),0 0 48px rgba(224,169,92,.55),inset -10px -12px 22px rgba(0,0,0,.5)}
.nvs-label{font:500 13px/1.2 'Be Vietnam Pro',sans-serif; color:var(--ink-2); white-space:nowrap; text-shadow:0 1px 6px rgba(0,0,0,.8)}

.nvs-node--thien-van  {--c1:#c9d6ff; --c2:#4b5fb5; --c3:#0f1638; --g:rgba(90,120,230,.45)}
.nvs-node--phuong-dong{--c1:#ffd9a8; --c2:#c2562e; --c3:#3a1209; --g:rgba(214,100,50,.45)}
.nvs-node--phuong-tay {--c1:#dff3f2; --c2:#4d8f99; --c3:#0d2a30; --g:rgba(80,160,170,.4)}
.nvs-node--the-gioi   {--c1:#f6e3b4; --c2:#a9813a; --c3:#2e2108; --g:rgba(190,150,70,.4)}
.nvs-node--tre-em     {--c1:#fff6b8; --c2:#5dc46f; --c3:#0f4a2a; --g:rgba(110,210,120,.5); --s:calc(var(--s0, 84px) * 1.1)}
.nvs-node--kinh-dien  {--c1:#f5c9c9; --c2:#8e2f3c; --c3:#2a0b10; --g:rgba(170,60,75,.45)}
.nvs-node--tuong-lai  {--c1:#d4fbff; --c2:#3aa7c4; --c3:#06283a; --g:rgba(70,190,220,.45)}
.nvs-node--khac       {--c1:#eceae5; --c2:#7b7f88; --c3:#1c1e23; --g:rgba(160,165,175,.3); --s:calc(var(--s0, 84px) * .9)}

/* Lõi trung tâm */
.nvs-core{position:absolute; left:50%; top:50%; width:240px; transform:translate(-50%,-50%); text-align:center; z-index:2}
.nvs-core__idle,.nvs-core__sel{display:flex; flex-direction:column; align-items:center; gap:10px}
.nvs-core [hidden]{display:none}
.nvs-core__kicker{font:500 11px/1.4 'JetBrains Mono',monospace; letter-spacing:.16em; color:var(--dim)}
.nvs-core__num{color:var(--accent)}
.nvs-core__title{font:300 34px/1.1 'Be Vietnam Pro',sans-serif; color:var(--ink)}
.nvs-core__sub{font-size:14px; line-height:1.6; color:var(--mute)}
.nvs-core__name{font:500 28px/1.15 'Be Vietnam Pro',sans-serif; color:var(--ink)}
.nvs-core__desc{font-size:14px; line-height:1.55; color:var(--mute-2)}
.nvs-core__path{font:400 11px/1.4 'JetBrains Mono',monospace; color:var(--dim)}
.nvs-btn{margin-top:6px; display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 20px; border-radius:999px;
  background:var(--accent); color:#1a1408 !important; font:600 14px/1 'Be Vietnam Pro',sans-serif; text-decoration:none !important; transition:background .2s}
.nvs-btn:hover,.nvs-btn:focus-visible{background:var(--accent-2)}
.nvs-btn:focus-visible{outline:2px solid var(--ink); outline-offset:3px}

.nvs-scroll{position:absolute; left:50%; bottom:20px; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px;
  font:400 11px/1 'Be Vietnam Pro',sans-serif; letter-spacing:.2em; color:var(--dim)}
.nvs-scroll i{display:block; width:1px; height:24px; background:linear-gradient(var(--dim),transparent)}

.nvs-hero{--s0:84px}

/* Laptop nhỏ */
@media (max-width:1180px){
  .nvs-hero{--r:200px; --slot:120px; --s:72px; --s0:72px}
}
/* Tablet & điện thoại: chữ trên, quỹ đạo dưới, mô tả hiện dưới quỹ đạo */
@media (max-width:760px){
  .nvs-hero{--r:clamp(104px, calc(50vw - 74px), 150px); --slot:88px; --s:52px; --s0:52px; min-height:auto}
  .nvs-hero__inner{padding:40px 20px 72px; gap:24px}
  .nvs-hero__text{flex-basis:100%; gap:18px}
  .nvs-eyebrow{font-size:11px}
  .nvs-intro{font-size:15px; line-height:1.65}
  .nvs-quote__by{font-size:13px}
  .nvs-quote__src{font-size:13px}
  .nvs-quote__orig{padding-left:0; font-size:12px}
  .nvs-status{display:grid; grid-template-columns:auto minmax(0,1fr) auto; width:100%}
  .nvs-status>div{padding:10px 10px}
  .nvs-status dt{font-size:9px; letter-spacing:.1em}
  .nvs-status dd{font-size:11px; gap:6px}
  .nvs-moon{flex:0 0 auto; width:10px; height:10px}
  .nvs-hint{display:none}
  .nvs-label{font-size:11px}
  .nvs-node{gap:6px}
  .nvs-orbit{width:100%}
  .nvs-core{position:static; transform:none; width:100%; margin-top:16px; padding:18px; border:1px solid var(--line); border-radius:12px; background:rgba(14,19,29,.85); text-align:left}
  .nvs-core__idle,.nvs-core__sel{align-items:flex-start; gap:8px}
  .nvs-core__title{font-size:22px}
  .nvs-core__name{font-size:22px}
  .nvs-glow{inset:25%}
  .nvs-scroll{display:none}
}

@media (prefers-reduced-motion:reduce){
  .nvs-ring,.nvs-upright{animation:none}
}

/* Chống CSS của theme (Flatsome) lấn vào: blockquote nghiêng, button/dd viết hoa */
.nvs-hero blockquote,.nvs-hero blockquote p,.nvs-hero .nvs-quote__text{font-style:normal}
.nvs-hero button,.nvs-hero .nvs-label,.nvs-hero dd,.nvs-hero .nvs-btn{text-transform:none;letter-spacing:normal}
.nvs-hero .nvs-node{min-height:0;line-height:normal;box-shadow:none;text-shadow:none}
