/* Story 1.0: extend the existing visual language with readable, native blocks. */
.kv-hero-title { max-width:760px; font-size:clamp(72px,8.3vw,124px); }
.kv-hero-lead { max-width:580px; font-size:16px; line-height:1.75; }
.kv-evidence { display:inline-block; margin:16px 0; padding:7px 11px; border:1px solid #5a8582; background:#132729; color:#c6eee6; font-size:12px; font-weight:700; line-height:1.6; letter-spacing:.04em; }
.kv-evidence--vision { color:#ecd1a4; border-color:#80643d; background:#272118; }
.kv-evidence+p { margin-top:0; }
.kv-combat-copy>p.kv-evidence { color:#c6eee6; font-size:12px; line-height:1.6; }
.kv-story-note { max-width:930px; margin-top:26px; color:#b5c4c0; font-size:15px; line-height:1.85; }
.kv-hunt-loop { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:44px; border-top:1px solid #46615c; border-left:1px solid #2e4441; }
/* These groups use CSS grids, not WordPress' vertical block flow spacing. */
.kv-hunt-loop>.kv-loop-step,.kv-world-grid>.kv-world-card,.kv-story-columns>.kv-story-copy { margin:0; min-width:0; }
.kv-loop-step { position:relative; min-width:0; padding:30px; border-right:1px solid #2e4441; border-bottom:1px solid #2e4441; background:linear-gradient(145deg,#142423,#0d1718); }
.kv-loop-step::after { content:''; position:absolute; width:8px; height:8px; right:24px; top:32px; border-right:1px solid #dab681; border-top:1px solid #dab681; transform:rotate(45deg); }
.kv-loop-step:last-child::after { transform:rotate(-45deg); }
.kv-loop-number { margin:0 0 21px; font-family:var(--kv-display); font-size:36px; line-height:1; color:#dab681; }
.kv-loop-step h3,.kv-story-copy h3,.kv-world-card h3 { margin:0 0 15px; color:#f3f0e8; font-family:var(--kv-display); font-size:34px; line-height:1.15; text-transform:uppercase; }
.kv-loop-step p:last-child { margin-bottom:0; font-size:15px; color:#bdccc6; }
.kv-world-grid,.kv-story-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:38px; }
.kv-world-card { padding:clamp(24px,3vw,44px); border:1px solid #3a514d; background:radial-gradient(ellipse at top right,#263b3c80,transparent 70%),#111c1d; }
.kv-world-card:first-child { background:radial-gradient(ellipse at top right,#613b2470,transparent 70%),#171b18; }
.kv-world-card .kv-eyebrow { color:#dbbb8a; }
.kv-story-copy { padding:12px 24px 18px 0; }
.kv-rarities { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 0; }
.kv-rarity { margin:0; border:1px solid #788583; border-bottom-width:3px; padding:10px 14px; background:#102022; color:#f3f0e8; font-size:14px; }
.kv-rarity--1 { border-color:#8cc49d; }.kv-rarity--2 { border-color:#86bce8; }.kv-rarity--3 { border-color:#bb9cde; }.kv-rarity--4 { border-color:#d7ad6d; }.kv-rarity--5 { border-color:#d9c6ec; }
.kv-devlog { margin-top:42px; padding-top:28px; border-top:1px solid #344844; }
.kv-devlog h3 { font-family:var(--kv-display); font-size:34px; text-transform:uppercase; }
.kv-development-grid h3 { margin:0 0 16px; font:700 28px/1.15 var(--kv-display); text-transform:uppercase; }
.kv-development-copy>h3:not(:first-child) { margin-top:28px; }
.kv-haven-copy .kv-intro { font-size:20px; }
.kv-haven { align-items:start; }
.kv-haven>.kv-picture { margin:0; box-shadow:none; border:1px solid #3a514d; }
.kv-picture figcaption { max-width:calc(100% - 24px); font-size:11px; line-height:1.7; letter-spacing:.08em; }
.kv-haven>.kv-picture figcaption { position:static; max-width:none; margin:0; padding:11px 14px; border:0; border-top:1px solid #3a514d; background:#101c1d; }
@media(max-width:900px) {
  .kv-hero-title { font-size:clamp(70px,11vw,104px); }
  .kv-hunt-loop { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .kv-hero-title { font-size:clamp(52px,14.5vw,74px); line-height:.98; }
  .kv-hero-lead { max-width:100%; font-size:16px; line-height:1.75; }
  .kv-hero-actions { align-items:stretch; gap:18px; }
  .kv-hero-actions .kv-text-link { font-size:14px; }
  .kv-hunt-loop { grid-template-columns:1fr; gap:12px; border:0; margin-top:28px; }
  .kv-loop-step { padding:22px 20px 22px 70px; border:1px solid #2e4441; }
  .kv-loop-number { position:absolute; left:18px; top:24px; font-size:28px; }
  .kv-loop-step h3 { font-size:29px; padding-right:18px; }
  .kv-loop-step::after { transform:rotate(135deg); top:29px; right:20px; }
  .kv-world-grid,.kv-story-columns { grid-template-columns:1fr; gap:18px; margin-top:26px; }
  .kv-story-copy { padding:0; }
  .kv-story-note { font-size:14px; }
  .kv-haven-copy .kv-intro { font-size:18px; }
}
@media(prefers-reduced-motion:reduce) { .kv-loop-step,.kv-world-card,.kv-story-copy { transition:none; } }
