:root{
  --purple:#4c1d95;
  --purple-light:#7c3aed;
  --pink:#db2777;
  --amber:#f59e0b;
  --ink:#1f2937;
  --paper:#faf9fb;
  --card:#ffffff;
  --muted:#6b7280;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Segoe UI',-apple-system,sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;border-radius:14px;}

/* header */
.site-header{
  background:linear-gradient(120deg,var(--purple),var(--purple-light) 60%,var(--pink));
  color:#fff;
  padding:18px 6%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
}
.brand{font-size:1.5rem;font-weight:800;letter-spacing:.5px;}
.brand span{color:var(--amber);}
nav ul{list-style:none;display:flex;gap:6px;margin:0;padding:0;flex-wrap:wrap;}
nav a{
  padding:8px 14px;
  border-radius:999px;
  font-size:.95rem;
  font-weight:600;
  transition:background .2s;
}
nav a:hover, nav a.active{background:rgba(255,255,255,.2);}

/* hero */
.hero{position:relative;}
.hero img{border-radius:0;width:100%;height:min(60vh,420px);object-fit:cover;}
.hero-caption{
  position:absolute;inset:0;
  display:flex;flex-direction:column;justify-content:center;
  padding:6%;
  background:linear-gradient(90deg,rgba(10,10,20,.72),rgba(10,10,20,.1));
  color:#fff;
}
.hero-caption h1{font-size:2.4rem;margin:0 0 10px;}
.hero-caption p{max-width:520px;font-size:1.05rem;}

/* page banner (non-home pages) */
.page-banner{
  position:relative;
  overflow:hidden;
  background-color:#111827;
  background-size:cover;
  background-position:center;
  color:#fff;padding:60px 6% 50px;
  isolation:isolate;
}
.page-banner::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(10,10,20,.68),rgba(10,10,20,.32));
  z-index:0;
}
.page-banner h1, .page-banner p{position:relative;z-index:1;}

/* dual-photo banner (two real photos side by side, used at the very top of a page) */
.dual-photo-banner{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:320px;
  overflow:hidden;
  color:#fff;
  isolation:isolate;
}
.dual-photo-banner .photo-half{
  background-size:cover;
  background-position:center;
}
.dual-photo-banner::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(10,10,20,.72),rgba(10,10,20,.4));
  z-index:1;
}
.dual-photo-banner .banner-text{
  position:absolute;inset:0;
  display:flex;flex-direction:column;justify-content:center;
  padding:60px 6%;
  z-index:2;
}
.dual-photo-banner h1{margin:0 0 8px;font-size:2rem;}
.dual-photo-banner p{margin:0;opacity:.95;max-width:600px;}
@media (max-width:700px){
  .dual-photo-banner{grid-template-columns:1fr;min-height:400px;}
}

/* faint photo background behind a content section */
.section-photo-bg{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  background-size:cover;
  background-position:center 15%;
  padding:36px;
  isolation:isolate;
}
.section-photo-bg::before{
  content:'';
  position:absolute;inset:0;
  background:rgba(250,249,251,.88);
  z-index:0;
}
.section-photo-bg > *{position:relative;z-index:1;}
.page-banner h1{margin:0 0 8px;font-size:2rem;}
.page-banner p{margin:0;opacity:.95;max-width:600px;}

main{padding:40px 6% 70px;max-width:1200px;margin:0 auto;}

.section-title{font-size:1.5rem;margin:0 0 20px;color:var(--purple);}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:24px;
}
.card{
  background:var(--card);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 4px 18px rgba(76,29,149,.08);
  display:flex;flex-direction:column;
}
.card img{border-radius:0;width:100%;height:170px;object-fit:cover;}
.card .card-body{padding:18px 20px;flex:1;display:flex;flex-direction:column;gap:8px;}
.card h3{margin:0;font-size:1.1rem;}
.card p{margin:0;color:var(--muted);font-size:.92rem;}
.tag{
  display:inline-block;
  background:#f3e8ff;color:var(--purple);
  font-size:.75rem;font-weight:700;
  padding:3px 10px;border-radius:999px;
  width:fit-content;
}

.two-col{
  display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;margin:50px 0;
}
.two-col.reverse .img-col{order:2;}
.video-col video{
  width:100%;border-radius:18px;
  box-shadow:0 14px 30px rgba(76,29,149,.18);
  display:block;background:#000;
}

/* photo gallery (real images) */
.photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:22px;
}
.photo-card{
  background:var(--card);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 4px 18px rgba(76,29,149,.1);
  position:relative;
}
.photo-card img{
  border-radius:0;
  width:100%;
  height:340px;
  object-fit:cover;
  object-position:top center;
}
.photo-card .photo-caption{
  padding:14px 16px;
}
.photo-card .photo-caption h3{margin:0 0 4px;font-size:1rem;}
.photo-card .photo-caption p{margin:0;color:var(--muted);font-size:.85rem;}
.photo-card .ep-tag{
  position:absolute;top:12px;left:12px;
  background:rgba(76,29,149,.85);color:#fff;
  font-size:.72rem;font-weight:700;
  padding:3px 10px;border-radius:999px;
}

