/* Linh Số Bát Pháp — check.linhsobatphap.vn */
:root{
  --ink:#1c1830;            /* main text on cream */
  --ink-soft:#4a4360;
  --cream:#fbf7ef;
  --cream-2:#f4ecdd;
  --paper-line:#e7ddc8;
  --gold:#c9a227;
  --gold-deep:#a8841a;
  --gold-soft:#f0e3b8;
  --navy:#0f1024;
  --navy-2:#1a1340;
  --indigo:#241a52;
  --jade:#1f8a5b;
  --jade-soft:#e3f3ea;
  --crimson:#c0392b;
  --crimson-soft:#fbe7e3;
  --amber:#c77d12;
  --amber-soft:#fbeed6;
  --radius:18px;
  --shadow:0 24px 60px -28px rgba(8,6,30,.65);
  --maxw:780px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--ink);
  line-height:1.78;
  font-size:17px;
  background:
    radial-gradient(1100px 700px at 12% -8%, #34225e 0%, transparent 55%),
    radial-gradient(1000px 700px at 100% 0%, #3a2a17 0%, transparent 50%),
    radial-gradient(900px 900px at 50% 120%, #2a1d5a 0%, transparent 60%),
    linear-gradient(160deg,#0f1024 0%,#15102e 45%,#0d0a20 100%);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
}
/* faint constellation dots */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    radial-gradient(1.4px 1.4px at 20% 30%, rgba(255,255,255,.35), transparent),
    radial-gradient(1.2px 1.2px at 70% 18%, rgba(255,255,255,.28), transparent),
    radial-gradient(1.3px 1.3px at 85% 60%, rgba(255,255,255,.22), transparent),
    radial-gradient(1.1px 1.1px at 33% 78%, rgba(255,255,255,.25), transparent),
    radial-gradient(1.2px 1.2px at 55% 45%, rgba(255,255,255,.18), transparent);
  opacity:.6;
}

/* ---------- top bar ---------- */
.topbar{
  position:sticky;top:0;z-index:30;
  backdrop-filter:saturate(140%) blur(10px);
  background:rgba(12,10,30,.72);
  border-bottom:1px solid rgba(201,162,39,.28);
}
.topbar__in{
  max-width:var(--maxw);margin:0 auto;padding:11px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#f3ecdb}
.brand__mark{
  width:34px;height:34px;border-radius:50%;flex:none;
  background:radial-gradient(circle at 35% 30%, #f4d774, #c9a227 55%, #8a6a14);
  box-shadow:0 0 0 1px rgba(201,162,39,.5),0 6px 16px -6px rgba(201,162,39,.8);
  display:grid;place-items:center;color:#241a07;font-weight:800;font-size:16px;
  font-family:"Lora",serif;
}
.brand__txt b{font-family:"Lora",serif;font-weight:600;font-size:15px;letter-spacing:.3px}
.brand__txt span{display:block;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:#c9a227;opacity:.85}
.topbar__num{
  font-family:"Lora",serif;color:#f0e3b8;font-size:15px;letter-spacing:.5px;
  white-space:nowrap;opacity:.92;
}

/* ---------- hero ---------- */
.hero{
  position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;
  padding:54px 24px 30px;text-align:center;color:#efe7d4;
}
.hero__eyebrow{
  font-size:12px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);
  margin-bottom:18px;
}
.hero__num{
  font-family:"Lora",serif;font-weight:600;
  font-size:clamp(34px,8vw,58px);line-height:1.5;letter-spacing:1px;
  margin:0;color:#fff;
  text-shadow:0 2px 30px rgba(201,162,39,.35);
}
.hero__title{
  font-family:"Lora",serif;font-weight:500;font-style:italic;
  font-size:clamp(17px,3.6vw,22px);line-height:1.55;
  margin:14px auto 0;max-width:34ch;color:#e7dcc2;opacity:.92;
}
.hero__meta{
  margin-top:20px;display:inline-flex;flex-wrap:wrap;gap:8px;justify-content:center;
}
.chip{
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 14px;border-radius:999px;font-size:13px;font-weight:500;
  border:1px solid rgba(201,162,39,.35);background:rgba(201,162,39,.1);color:#f0e3b8;
}
.chip--warn{border-color:rgba(192,57,43,.5);background:rgba(192,57,43,.16);color:#ffd9d2}
.hero__rec{
  margin:26px auto 0;display:inline-flex;align-items:center;gap:12px;
  padding:13px 26px;border-radius:14px;
  background:linear-gradient(135deg,#c0392b,#8e261b);
  box-shadow:0 16px 34px -16px rgba(192,57,43,.85);
  color:#fff;font-weight:600;letter-spacing:.4px;
}
.hero__rec b{font-size:19px;font-family:"Lora",serif}
.hero__rec small{font-size:12px;opacity:.85;font-weight:400}

/* segmented toggle */
.seg{
  position:relative;z-index:1;max-width:var(--maxw);margin:22px auto 0;padding:0 24px;
  display:flex;justify-content:center;
}
.seg__track{
  display:inline-flex;gap:6px;padding:6px;border-radius:14px;
  background:rgba(8,6,24,.6);border:1px solid rgba(201,162,39,.28);
  backdrop-filter:blur(6px);
}
.seg__btn{
  appearance:none;border:0;cursor:pointer;
  font-family:inherit;font-size:14px;font-weight:600;
  padding:10px 18px;border-radius:10px;color:#cdbf9c;background:transparent;
  transition:.22s;white-space:nowrap;
}
.seg__btn[aria-selected="true"]{
  background:linear-gradient(135deg,#d4af37,#a8841a);color:#241a07;
  box-shadow:0 8px 18px -8px rgba(201,162,39,.8);
}

/* ---------- paper card ---------- */
main{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;padding:30px 16px 70px}
.paper{
  background:var(--cream);
  border:1px solid var(--paper-line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:clamp(24px,5vw,52px);
  position:relative;overflow:hidden;
}
.paper::before{
  content:"";position:absolute;left:0;right:0;top:0;height:5px;
  background:linear-gradient(90deg,#a8841a,#f4d774,#a8841a);
}
.panel[hidden]{display:none}

/* typography inside paper */
.paper h1{
  font-family:"Lora",serif;font-weight:600;line-height:1.4;
  font-size:clamp(23px,4.5vw,31px);text-align:center;
  margin:.2em 0 .55em;color:#191333;
  letter-spacing:.2px;
}
.paper h2{
  font-family:"Lora",serif;font-weight:600;line-height:1.42;
  font-size:clamp(19px,3.6vw,25px);margin:2em 0 .7em;color:#241a52;
  padding-bottom:.35em;border-bottom:2px solid var(--gold-soft);
}
.paper h3{
  font-family:"Lora",serif;font-weight:600;line-height:1.42;
  font-size:clamp(17px,3vw,21px);margin:1.7em 0 .55em;color:#3a2c6b;
}
.paper h4{
  font-weight:700;line-height:1.45;font-size:16.5px;
  margin:1.5em 0 .45em;color:#2a2050;
  padding-left:14px;border-left:3px solid var(--gold);
}
.paper p{margin:.85em 0}
.paper strong{color:#171030;font-weight:700}
.paper em{color:#5a4a86}
.paper a{color:var(--gold-deep);text-decoration:underline;text-underline-offset:2px}
.paper ul,.paper ol{margin:.7em 0 1em;padding-left:1.35em}
.paper li{margin:.4em 0}
.paper li::marker{color:var(--gold-deep)}

/* lead / first blockquote-as-info */
.paper hr{
  border:0;height:1px;margin:1.9em 0;
  background:linear-gradient(90deg,transparent,var(--paper-line) 18%,var(--paper-line) 82%,transparent);
  position:relative;overflow:visible;
}
.paper hr::after{
  content:"❖";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  background:var(--cream);padding:0 12px;color:var(--gold);font-size:13px;
}

/* blockquote → elegant callout */
.paper blockquote{
  margin:1.3em 0;padding:16px 20px;
  background:var(--cream-2);
  border-left:4px solid var(--gold);
  border-radius:0 12px 12px 0;
  color:#3b3158;
}
.paper blockquote p{margin:.4em 0}
.paper blockquote strong{color:#2a1f55}

/* tables */
.tableWrap{overflow-x:auto;margin:1.3em 0;border-radius:12px;border:1px solid var(--paper-line)}
.paper table{border-collapse:collapse;width:100%;font-size:14.5px;background:#fffdf8}
.paper thead th{
  background:linear-gradient(135deg,#241a52,#3a2c6b);color:#f3ecda;
  font-weight:600;text-align:left;padding:11px 13px;white-space:nowrap;
  font-family:"Lora",serif;letter-spacing:.3px;
}
.paper tbody td{padding:10px 13px;border-top:1px solid var(--paper-line);vertical-align:top}
.paper tbody tr:nth-child(even){background:#f8f1e3}
.paper tbody tr:hover{background:var(--gold-soft)}

/* summary cards / emphasis */
.paper code{
  background:#efe7d4;color:#6a4f12;padding:1.5px 7px;border-radius:6px;
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.86em;
}

/* footer */
.foot{
  position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;
  padding:8px 28px 64px;text-align:center;color:#9a8fc0;font-size:13px;line-height:1.7;
}
.foot a{color:var(--gold);text-decoration:none}
.foot__rule{height:1px;background:rgba(201,162,39,.22);margin:0 auto 22px;max-width:120px}

/* back to top */
.toTop{
  position:fixed;right:18px;bottom:18px;z-index:40;
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(201,162,39,.5);
  background:rgba(20,16,46,.86);color:#f0e3b8;font-size:18px;cursor:pointer;
  display:grid;place-items:center;opacity:0;transform:translateY(10px);
  transition:.25s;backdrop-filter:blur(6px);
}
.toTop.show{opacity:1;transform:none}

/* index landing cards */
.cards{max-width:var(--maxw);margin:8px auto 0;padding:10px 20px 80px;position:relative;z-index:1;
  display:grid;gap:18px;grid-template-columns:1fr}
@media(min-width:640px){.cards{grid-template-columns:1fr 1fr}}
.card{
  display:block;text-decoration:none;color:inherit;
  background:var(--cream);border:1px solid var(--paper-line);border-radius:var(--radius);
  padding:26px 24px;box-shadow:var(--shadow);transition:.25s;position:relative;overflow:hidden;
}
.card::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;
  background:linear-gradient(180deg,#d4af37,#a8841a)}
.card:hover{transform:translateY(-4px);box-shadow:0 30px 64px -26px rgba(8,6,30,.8)}
.card__tag{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-deep);font-weight:700}
.card__h{font-family:"Lora",serif;font-size:21px;font-weight:600;margin:8px 0 6px;color:#1d1640;line-height:1.4}
.card__d{font-size:14.5px;color:var(--ink-soft);margin:0}
.card__go{margin-top:16px;display:inline-flex;align-items:center;gap:7px;color:var(--gold-deep);font-weight:600;font-size:14px}

@media print{
  body{background:#fff}
  .topbar,.seg,.toTop,.hero__meta{display:none}
  .paper{box-shadow:none;border:0}
  .panel[hidden]{display:block !important}
}
