:root{
  --bg:#111014;
  --panel:#1B1A20;
  --panel-2:#17161B;
  --border:#2C2A31;
  --gold:#C9A24B;
  --gold-bright:#D9B871;
  --vermilion:#B23A2E;
  --text:#D8D2C2;
  --text-bright:#EDE7D9;
  --text-gray:#8A8578;
  --text-dark:#75705F;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:'Inter',system-ui,sans-serif;font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--gold-bright)}
.wrap{max-width:680px;margin:0 auto;padding:0 24px}

header{border-bottom:1px solid var(--border);background:rgba(17,16,20,.9);position:sticky;top:0;z-index:10;backdrop-filter:blur(10px)}
header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:16px}
.brand{
  font-family:'Playfair Display',serif;font-weight:600;font-size:1rem;
  color:var(--text-bright);text-decoration:none;display:flex;align-items:center;gap:9px;
}
.brand .g{font-family:'Noto Serif TC',serif;color:var(--gold);font-size:1.15rem}
.hdr-links{display:flex;gap:18px;align-items:center;
  font-family:'JetBrains Mono',monospace;font-size:.74rem;letter-spacing:.04em;text-transform:uppercase}
.hdr-links a{color:var(--text-dark);text-decoration:none}
.hdr-links a:hover{color:var(--gold)}

main{padding:52px 0 72px}

.crumb{
  font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--text-dark);margin-bottom:26px;
}
.crumb a{color:var(--text-dark);text-decoration:none}
.crumb a:hover{color:var(--gold)}

.hexcard{
  background:linear-gradient(160deg,var(--panel),var(--panel-2));
  border:1px solid var(--border);border-radius:8px;
  padding:44px 38px;position:relative;overflow:hidden;margin-bottom:34px;
}
.hanzi-bg{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:'Noto Serif TC',serif;font-weight:600;font-size:15rem;line-height:1;
  color:var(--text);opacity:.05;pointer-events:none;white-space:nowrap;
}
.hexcard-inner{position:relative;z-index:1;text-align:center}
.lines{display:flex;flex-direction:column-reverse;gap:8px;max-width:230px;margin:0 auto 24px}
.line{height:8px;display:flex;gap:10px}
.line span{flex:1;height:100%;border-radius:2px;background:var(--gold)}
h1{
  font-family:'Playfair Display',serif;font-weight:700;font-size:2rem;line-height:1.2;
  color:var(--text-bright);margin:0 0 6px;
}
.trigrams{font-family:'JetBrains Mono',monospace;font-size:.85rem;color:var(--text-dark);margin-bottom:26px}
.istota{font-style:italic;font-size:1.08rem;color:var(--text);margin:0}

.block{margin-bottom:30px}
.block-label{
  font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);margin-bottom:9px;
}
.block p{margin:0;font-size:.98rem}
.qbox{
  border:1px solid var(--gold);border-radius:6px;padding:22px 24px;margin-bottom:34px;
  background:rgba(201,162,75,.06);
}
.qbox p{font-style:italic;color:var(--text-bright);margin:0}

h2{
  font-family:'Playfair Display',serif;font-weight:600;font-size:1.3rem;color:var(--text-bright);
  margin:0 0 8px;
}
.section-note{color:var(--text-gray);font-size:.92rem;margin:0 0 20px}

.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:38px}
.rel{
  background:var(--panel-2);border:1px solid var(--border);border-radius:6px;
  padding:18px 16px;text-decoration:none;display:block;transition:border-color .15s;
}
.rel:hover{border-color:var(--gold)}
.rel-kind{
  font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-dark);margin-bottom:8px;
}
.rel-name{font-family:'Playfair Display',serif;font-size:1rem;color:var(--text-bright);line-height:1.3}
.rel-hz{font-family:'Noto Serif TC',serif;color:var(--gold);font-size:.9rem;margin-top:5px}

.cta{border-top:1px solid var(--border);padding-top:30px;margin-bottom:34px}
.cta-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}
.cta-row:last-child{margin-bottom:0}
.cta-mark{font-family:'Noto Serif TC',serif;color:var(--gold);font-size:1.15rem;flex-shrink:0;line-height:1.4}
.cta-row p{margin:0;font-size:.94rem;color:var(--text-gray)}
.cta-row a{font-weight:600;text-decoration:none}
.cta-row a:hover{text-decoration:underline}

.pager{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--border);padding-top:24px}
.pager a{
  font-family:'JetBrains Mono',monospace;font-size:.76rem;color:var(--text-dark);text-decoration:none;
  max-width:45%;
}
.pager a:hover{color:var(--gold)}
.pager .nx{text-align:right}

footer{border-top:1px solid var(--border);padding:26px 0;color:var(--text-dark);font-size:.8rem}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer a{color:var(--text-dark);text-decoration:none}
footer a:hover{color:var(--gold)}

/* index page */
.hexlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:30px}
.hexlist a{
  background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:14px 15px;
  text-decoration:none;display:block;transition:border-color .15s;
}
.hexlist a:hover{border-color:var(--gold)}
.hexlist .n{font-family:'JetBrains Mono',monospace;font-size:.68rem;color:var(--text-dark)}
.hexlist .nm{font-family:'Playfair Display',serif;font-size:.95rem;color:var(--text-bright);line-height:1.25;margin-top:4px}
.lede{color:var(--text-gray);font-size:1.02rem}

@media (max-width:600px){
  .hexcard{padding:32px 20px}
  .hanzi-bg{font-size:9rem}
  h1{font-size:1.6rem}
  .rel-grid{grid-template-columns:1fr}
  main{padding:36px 0 52px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rel,.hexlist a{transition:none}
}