/* chord chart gallery */
.chord-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
@media (max-width:820px){
  .chord-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:520px){
  .chord-grid{grid-template-columns:1fr;}
}
.chord-card{
  position:relative;
  background:#f4f1ec;
  border-radius:18px;
  padding:14px;
  box-shadow:0 6px 20px rgba(76,29,149,.1);
  transition:transform .2s, box-shadow .2s;
}
.chord-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 28px rgba(76,29,149,.18);
}
.chord-card img{
  border-radius:12px;
  width:100%;
  height:auto;
  display:block;
}
.chord-card .chord-label{
  text-align:center;
  margin-top:10px;
  font-weight:700;
  color:var(--purple);
  font-size:.9rem;
}
.chord-card .roman{
  position:absolute;top:-12px;left:-12px;
  background:var(--pink);color:#fff;
  font-weight:800;font-size:.8rem;
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(0,0,0,.25);
  z-index:2;
}
.chord-card.placeholder{
  display:flex;align-items:center;justify-content:center;
  min-height:200px;
  background:repeating-linear-gradient(45deg,#eceaf5,#eceaf5 10px,#f6f4fb 10px,#f6f4fb 20px);
  border:2px dashed #c9bdea;
}
.chord-card.placeholder .placeholder-text{
  text-align:center;color:var(--muted);font-size:.85rem;
}
.chord-card.placeholder .placeholder-text strong{
  display:block;color:var(--purple);font-size:1.1rem;margin-bottom:4px;
}

/* key grouping */
.key-group{
  background:#faf5ff;
  border:1px solid #ede4fb;
  border-radius:22px;
  padding:28px 26px 32px;
  margin-bottom:36px;
  /* break out of the main content column so the chord images inside
     can render ~50% larger while still keeping 3 per row */
  width:92vw;
  max-width:1584px;
  position:relative;
  left:50%;
  transform:translateX(-50%);
  box-sizing:border-box;
}
.key-group-header{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  margin-bottom:22px;
}
.key-badge{
  background:linear-gradient(120deg,var(--purple),var(--pink));
  color:#fff;font-weight:800;font-size:1.35rem;
  padding:10px 22px;border-radius:14px;
  letter-spacing:.5px;
}
.key-group-header .key-desc{color:var(--muted);font-size:.9rem;max-width:520px;}
.key-legend{
  font-size:.78rem;color:var(--muted);margin-top:18px;
}
.ref-table-card{
  background:#fff;border-radius:18px;padding:20px;
  box-shadow:0 6px 20px rgba(76,29,149,.1);
  max-width:420px;margin:0 0 40px;
  text-align:center;
}
.ref-table-card img{border-radius:10px;}
.ref-table-card p{color:var(--muted);font-size:.82rem;margin:10px 0 0;}

/* fingerstyle / picking-technique lesson section */
.finger-legend{
  display:flex;flex-wrap:wrap;gap:16px;margin:20px 0 30px;
}
.finger-legend .fl-item{
  display:flex;align-items:center;gap:10px;
  background:var(--card);border-radius:14px;
  padding:10px 16px;box-shadow:0 4px 14px rgba(76,29,149,.08);
}
.finger-legend .fl-badge{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(120deg,var(--purple),var(--pink));
  color:#fff;font-weight:800;font-size:.9rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.finger-legend .fl-text{font-size:.85rem;color:var(--ink);line-height:1.4;}
.finger-legend .fl-text strong{display:block;color:var(--purple);font-size:.92rem;}

.pattern-table-wrap{
  background:var(--card);border-radius:18px;overflow:hidden;
  box-shadow:0 4px 18px rgba(76,29,149,.08);margin-bottom:30px;
}
.pattern-table{width:100%;border-collapse:collapse;font-size:.9rem;}
.pattern-table th{
  background:var(--purple);color:#fff;text-align:left;
  padding:12px 16px;font-weight:700;font-size:.82rem;
}
.pattern-table td{padding:12px 16px;border-bottom:1px solid #f0eaf9;}
.pattern-table tr:last-child td{border-bottom:none;}
.pattern-table tr:nth-child(even){background:#faf7fd;}
.pattern-table .pat-notes{
  font-family:'Courier New',monospace;font-weight:700;color:var(--purple);
  letter-spacing:1px;
}
.tip-list{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:12px;
}
.tip-list li{
  display:flex;gap:12px;align-items:flex-start;
  background:var(--card);border-radius:14px;padding:14px 18px;
  box-shadow:0 4px 14px rgba(76,29,149,.06);font-size:.92rem;
}
.tip-list li::before{content:"🎵";flex-shrink:0;}
@media (max-width:700px){
  .pattern-table{font-size:.8rem;}
  .pattern-table th, .pattern-table td{padding:9px 10px;}
}

/* piano chord cards (text-based, no photo assets) */
.piano-chord-card{
  background:#fff;
  border:1px solid #e5ded0;
  border-radius:14px;
  padding:18px 14px;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:4px;
}
.piano-chord-card .p-name{font-size:1.3rem;font-weight:800;color:var(--purple);}
.piano-chord-card .p-notes{font-size:.88rem;color:var(--ink);letter-spacing:.5px;}
.piano-chord-card .p-quality{font-size:.72rem;color:var(--muted);}
.finger-rule-box{
  background:#faf5ff;border:1px solid #ede4fb;border-radius:16px;
  padding:20px 24px;margin:20px 0 30px;
}
.finger-rule-box h4{margin:0 0 10px;color:var(--purple);font-size:1rem;}
.finger-rule-box .hand-row{display:flex;gap:30px;flex-wrap:wrap;margin-top:10px;}
.finger-rule-box .hand-item{display:flex;align-items:center;gap:10px;}
.finger-rule-box .hand-label{font-weight:700;font-size:.88rem;color:var(--ink);min-width:70px;}
.finger-rule-box .finger-nums{display:flex;gap:6px;}
.finger-rule-box .finger-nums span{
  width:26px;height:26px;border-radius:50%;
  background:linear-gradient(120deg,var(--purple),var(--pink));
  color:#fff;font-weight:800;font-size:.78rem;
  display:flex;align-items:center;justify-content:center;
}
.finger-rule-box .finger-nums span.dim{opacity:.35;}

/* strumming pattern cards */
.strum-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;
}
.strum-card{
  background:var(--card);border-radius:16px;padding:20px 22px;
  box-shadow:0 4px 18px rgba(76,29,149,.08);
}
.strum-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.strum-num{
  width:30px;height:30px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(120deg,var(--purple),var(--pink));
  color:#fff;font-weight:800;font-size:.85rem;
  display:flex;align-items:center;justify-content:center;
}
.strum-head h4{margin:0 0 4px;font-size:1rem;color:var(--ink);}
.strum-visual{display:flex;gap:6px;margin:10px 0 6px;flex-wrap:wrap;}
.sv{
  width:28px;height:28px;border-radius:7px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:1rem;
}
.sv.down{background:#e5d9fa;color:var(--purple);}
.sv.up{background:#fbd6e6;color:var(--pink);}
.sv.rest{background:#f0eee8;color:#c8c2b8;}
.sv.mute{background:#2b2b2b;color:#fff;font-size:.8rem;}
.strum-count{
  font-family:'Courier New',monospace;color:var(--muted);
  font-size:.78rem;letter-spacing:2px;margin-bottom:10px;
}
.strum-card .strum-desc{margin:0;font-size:.85rem;color:var(--muted);line-height:1.6;}
@media (max-width:700px){
  .strum-grid{grid-template-columns:1fr;}
}

/* featured novel spotlight */
.novel-spotlight{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:36px;
  align-items:center;
  background:linear-gradient(135deg,#1a0a2e 0%,#6b0000 55%,#1a0a2e 100%);
  border-radius:24px;
  padding:36px;
  color:#fff;
  margin-bottom:20px;
  box-shadow:0 14px 34px rgba(107,0,0,.25);
}
.novel-spotlight .cover-mini{
  border:2px solid #D4AF37;
  border-radius:16px;
  padding:34px 14px;
  text-align:center;
  background:rgba(0,0,0,.15);
}
.novel-spotlight .cover-mini .star{font-size:2.4rem;}
.novel-spotlight .cover-mini h3{
  color:#D4AF37;
  font-size:1.35rem;
  font-weight:800;
  margin:12px 0 4px;
  line-height:1.35;
  text-shadow:0 0 20px rgba(212,175,55,.6);
}
.novel-spotlight .cover-mini .sub{color:#f0d080;font-size:.82rem;}
.novel-spotlight .info .tag{background:rgba(212,175,55,.18);color:#f0d080;}
.novel-spotlight .info h2{font-size:1.7rem;margin:14px 0 10px;color:#fff;}
.novel-spotlight .info p{color:#d8c8a8;line-height:1.85;}
.novel-spotlight .btn-row{display:flex;gap:14px;margin-top:20px;flex-wrap:wrap;}
.btn-gold{
  display:inline-block;
  background:linear-gradient(120deg,#D4AF37,#f0d080);
  color:#3a1a00;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline{
  display:inline-block;
  border:2px solid #D4AF37;color:#f0d080;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}

/* book preview excerpt */
.book-preview{
  background:#fdf8ee;
  border:1px solid #e8dcc0;
  border-radius:18px;
  padding:38px 42px;
  margin-bottom:50px;
}
.book-preview .chapter-tag{
  color:#6b0000;font-weight:800;
  border-left:4px solid #D4AF37;
  padding-left:14px;margin-bottom:18px;
  font-size:1.15rem;
}
.book-preview p{
  text-indent:2em;line-height:1.95;
  color:#3a2a1a;margin-bottom:14px;
  text-align:justify;
}
.book-preview p.drop-cap:first-letter{
  font-size:2.8rem;font-weight:800;color:#6b0000;
  float:left;line-height:1;margin-right:10px;
  font-family:Georgia,serif;text-indent:0;
}
.book-preview .more-link{
  display:inline-block;margin-top:8px;
  color:#6b0000;font-weight:700;
  border-bottom:2px solid #D4AF37;
}

/* rose theme variant — for the original romance short story */
.novel-spotlight.rose{
  background:linear-gradient(135deg,#3d1f2e 0%,#8a4a56 55%,#3d1f2e 100%);
  box-shadow:0 14px 34px rgba(138,74,86,.28);
}
.novel-spotlight.rose .cover-mini{border-color:#e8b4bc;}
.novel-spotlight.rose .cover-mini h3{color:#f0c9c0;text-shadow:0 0 20px rgba(240,201,192,.6);}
.novel-spotlight.rose .cover-mini .sub{color:#f5dad4;}
.novel-spotlight.rose .info .tag{background:rgba(232,180,188,.2);color:#f5dad4;}
.novel-spotlight.rose .info p{color:#e8cfc9;}
.btn-rose{
  display:inline-block;
  background:linear-gradient(120deg,#e8b4bc,#f5dad4);
  color:#5a1a28;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-rose{
  display:inline-block;
  border:2px solid #e8b4bc;color:#f5dad4;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.rose{
  background:#fdf3f0;border-color:#f0d5d0;
}
.book-preview.rose .chapter-tag{color:#8a4a56;border-left-color:#e8b4bc;}
.book-preview.rose p{color:#3a2225;}
.book-preview.rose p.drop-cap:first-letter{color:#8a4a56;}
.book-preview.rose .more-link{color:#8a4a56;border-bottom-color:#e8b4bc;}

/* blue theme variant — for the school-romance short story */
.novel-spotlight.blue{
  background:linear-gradient(160deg,#0a1628 0%,#1a3a5c 45%,#2d6a9f 100%);
  box-shadow:0 14px 34px rgba(26,58,92,.3);
}
.novel-spotlight.blue .cover-mini{border-color:#7fb4e8;}
.novel-spotlight.blue .cover-mini h3{color:#a0c8f0;text-shadow:0 0 20px rgba(160,200,240,.6);}
.novel-spotlight.blue .cover-mini .sub{color:#c0d8f0;}
.novel-spotlight.blue .info .tag{background:rgba(127,180,232,.18);color:#a0c8f0;}
.novel-spotlight.blue .info p{color:#c0d0e0;}
.btn-blue{
  display:inline-block;
  background:linear-gradient(120deg,#2d6a9f,#7fb4e8);
  color:#fff;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-blue{
  display:inline-block;
  border:2px solid #7fb4e8;color:#c0d8f0;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.blue{
  background:#f0f6ff;border-color:#c9deed;
}
.book-preview.blue .chapter-tag{color:#1a3a5c;border-left-color:#7fb4e8;}
.book-preview.blue p{color:#1a2a3a;}
.book-preview.blue p.drop-cap:first-letter{color:#1a3a5c;}
.book-preview.blue .more-link{color:#1a3a5c;border-bottom-color:#7fb4e8;}

/* amber theme variant — for the Sukhothai time-travel short story */
.novel-spotlight.amber{
  background:linear-gradient(135deg,#3d2410 0%,#78350f 55%,#3d2410 100%);
  box-shadow:0 14px 34px rgba(120,53,15,.3);
}
.novel-spotlight.amber .cover-mini{border-color:#D4AF37;}
.novel-spotlight.amber .cover-mini h3{color:#f0d080;text-shadow:0 0 20px rgba(212,175,55,.6);}
.novel-spotlight.amber .cover-mini .sub{color:#f0dcb0;}
.novel-spotlight.amber .info .tag{background:rgba(212,175,55,.18);color:#f0d080;}
.novel-spotlight.amber .info p{color:#e0cdb0;}
.btn-amber{
  display:inline-block;
  background:linear-gradient(120deg,#D4AF37,#f0d080);
  color:#3a1a00;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-amber{
  display:inline-block;
  border:2px solid #D4AF37;color:#f0d080;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.amber{
  background:#fdf6e8;border-color:#e8d5a8;
}
.book-preview.amber .chapter-tag{color:#78350f;border-left-color:#D4AF37;}
.book-preview.amber p{color:#2a1a08;}
.book-preview.amber p.drop-cap:first-letter{color:#78350f;}
.book-preview.amber .more-link{color:#78350f;border-bottom-color:#D4AF37;}

/* teal theme variant — for the internship / coming-of-age short story */
.novel-spotlight.teal{
  background:linear-gradient(150deg,#052e2b 0%,#0f5c53 55%,#052e2b 100%);
  box-shadow:0 14px 34px rgba(15,92,83,.3);
}
.novel-spotlight.teal .cover-mini{border-color:#5eead4;}
.novel-spotlight.teal .cover-mini h3{color:#99f6e4;text-shadow:0 0 20px rgba(94,234,212,.6);}
.novel-spotlight.teal .cover-mini .sub{color:#ccfbf1;}
.novel-spotlight.teal .info .tag{background:rgba(94,234,212,.18);color:#99f6e4;}
.novel-spotlight.teal .info p{color:#cfe8e2;}
.btn-teal{
  display:inline-block;
  background:linear-gradient(120deg,#0f5c53,#5eead4);
  color:#052e2b;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-teal{
  display:inline-block;
  border:2px solid #5eead4;color:#99f6e4;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.teal{
  background:#f0faf8;border-color:#bfe8e0;
}
.book-preview.teal .chapter-tag{color:#0f5c53;border-left-color:#5eead4;}
.book-preview.teal p{color:#12302c;}
.book-preview.teal p.drop-cap:first-letter{color:#0f5c53;}
.book-preview.teal .more-link{color:#0f5c53;border-bottom-color:#5eead4;}

/* olive theme variant — for the dinosaur-era survival adventure */
.novel-spotlight.olive{
  background:linear-gradient(150deg,#0d1f0a 0%,#2d4a1a 55%,#0d1f0a 100%);
  box-shadow:0 14px 34px rgba(45,74,26,.3);
}
.novel-spotlight.olive .cover-mini{border-color:#a3d977;}
.novel-spotlight.olive .cover-mini h3{color:#c8e6a0;text-shadow:0 0 20px rgba(163,217,119,.6);}
.novel-spotlight.olive .cover-mini .sub{color:#d4e8b8;}
.novel-spotlight.olive .info .tag{background:rgba(163,217,119,.18);color:#c8e6a0;}
.novel-spotlight.olive .info p{color:#cfe0c0;}
.btn-olive{
  display:inline-block;
  background:linear-gradient(120deg,#2d4a1a,#a3d977);
  color:#0d1f0a;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-olive{
  display:inline-block;
  border:2px solid #a3d977;color:#c8e6a0;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.olive{
  background:#f3f7ec;border-color:#cfe0b8;
}
.book-preview.olive .chapter-tag{color:#2d4a1a;border-left-color:#a3d977;}
.book-preview.olive p{color:#1f2e14;}
.book-preview.olive p.drop-cap:first-letter{color:#2d4a1a;}
.book-preview.olive .more-link{color:#2d4a1a;border-bottom-color:#a3d977;}

/* coral theme variant — for the night-shift romance short story */
.novel-spotlight.coral{
  background:linear-gradient(135deg,#3d1a12 0%,#c2493d 55%,#3d1a12 100%);
  box-shadow:0 14px 34px rgba(194,73,61,.3);
}
.novel-spotlight.coral .cover-mini{border-color:#ffb4a2;}
.novel-spotlight.coral .cover-mini h3{color:#ffd8c2;text-shadow:0 0 20px rgba(255,180,162,.6);}
.novel-spotlight.coral .cover-mini .sub{color:#ffe4d6;}
.novel-spotlight.coral .info .tag{background:rgba(255,180,162,.18);color:#ffd8c2;}
.novel-spotlight.coral .info p{color:#f0d0c2;}
.btn-coral{
  display:inline-block;
  background:linear-gradient(120deg,#c2493d,#ffb4a2);
  color:#3d1a12;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-coral{
  display:inline-block;
  border:2px solid #ffb4a2;color:#ffd8c2;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.coral{
  background:#fdf3f0;border-color:#f0c8ba;
}
.book-preview.coral .chapter-tag{color:#9a3327;border-left-color:#ffb4a2;}
.book-preview.coral p{color:#3a1a12;}
.book-preview.coral p.drop-cap:first-letter{color:#9a3327;}
.book-preview.coral .more-link{color:#9a3327;border-bottom-color:#ffb4a2;}

/* lilac theme variant — for the overseas-migrant-worker romance short story */
.novel-spotlight.lilac{
  background:linear-gradient(135deg,#2a1a3d 0%,#6b4a8a 55%,#2a1a3d 100%);
  box-shadow:0 14px 34px rgba(107,74,138,.3);
}
.novel-spotlight.lilac .cover-mini{border-color:#d8b4e2;}
.novel-spotlight.lilac .cover-mini h3{color:#ecd8f2;text-shadow:0 0 20px rgba(216,180,226,.6);}
.novel-spotlight.lilac .cover-mini .sub{color:#f0e4f5;}
.novel-spotlight.lilac .info .tag{background:rgba(216,180,226,.18);color:#ecd8f2;}
.novel-spotlight.lilac .info p{color:#e0cce8;}
.btn-lilac{
  display:inline-block;
  background:linear-gradient(120deg,#6b4a8a,#d8b4e2);
  color:#2a1a3d;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-lilac{
  display:inline-block;
  border:2px solid #d8b4e2;color:#ecd8f2;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.lilac{
  background:#f7f0fa;border-color:#e0c8ec;
}
.book-preview.lilac .chapter-tag{color:#52356e;border-left-color:#d8b4e2;}
.book-preview.lilac p{color:#2a1a3d;}
.book-preview.lilac p.drop-cap:first-letter{color:#52356e;}
.book-preview.lilac .more-link{color:#52356e;border-bottom-color:#d8b4e2;}

/* slate theme variant — for the newsboy street-life drama */
.novel-spotlight.slate{
  background:linear-gradient(135deg,#1a1a1a 0%,#4a4a4a 55%,#1a1a1a 100%);
  box-shadow:0 14px 34px rgba(74,74,74,.3);
}
.novel-spotlight.slate .cover-mini{border-color:#c9a876;}
.novel-spotlight.slate .cover-mini h3{color:#e0d4b8;text-shadow:0 0 20px rgba(201,168,118,.6);}
.novel-spotlight.slate .cover-mini .sub{color:#d8cdb8;}
.novel-spotlight.slate .info .tag{background:rgba(201,168,118,.18);color:#e0d4b8;}
.novel-spotlight.slate .info p{color:#cfc7ba;}
.btn-slate{
  display:inline-block;
  background:linear-gradient(120deg,#4a4a4a,#c9a876);
  color:#1a1a1a;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-slate{
  display:inline-block;
  border:2px solid #c9a876;color:#e0d4b8;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.slate{
  background:#f5f2ea;border-color:#ddd3bd;
}
.book-preview.slate .chapter-tag{color:#3d3d3d;border-left-color:#c9a876;}
.book-preview.slate p{color:#2a2a2a;}
.book-preview.slate p.drop-cap:first-letter{color:#3d3d3d;}
.book-preview.slate .more-link{color:#3d3d3d;border-bottom-color:#c9a876;}

/* clay theme variant — for the ant-teamwork fable */
.novel-spotlight.clay{
  background:linear-gradient(135deg,#2b1810 0%,#7a3b1e 55%,#2b1810 100%);
  box-shadow:0 14px 34px rgba(122,59,30,.3);
}
.novel-spotlight.clay .cover-mini{border-color:#e8a87c;}
.novel-spotlight.clay .cover-mini h3{color:#f5cba7;text-shadow:0 0 20px rgba(232,168,124,.6);}
.novel-spotlight.clay .cover-mini .sub{color:#f0d8c0;}
.novel-spotlight.clay .info .tag{background:rgba(232,168,124,.18);color:#f5cba7;}
.novel-spotlight.clay .info p{color:#e8d0be;}
.btn-clay{
  display:inline-block;
  background:linear-gradient(120deg,#7a3b1e,#e8a87c);
  color:#2b1810;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-clay{
  display:inline-block;
  border:2px solid #e8a87c;color:#f5cba7;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.clay{
  background:#faf3ec;border-color:#e8d0b8;
}
.book-preview.clay .chapter-tag{color:#7a3b1e;border-left-color:#e8a87c;}
.book-preview.clay p{color:#2b1810;}
.book-preview.clay p.drop-cap:first-letter{color:#7a3b1e;}
.book-preview.clay .more-link{color:#7a3b1e;border-bottom-color:#e8a87c;}

/* crimson theme variant — for the isekai business-empire epic */
.novel-spotlight.crimson{
  background:linear-gradient(135deg,#3d0a0a 0%,#8a1a1a 55%,#3d0a0a 100%);
  box-shadow:0 14px 34px rgba(138,26,26,.3);
}
.novel-spotlight.crimson .cover-mini{border-color:#e8c468;}
.novel-spotlight.crimson .cover-mini h3{color:#f5dfa0;text-shadow:0 0 20px rgba(232,196,104,.6);}
.novel-spotlight.crimson .cover-mini .sub{color:#f0e0c0;}
.novel-spotlight.crimson .info .tag{background:rgba(232,196,104,.18);color:#f5dfa0;}
.novel-spotlight.crimson .info p{color:#e8d8c0;}
.btn-crimson{
  display:inline-block;
  background:linear-gradient(120deg,#8a1a1a,#e8c468);
  color:#3d0a0a;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-crimson{
  display:inline-block;
  border:2px solid #e8c468;color:#f5dfa0;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.crimson{
  background:#faf3e6;border-color:#e8d0a0;
}
.book-preview.crimson .chapter-tag{color:#8a1a1a;border-left-color:#e8c468;}
.book-preview.crimson p{color:#3d0a0a;}
.book-preview.crimson p.drop-cap:first-letter{color:#8a1a1a;}
.book-preview.crimson .more-link{color:#8a1a1a;border-bottom-color:#e8c468;}

/* ember theme variant — for the scout wartime-survival isekai */
.novel-spotlight.ember{
  background:linear-gradient(135deg,#0d0d0d 0%,#3d2410 55%,#0d0d0d 100%);
  box-shadow:0 14px 34px rgba(255,140,66,.25);
}
.novel-spotlight.ember .cover-mini{border-color:#ff8c42;}
.novel-spotlight.ember .cover-mini h3{color:#ffb877;text-shadow:0 0 20px rgba(255,140,66,.6);}
.novel-spotlight.ember .cover-mini .sub{color:#f0c8a0;}
.novel-spotlight.ember .info .tag{background:rgba(255,140,66,.18);color:#ffb877;}
.novel-spotlight.ember .info p{color:#e8d4c0;}
.btn-ember{
  display:inline-block;
  background:linear-gradient(120deg,#3d2410,#ff8c42);
  color:#1a0f05;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-ember{
  display:inline-block;
  border:2px solid #ff8c42;color:#ffb877;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.ember{
  background:#fdf4ec;border-color:#f0d0b0;
}
.book-preview.ember .chapter-tag{color:#b8501a;border-left-color:#ff8c42;}
.book-preview.ember p{color:#2a1808;}
.book-preview.ember p.drop-cap:first-letter{color:#b8501a;}
.book-preview.ember .more-link{color:#b8501a;border-bottom-color:#ff8c42;}

/* mist theme variant — for the hidden-city (Lap Lae) fantasy adventure */
.novel-spotlight.mist{
  background:linear-gradient(150deg,#0a1f1c 0%,#1f4a42 55%,#0a1f1c 100%);
  box-shadow:0 14px 34px rgba(31,74,66,.3);
}
.novel-spotlight.mist .cover-mini{border-color:#a8e6cf;}
.novel-spotlight.mist .cover-mini h3{color:#d4f5e8;text-shadow:0 0 20px rgba(168,230,207,.6);}
.novel-spotlight.mist .cover-mini .sub{color:#c0e8d8;}
.novel-spotlight.mist .info .tag{background:rgba(168,230,207,.18);color:#d4f5e8;}
.novel-spotlight.mist .info p{color:#c8ded4;}
.btn-mist{
  display:inline-block;
  background:linear-gradient(120deg,#1f4a42,#a8e6cf);
  color:#0a1f1c;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-mist{
  display:inline-block;
  border:2px solid #a8e6cf;color:#d4f5e8;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.mist{
  background:#eef8f4;border-color:#c0e0d0;
}
.book-preview.mist .chapter-tag{color:#1f4a42;border-left-color:#a8e6cf;}
.book-preview.mist p{color:#0a1f1c;}
.book-preview.mist p.drop-cap:first-letter{color:#1f4a42;}
.book-preview.mist .more-link{color:#1f4a42;border-bottom-color:#a8e6cf;}

/* onyx theme variant — for the krasue folk-horror novel */
.novel-spotlight.onyx{
  background:linear-gradient(150deg,#0d0d0d 0%,#1a3d1a 55%,#0d0d0d 100%);
  box-shadow:0 14px 34px rgba(26,61,26,.4);
}
.novel-spotlight.onyx .cover-mini{border-color:#6bff8f;}
.novel-spotlight.onyx .cover-mini h3{color:#d4ffe0;text-shadow:0 0 20px rgba(107,255,143,.6);}
.novel-spotlight.onyx .cover-mini .sub{color:#b8f0c8;}
.novel-spotlight.onyx .info .tag{background:rgba(107,255,143,.18);color:#d4ffe0;}
.novel-spotlight.onyx .info p{color:#b8ddc0;}
.btn-onyx{
  display:inline-block;
  background:linear-gradient(120deg,#1a3d1a,#6bff8f);
  color:#0d0d0d;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-onyx{
  display:inline-block;
  border:2px solid #6bff8f;color:#d4ffe0;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.onyx{
  background:#eef8ee;border-color:#c0e0c4;
}
.book-preview.onyx .chapter-tag{color:#1a3d1a;border-left-color:#6bff8f;}
.book-preview.onyx p{color:#0d1f0d;}
.book-preview.onyx p.drop-cap:first-letter{color:#1a3d1a;}
.book-preview.onyx .more-link{color:#1a3d1a;border-bottom-color:#6bff8f;}

/* opal theme variant — for the animal-communication miracle-boy fantasy */
.novel-spotlight.opal{
  background:linear-gradient(150deg,#1a2a4a 0%,#4a5a8a 55%,#1a2a4a 100%);
  box-shadow:0 14px 34px rgba(74,90,138,.3);
}
.novel-spotlight.opal .cover-mini{border-color:#ffd97d;}
.novel-spotlight.opal .cover-mini h3{color:#ffe9b0;text-shadow:0 0 20px rgba(255,217,125,.6);}
.novel-spotlight.opal .cover-mini .sub{color:#d8e0f5;}
.novel-spotlight.opal .info .tag{background:rgba(255,217,125,.18);color:#ffe9b0;}
.novel-spotlight.opal .info p{color:#c8d2ea;}
.btn-opal{
  display:inline-block;
  background:linear-gradient(120deg,#4a5a8a,#ffd97d);
  color:#1a2a4a;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-opal{
  display:inline-block;
  border:2px solid #ffd97d;color:#ffe9b0;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.opal{
  background:#eef1fa;border-color:#c8d0ea;
}
.book-preview.opal .chapter-tag{color:#1a2a4a;border-left-color:#ffd97d;}
.book-preview.opal p{color:#16233d;}
.book-preview.opal p.drop-cap:first-letter{color:#1a2a4a;}
.book-preview.opal .more-link{color:#1a2a4a;border-bottom-color:#ffd97d;}

/* meadow theme variant — for the self-sufficient rural family life story */
.novel-spotlight.meadow{
  background:linear-gradient(150deg,#1f2e1a 0%,#4a6a3a 55%,#1f2e1a 100%);
  box-shadow:0 14px 34px rgba(74,106,58,.3);
}
.novel-spotlight.meadow .cover-mini{border-color:#ffd27a;}
.novel-spotlight.meadow .cover-mini h3{color:#fff3d6;text-shadow:0 0 20px rgba(255,210,122,.6);}
.novel-spotlight.meadow .cover-mini .sub{color:#e8dfc0;}
.novel-spotlight.meadow .info .tag{background:rgba(255,210,122,.18);color:#fff3d6;}
.novel-spotlight.meadow .info p{color:#d8e0c8;}
.btn-meadow{
  display:inline-block;
  background:linear-gradient(120deg,#4a6a3a,#ffd27a);
  color:#1f2e1a;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-meadow{
  display:inline-block;
  border:2px solid #ffd27a;color:#fff3d6;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.meadow{
  background:#f7f5ea;border-color:#d8d0a0;
}
.book-preview.meadow .chapter-tag{color:#2f4a22;border-left-color:#ffd27a;}
.book-preview.meadow p{color:#1f2e14;}
.book-preview.meadow p.drop-cap:first-letter{color:#2f4a22;}
.book-preview.meadow .more-link{color:#2f4a22;border-bottom-color:#ffd27a;}

/* lagoon theme variant — for the castaway shipwreck romance-adventure */
.novel-spotlight.lagoon{
  background:linear-gradient(150deg,#04222e 0%,#1f7a8c 55%,#04222e 100%);
  box-shadow:0 14px 34px rgba(31,122,140,.3);
}
.novel-spotlight.lagoon .cover-mini{border-color:#7fe8dc;}
.novel-spotlight.lagoon .cover-mini h3{color:#d4fbf6;text-shadow:0 0 20px rgba(127,232,220,.6);}
.novel-spotlight.lagoon .cover-mini .sub{color:#c0e8e2;}
.novel-spotlight.lagoon .info .tag{background:rgba(127,232,220,.18);color:#d4fbf6;}
.novel-spotlight.lagoon .info p{color:#c0dcd8;}
.btn-lagoon{
  display:inline-block;
  background:linear-gradient(120deg,#1f7a8c,#7fe8dc);
  color:#04222e;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-lagoon{
  display:inline-block;
  border:2px solid #7fe8dc;color:#d4fbf6;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.lagoon{
  background:#eafaf8;border-color:#bfe2dc;
}
.book-preview.lagoon .chapter-tag{color:#10505e;border-left-color:#7fe8dc;}
.book-preview.lagoon p{color:#0a2230;}
.book-preview.lagoon p.drop-cap:first-letter{color:#10505e;}
.book-preview.lagoon .more-link{color:#10505e;border-bottom-color:#7fe8dc;}

/* velvet theme variant — for the rags-to-fame street singer novel */
.novel-spotlight.velvet{
  background:linear-gradient(150deg,#2b0f14 0%,#6b1f2e 55%,#2b0f14 100%);
  box-shadow:0 14px 34px rgba(107,31,46,.3);
}
.novel-spotlight.velvet .cover-mini{border-color:#ffd45e;}
.novel-spotlight.velvet .cover-mini h3{color:#ffe5a3;text-shadow:0 0 20px rgba(255,212,94,.6);}
.novel-spotlight.velvet .cover-mini .sub{color:#f0d4c8;}
.novel-spotlight.velvet .info .tag{background:rgba(255,212,94,.18);color:#ffe5a3;}
.novel-spotlight.velvet .info p{color:#e8ccc4;}
.btn-velvet{
  display:inline-block;
  background:linear-gradient(120deg,#6b1f2e,#ffd45e);
  color:#2b0f14;font-weight:800;
  padding:11px 26px;border-radius:999px;font-size:.9rem;
}
.btn-outline-velvet{
  display:inline-block;
  border:2px solid #ffd45e;color:#ffe5a3;
  padding:9px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}
.book-preview.velvet{
  background:#fdf3ea;border-color:#e8cdb8;
}
.book-preview.velvet .chapter-tag{color:#6b1f2e;border-left-color:#ffd45e;}
.book-preview.velvet p{color:#2a0f14;}
.book-preview.velvet p.drop-cap:first-letter{color:#6b1f2e;}
.book-preview.velvet .more-link{color:#6b1f2e;border-bottom-color:#ffd45e;}

/* featured product spotlight (image + specs separated) */
.product-feature{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  background:linear-gradient(135deg,#2a1608 0%,#4a2a10 100%);
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(74,42,16,.35);
  margin-bottom:48px;
}
.product-feature .product-image{
  position:relative;
  min-height:100%;
}
.product-feature .product-image img{
  width:100%;height:100%;
  min-height:380px;
  object-fit:cover;
  display:block;
}
.product-feature .product-image .new-badge{
  position:absolute;top:20px;left:20px;
  background:#D4AF37;color:#2a1608;
  font-weight:800;font-size:.78rem;
  padding:6px 14px;border-radius:999px;
  box-shadow:0 4px 12px rgba(0,0,0,.3);
}
.product-feature .product-info{
  padding:40px 44px;
  color:#f5e9d6;
  display:flex;flex-direction:column;
  justify-content:center;
}
.product-feature .product-info .tag{
  background:rgba(212,175,55,.2);color:#f0d080;
  display:inline-block;font-size:.75rem;font-weight:700;
  padding:3px 10px;border-radius:999px;width:fit-content;margin-bottom:12px;
}
.product-feature .product-info h2{
  margin:0 0 18px;font-size:1.7rem;color:#fff;
}
.product-feature .spec-list{
  list-style:none;margin:0 0 26px;padding:0;
  display:flex;flex-direction:column;gap:12px;
}
.product-feature .spec-list li{
  display:flex;align-items:baseline;gap:10px;
  font-size:.98rem;color:#f0e2c0;line-height:1.6;
}
.product-feature .spec-list li::before{
  content:"✦";color:#D4AF37;font-size:.85rem;flex-shrink:0;
}
.product-feature .spec-list li strong{color:#fff;font-weight:700;}
.product-feature .price-row{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  margin-top:6px;
}
.product-feature .price{
  font-size:1.6rem;font-weight:800;color:#D4AF37;
}
.product-feature .price-note{
  font-size:.82rem;color:#c9b790;
}
.product-feature .btn-amber{
  margin-top:22px;
}
@media (max-width:820px){
  .product-feature{grid-template-columns:1fr;}
  .product-feature .product-image img{min-height:280px;}
  .product-feature .product-info{padding:30px 26px;}
}

/* podcast player card */
.podcast-player{
  display:grid;
  grid-template-columns:170px 1fr;
  gap:30px;
  align-items:center;
  background:linear-gradient(135deg,#0c4a6e 0%,#0e7490 100%);
  border-radius:22px;
  padding:34px;
  color:#fff;
  margin-bottom:40px;
  box-shadow:0 14px 30px rgba(14,116,144,.3);
}
.podcast-player .art{
  width:100%;aspect-ratio:1/1;border-radius:16px;
  background:linear-gradient(135deg,#0891b2,#22d3ee);
  display:flex;align-items:center;justify-content:center;
  font-size:3.2rem;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
}
.podcast-player .info .tag{background:rgba(255,255,255,.15);color:#a5f3fc;}
.podcast-player .info h2{margin:10px 0 8px;font-size:1.4rem;}
.podcast-player .info p{color:#cffafe;line-height:1.8;font-size:.95rem;}
.podcast-player audio{width:100%;margin-top:18px;}

.podcast-player.rose{
  background:linear-gradient(135deg,#3d1f2e 0%,#8a4a56 100%);
  box-shadow:0 14px 30px rgba(138,74,86,.3);
}
.podcast-player.rose .art{background:linear-gradient(135deg,#d99a9a,#f0c9c0);}
.podcast-player.rose .info .tag{background:rgba(240,201,192,.2);color:#f5dad4;}
.podcast-player.rose .info p{color:#f0dcd6;}

.podcast-player.blue{
  background:linear-gradient(160deg,#0a1628 0%,#1a3a5c 45%,#2d6a9f 100%);
  box-shadow:0 14px 30px rgba(26,58,92,.3);
}
.podcast-player.blue .art{background:linear-gradient(135deg,#2d6a9f,#7fb4e8);}
.podcast-player.blue .info .tag{background:rgba(127,180,232,.2);color:#c0d8f0;}
.podcast-player.blue .info p{color:#d0e0f0;}

.podcast-player.amber{
  background:linear-gradient(135deg,#3d2410 0%,#78350f 50%,#3d2410 100%);
  box-shadow:0 14px 30px rgba(120,53,15,.35);
}
.podcast-player.amber .art{background:linear-gradient(135deg,#D4AF37,#f0d98c);}
.podcast-player.amber .info .tag{background:rgba(212,175,55,.2);color:#f5e3a8;}
.podcast-player.amber .info p{color:#f0e2c0;}

.podcast-player.teal{
  background:linear-gradient(150deg,#052e2b 0%,#0f5c53 55%,#052e2b 100%);
  box-shadow:0 14px 30px rgba(15,92,83,.3);
}
.podcast-player.teal .art{background:linear-gradient(135deg,#0f5c53,#5eead4);}
.podcast-player.teal .info .tag{background:rgba(94,234,212,.2);color:#99f6e4;}
.podcast-player.teal .info p{color:#cfe8e2;}

.podcast-player.olive{
  background:linear-gradient(150deg,#0d1f0a 0%,#2d4a1a 55%,#0d1f0a 100%);
  box-shadow:0 14px 30px rgba(45,74,26,.3);
}
.podcast-player.olive .art{background:linear-gradient(135deg,#2d4a1a,#a3d977);}
.podcast-player.olive .info .tag{background:rgba(163,217,119,.2);color:#c8e6a0;}
.podcast-player.olive .info p{color:#cfe0c0;}

.podcast-player.coral{
  background:linear-gradient(135deg,#3d1a12 0%,#c2493d 55%,#3d1a12 100%);
  box-shadow:0 14px 30px rgba(194,73,61,.3);
}
.podcast-player.coral .art{background:linear-gradient(135deg,#c2493d,#ffb4a2);}
.podcast-player.coral .info .tag{background:rgba(255,180,162,.2);color:#ffd8c2;}
.podcast-player.coral .info p{color:#f0d0c2;}

.podcast-player.lilac{
  background:linear-gradient(135deg,#2a1a3d 0%,#6b4a8a 55%,#2a1a3d 100%);
  box-shadow:0 14px 30px rgba(107,74,138,.3);
}
.podcast-player.lilac .art{background:linear-gradient(135deg,#6b4a8a,#d8b4e2);}
.podcast-player.lilac .info .tag{background:rgba(216,180,226,.2);color:#ecd8f2;}
.podcast-player.lilac .info p{color:#e0cce8;}

.podcast-player.slate{
  background:linear-gradient(135deg,#1a1a1a 0%,#4a4a4a 55%,#1a1a1a 100%);
  box-shadow:0 14px 30px rgba(74,74,74,.3);
}
.podcast-player.slate .art{background:linear-gradient(135deg,#4a4a4a,#c9a876);}
.podcast-player.slate .info .tag{background:rgba(201,168,118,.2);color:#e0d4b8;}
.podcast-player.slate .info p{color:#cfc7ba;}

.podcast-player.clay{
  background:linear-gradient(135deg,#2b1810 0%,#7a3b1e 55%,#2b1810 100%);
  box-shadow:0 14px 30px rgba(122,59,30,.3);
}
.podcast-player.clay .art{background:linear-gradient(135deg,#7a3b1e,#e8a87c);}
.podcast-player.clay .info .tag{background:rgba(232,168,124,.2);color:#f5cba7;}
.podcast-player.clay .info p{color:#e8d0be;}

.podcast-player.crimson{
  background:linear-gradient(135deg,#3d0a0a 0%,#8a1a1a 55%,#3d0a0a 100%);
  box-shadow:0 14px 30px rgba(138,26,26,.3);
}
.podcast-player.crimson .art{background:linear-gradient(135deg,#8a1a1a,#e8c468);}
.podcast-player.crimson .info .tag{background:rgba(232,196,104,.2);color:#f5dfa0;}
.podcast-player.crimson .info p{color:#e8d8c0;}

.podcast-player.ember{
  background:linear-gradient(135deg,#0d0d0d 0%,#3d2410 55%,#0d0d0d 100%);
  box-shadow:0 14px 30px rgba(255,140,66,.25);
}
.podcast-player.ember .art{background:linear-gradient(135deg,#3d2410,#ff8c42);}
.podcast-player.ember .info .tag{background:rgba(255,140,66,.2);color:#ffb877;}
.podcast-player.ember .info p{color:#e8d4c0;}

.podcast-player.mist{
  background:linear-gradient(150deg,#0a1f1c 0%,#1f4a42 55%,#0a1f1c 100%);
  box-shadow:0 14px 30px rgba(31,74,66,.3);
}
.podcast-player.mist .art{background:linear-gradient(135deg,#1f4a42,#a8e6cf);}
.podcast-player.mist .info .tag{background:rgba(168,230,207,.2);color:#d4f5e8;}
.podcast-player.mist .info p{color:#c8ded4;}

.podcast-player.onyx{
  background:linear-gradient(150deg,#0d0d0d 0%,#1a3d1a 55%,#0d0d0d 100%);
  box-shadow:0 14px 30px rgba(26,61,26,.4);
}
.podcast-player.onyx .art{background:linear-gradient(135deg,#1a3d1a,#6bff8f);}
.podcast-player.onyx .info .tag{background:rgba(107,255,143,.2);color:#d4ffe0;}
.podcast-player.onyx .info p{color:#b8ddc0;}

.podcast-player.opal{
  background:linear-gradient(150deg,#1a2a4a 0%,#4a5a8a 55%,#1a2a4a 100%);
  box-shadow:0 14px 30px rgba(74,90,138,.3);
}
.podcast-player.opal .art{background:linear-gradient(135deg,#4a5a8a,#ffd97d);}
.podcast-player.opal .info .tag{background:rgba(255,217,125,.2);color:#ffe9b0;}
.podcast-player.opal .info p{color:#c8d2ea;}

.podcast-player.meadow{
  background:linear-gradient(150deg,#1f2e1a 0%,#4a6a3a 55%,#1f2e1a 100%);
  box-shadow:0 14px 30px rgba(74,106,58,.3);
}
.podcast-player.meadow .art{background:linear-gradient(135deg,#4a6a3a,#ffd27a);}
.podcast-player.meadow .info .tag{background:rgba(255,210,122,.2);color:#fff3d6;}
.podcast-player.meadow .info p{color:#d8e0c8;}

.podcast-player.lagoon{
  background:linear-gradient(150deg,#04222e 0%,#1f7a8c 55%,#04222e 100%);
  box-shadow:0 14px 30px rgba(31,122,140,.3);
}
.podcast-player.lagoon .art{background:linear-gradient(135deg,#1f7a8c,#7fe8dc);}
.podcast-player.lagoon .info .tag{background:rgba(127,232,220,.2);color:#d4fbf6;}
.podcast-player.lagoon .info p{color:#c0dcd8;}

.podcast-player.velvet{
  background:linear-gradient(150deg,#2b0f14 0%,#6b1f2e 55%,#2b0f14 100%);
  box-shadow:0 14px 30px rgba(107,31,46,.3);
}
.podcast-player.velvet .art{background:linear-gradient(135deg,#6b1f2e,#ffd45e);}
.podcast-player.velvet .info .tag{background:rgba(255,212,94,.2);color:#ffe5a3;}
.podcast-player.velvet .info p{color:#e8ccc4;}

@media (max-width:700px){
  .podcast-player{grid-template-columns:1fr;text-align:center;}
  .podcast-player .art{max-width:170px;margin:0 auto;}
}

@media (max-width:700px){
  .novel-spotlight{grid-template-columns:1fr;text-align:center;}
  .novel-spotlight .btn-row{justify-content:center;}
  .book-preview{padding:28px 22px;}
}

.btn{
  display:inline-block;
  background:var(--pink);color:#fff;
  padding:10px 22px;border-radius:999px;
  font-weight:700;font-size:.9rem;
  margin-top:10px;
}

.draft-note{
  background:#fff7ed;border:1px dashed var(--amber);
  color:#92400e;padding:10px 18px;border-radius:10px;
  font-size:.85rem;margin-bottom:30px;
}

/* contact section */
.contact-box{
  background:var(--card);
  border-radius:22px;
  padding:36px 40px;
  margin:50px 0 10px;
  box-shadow:0 4px 18px rgba(76,29,149,.08);
  display:flex;flex-wrap:wrap;
  align-items:center;justify-content:space-between;
  gap:24px;
}
.contact-box .contact-info h2{margin:0 0 10px;color:var(--purple);font-size:1.3rem;}
.contact-box .contact-info p{margin:4px 0;color:var(--ink);font-size:.95rem;}
.contact-box .contact-info a{color:var(--purple);font-weight:600;}
.contact-box .contact-actions{display:flex;gap:12px;flex-wrap:wrap;}
.contact-qr-row{display:flex;align-items:center;gap:10px;}
.contact-qr-row img{
  width:44px;height:44px;object-fit:cover;
  border-radius:8px;border:2px solid #fff;
  box-shadow:0 3px 10px rgba(76,29,149,.15);
  vertical-align:middle;
}
.btn-dashboard{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--purple);color:#fff;
  padding:11px 24px;border-radius:999px;
  font-weight:700;font-size:.9rem;
}

/* admin dashboard page */
.dashboard-wrap{max-width:720px;margin:0 auto;}
.dashboard-lock{
  background:var(--card);border-radius:20px;
  padding:44px 40px;text-align:center;
  box-shadow:0 4px 18px rgba(76,29,149,.1);
  max-width:420px;margin:40px auto;
}
.dashboard-lock h2{color:var(--purple);margin-top:0;}
.dashboard-lock input{
  width:100%;padding:12px 16px;border-radius:10px;
  border:1px solid #ddd;font-size:1rem;margin:16px 0;box-sizing:border-box;
}
.dashboard-lock .btn{margin-top:4px;border:none;cursor:pointer;}
.dashboard-lock .error-msg{color:#be123c;font-size:.85rem;min-height:1.2em;}
.dashboard-panel{display:none;}
.dashboard-panel.show{display:block;}
.stat-summary{
  display:flex;gap:20px;flex-wrap:wrap;margin-bottom:30px;
}
.stat-card{
  flex:1;min-width:160px;
  background:var(--card);border-radius:16px;padding:20px 24px;
  box-shadow:0 4px 18px rgba(76,29,149,.08);
}
.stat-card .num{font-size:2rem;font-weight:800;color:var(--purple);}
.stat-card .label{color:var(--muted);font-size:.85rem;}
.bar-list{display:flex;flex-direction:column;gap:16px;}
.bar-row{display:flex;align-items:center;gap:14px;}
.bar-row .bar-rank{
  width:26px;height:26px;border-radius:50%;
  background:var(--pink);color:#fff;font-weight:800;font-size:.8rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.bar-row .bar-label{width:130px;flex-shrink:0;font-weight:600;font-size:.92rem;}
.bar-row .bar-track{
  flex:1;background:#f0eaf9;border-radius:999px;height:22px;overflow:hidden;
}
.bar-row .bar-fill{
  height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--purple),var(--pink));
}
.bar-row .bar-count{width:70px;text-align:right;font-weight:700;color:var(--purple);flex-shrink:0;}
.dashboard-note{
  background:#fff7ed;border:1px dashed var(--amber);
  color:#92400e;padding:10px 18px;border-radius:10px;
  font-size:.82rem;margin-top:30px;
}
.dashboard-reset{
  margin-top:20px;background:none;border:1px solid #ddd;color:var(--muted);
  padding:8px 18px;border-radius:999px;font-size:.82rem;cursor:pointer;
}

/* order / checkout page */
.order-wrap{max-width:820px;margin:0 auto;}
.order-summary-card{
  display:flex;gap:20px;align-items:center;
  background:var(--card);border-radius:18px;padding:20px 24px;
  box-shadow:0 4px 18px rgba(76,29,149,.08);margin-bottom:30px;
}
.order-summary-card img{width:110px;height:110px;object-fit:cover;border-radius:12px;flex-shrink:0;}
.order-summary-card .os-info h3{margin:0 0 6px;}
.order-summary-card .os-info .os-price{font-size:1.3rem;font-weight:800;color:var(--purple);}

.payment-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;}
.payment-option{
  border:2px solid #e5e0f0;border-radius:16px;padding:18px 20px;cursor:pointer;
  background:var(--card);transition:border-color .2s;
}
.payment-option.active{border-color:var(--purple);}
.payment-option input{margin-right:8px;}
.payment-option label{font-weight:700;cursor:pointer;}
.payment-option p{margin:6px 0 0;color:var(--muted);font-size:.85rem;}

.payment-detail-box{display:none;background:#faf5ff;border:1px solid #ede4fb;border-radius:16px;padding:22px 24px;margin-bottom:26px;}
.payment-detail-box.show{display:block;}
.bank-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px dashed #ddd;flex-wrap:wrap;gap:6px;}
.bank-row:last-child{border-bottom:none;}
.bank-row .b-label{color:var(--muted);font-size:.85rem;}
.bank-row .b-value{font-weight:700;font-size:1rem;}
.btn-copy{background:var(--purple);color:#fff;border:none;padding:5px 14px;border-radius:999px;font-size:.78rem;cursor:pointer;margin-left:10px;}
.courier-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;}
.courier-links a{
  display:inline-block;background:#fff;border:1px solid #ddd;padding:8px 16px;border-radius:999px;font-size:.85rem;font-weight:600;color:var(--ink);
}
.courier-links a:hover{border-color:var(--purple);color:var(--purple);}

.order-form{display:flex;flex-direction:column;gap:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{display:flex;flex-direction:column;gap:6px;}
.form-group label{font-size:.85rem;font-weight:700;color:var(--ink);}
.form-group input,.form-group textarea,.form-group select{
  padding:11px 14px;border-radius:10px;border:1px solid #ddd;font-size:.95rem;font-family:inherit;box-sizing:border-box;
}
.form-group textarea{resize:vertical;min-height:70px;}
.order-submit-btn{
  background:var(--pink);color:#fff;border:none;padding:14px 30px;border-radius:999px;font-weight:800;font-size:1rem;cursor:pointer;margin-top:10px;align-self:flex-start;
}
.order-submit-btn:hover{opacity:.9;}
.order-confirmation{display:none;background:#f0faf4;border:1px solid #b8e6c9;border-radius:18px;padding:28px 30px;margin-top:24px;}
.order-confirmation.show{display:block;}
.order-confirmation h3{color:#166534;margin:0 0 14px;}
.order-confirmation .conf-row{padding:6px 0;font-size:.92rem;border-bottom:1px solid #dcf0e3;}
.order-confirmation .conf-row:last-child{border-bottom:none;}
.order-confirmation .conf-row strong{color:var(--ink);}
.order-confirmation .conf-note{margin-top:14px;font-size:.82rem;color:#3a7a52;}
@media (max-width:700px){
  .payment-options{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .order-summary-card{flex-direction:column;text-align:center;}
}

footer{
  background:var(--purple);color:#e9d5ff;
  text-align:center;padding:26px 6%;font-size:.85rem;
}

@media (max-width:700px){
  .two-col, .two-col.reverse .img-col{grid-template-columns:1fr;order:0;}
  .two-col{grid-template-columns:1fr;}
  .hero-caption h1{font-size:1.7rem;}
}
