
:root {
  --bg: #0c0e0e;
  --panel: #151918;
  --panel-2: #1b211f;
  --paper: #d8c8a4;
  --paper-2: #b7a783;
  --text: #f0eadc;
  --muted: #a9aca5;
  --line: rgba(219, 204, 171, .18);
  --gold: #c8a85b;
  --green: #6f9b6f;
  --red: #b75a4c;
  --blue: #6d8fac;
  --purple: #9175a3;
  --shadow: 0 20px 60px rgba(0,0,0,.28);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at top right, rgba(128,80,39,.13), transparent 32rem),
    radial-gradient(circle at top left, rgba(46,85,58,.11), transparent 28rem),
    var(--bg);
  font-family: Georgia, "Times New Roman", serif;
}
button, input { font: inherit; }
button { color: inherit; }
a { color: inherit; }
img { display: block; max-width: 100%; }

.shell { width: min(1420px, calc(100% - 32px)); margin: 0 auto; }
.hero {
  min-height: 560px;
  position: relative;
  display: grid;
  align-items: end;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}
.hero::before {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(5,7,7,.95) 0%, rgba(5,7,7,.65) 43%, rgba(5,7,7,.12) 78%),
    linear-gradient(0deg, var(--bg) 0%, transparent 55%),
    url("../assets/banners/consejo-guerra.webp") center 46% / cover no-repeat;
}
.hero-inner { position: relative; padding: 42px 0 58px; }
.eyebrow {
  text-transform: uppercase;
  letter-spacing: .2em;
  color: var(--gold);
  font-size: .72rem;
  font-weight: 700;
}
h1 {
  font-size: clamp(3rem, 8vw, 7.2rem);
  font-weight: 500;
  line-height: .88;
  margin: 12px 0 16px;
  letter-spacing: -.055em;
}
.hero-sub {
  max-width: 760px;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  line-height: 1.55;
  color: #ded5c3;
}
.status-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.status-pill {
  border: 1px solid var(--line);
  background: rgba(14,17,16,.7);
  backdrop-filter: blur(8px);
  padding: 10px 13px;
  border-radius: 999px;
  font-size: .84rem;
}
.status-pill strong { color: var(--gold); }

.navbar {
  position: sticky; top: 0; z-index: 20;
  background: rgba(12,14,14,.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}
.nav-inner { display: flex; gap: 6px; padding: 9px 0; overflow-x: auto; }
.nav-btn {
  border: 0;
  background: transparent;
  padding: 10px 13px;
  border-radius: 999px;
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
}
.nav-btn:hover, .nav-btn.active { background: var(--panel-2); color: var(--text); }

main { padding: 46px 0 100px; }
.page { display: none; }
.page.active { display: block; }
.section-head {
  display: flex; justify-content: space-between; align-items: end; gap: 20px;
  margin: 0 0 22px;
}
.section-head h2 { margin: 4px 0 0; font-size: clamp(2rem, 4vw, 3.8rem); font-weight: 500; letter-spacing: -.035em; }
.section-head p { color: var(--muted); max-width: 620px; line-height: 1.55; margin: 0; }

.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.card {
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(29,34,32,.9), rgba(18,22,21,.9));
  box-shadow: var(--shadow);
  border-radius: 18px;
}
.clock { padding: 22px; min-height: 205px; position: relative; overflow: hidden; }
.clock::after {
  content: ""; position: absolute; width: 130px; height: 130px;
  right: -38px; bottom: -48px; border-radius: 50%;
  border: 1px solid var(--line);
}
.clock-value { font-size: 3.7rem; line-height: 1; margin: 13px 0 3px; letter-spacing: -.05em; }
.clock-unit { color: var(--muted); font-size: .9rem; }
.clock p { color: #c9c4b8; line-height: 1.45; font-size: .93rem; }
.tone-critical { border-top: 3px solid var(--red); }
.tone-success { border-top: 3px solid var(--green); }
.tone-warning { border-top: 3px solid var(--gold); }

.split { display: grid; grid-template-columns: 1.45fr .75fr; gap: 18px; margin-top: 18px; }
.war-panel { padding: 22px; overflow: hidden; }
.war-timeline { display: flex; align-items: flex-start; gap: 0; overflow-x: auto; padding: 28px 6px 10px; }
.war-node { min-width: 132px; position: relative; text-align: center; padding-top: 20px; }
.war-node::before {
  content:""; position:absolute; top:7px; left:50%; right:-50%; height:2px; background: var(--line);
}
.war-node:last-child::before { right:50%; }
.war-dot {
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:16px; height:16px; border-radius:50%; border:2px solid #7a7d77; background: var(--panel);
  z-index:2;
}
.war-node.past .war-dot { background: var(--green); border-color: var(--green); }
.war-node.now .war-dot { background: var(--gold); border-color: var(--gold); box-shadow:0 0 0 7px rgba(200,168,91,.12); }
.war-node.danger .war-dot { background: var(--red); border-color: var(--red); }
.war-day { color: var(--gold); font-size: .78rem; margin-top: 4px; }
.war-title { font-size: .92rem; margin-top: 5px; }
.war-detail { color: var(--muted); font-size: .73rem; line-height:1.35; margin-top:5px; }

.threat-art { min-height: 320px; position: relative; overflow: hidden; }
.threat-art img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.threat-art::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(9,10,10,.97), rgba(9,10,10,.08) 70%); }
.threat-copy { position:absolute; z-index:2; left:20px; right:20px; bottom:20px; }
.threat-copy h3 { font-size:1.7rem; margin:5px 0; }
.threat-copy p { color:#d6cdc0; margin:0; line-height:1.4; }

.operations { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.operation { padding:22px; cursor:pointer; transition: transform .18s ease, border-color .18s ease; }
.operation:hover { transform: translateY(-3px); border-color: rgba(200,168,91,.45); }
.op-top { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.badge {
  padding:6px 9px; border-radius:999px; font-size:.72rem;
  border:1px solid var(--line); color:#d4d0c7; background:rgba(255,255,255,.025);
}
.operation h3 { font-size:1.8rem; margin:15px 0 8px; font-weight:500; }
.operation p { color:#c7c2b7; line-height:1.5; margin-bottom:18px; }
.question { border-top:1px solid var(--line); padding-top:14px; color:var(--gold); font-style:italic; }

.thread-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:18px; }
.thread { padding:18px; }
.thread-icon { font-size:1.5rem; opacity:.9; }
.thread h4 { margin:10px 0 6px; font-size:1.15rem; }
.thread p { margin:0; color:var(--muted); font-size:.9rem; line-height:1.45; }

.map-wrap { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:18px; }
.map-card { overflow:hidden; padding:0; }
.map-stage { position:relative; background:#070908; }
.map-stage img { width:100%; }
.pin {
  position:absolute; transform:translate(-50%,-50%);
  width:11px; height:11px; border-radius:50%;
  border:2px solid #eee6d5; background:#5c6460;
  box-shadow:0 4px 12px rgba(0,0,0,.55); cursor:pointer;
}
.pin::after {
  content:attr(data-label);
  position:absolute; left:50%; top:22px; transform:translateX(-50%);
  background:rgba(8,10,9,.86); border:1px solid var(--line);
  padding:4px 7px; border-radius:7px; font-size:.68rem; white-space:nowrap;
  opacity:0; pointer-events:none; transition:opacity .15s ease;
}
.pin:hover::after, .pin.selected::after { opacity:1; }
.pin.next { background:var(--gold); }
.pin.objective { background:var(--purple); }
.pin.danger { background:var(--red); }
.pin.past { background:var(--green); }
.pin.future { background:var(--blue); }
.pin.route { background:#bda65f; }

.map-info { padding:22px; align-self:start; position:sticky; top:72px; }
.map-info h3 { font-size:1.9rem; margin:7px 0 8px; }
.map-info p { color:#c5c0b4; line-height:1.5; }
.legend { display:grid; gap:8px; margin-top:20px; }
.legend span { color:var(--muted); font-size:.82rem; }
.legend i { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:7px; }

.people-cols { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.people-card { padding:20px; }
.people-card h3 { margin:0 0 14px; font-size:1.5rem; }
.person { padding:12px 0; border-top:1px solid var(--line); }
.person:first-of-type { border-top:0; }
.person-name { display:flex; justify-content:space-between; gap:10px; }
.person-name strong { font-weight:600; }
.person-role { color:var(--gold); font-size:.76rem; }
.person-note { color:var(--muted); font-size:.84rem; margin-top:4px; line-height:1.35; }

.chronicle { position:relative; margin-left:8px; }
.chronicle::before { content:""; position:absolute; left:9px; top:8px; bottom:8px; width:1px; background:var(--line); }
.chronicle-item { position:relative; padding:0 0 28px 40px; }
.chronicle-item::before {
  content:""; position:absolute; left:2px; top:5px; width:15px; height:15px; border-radius:50%;
  background:var(--panel); border:2px solid var(--gold);
}
.chronicle-item h3 { margin:3px 0 3px; font-size:1.35rem; }
.chronicle-item .kicker { color:var(--gold); font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; }
.chronicle-item p { color:var(--muted); max-width:800px; line-height:1.5; margin:7px 0 0; }

.archive-grid { display:grid; grid-template-columns: 1.2fr .8fr; gap:18px; }
.archive-card { padding:22px; }
.archive-card h3 { margin:0 0 8px; font-size:1.5rem; }
.archive-card p, .archive-card li { color:var(--muted); line-height:1.55; }
.notice {
  border-left:3px solid var(--gold); padding:14px 16px;
  background:rgba(200,168,91,.07); color:#d8d0bf; margin-top:14px;
}

.modal {
  position:fixed; inset:0; z-index:50; display:none;
  background:rgba(0,0,0,.74); padding:18px; overflow:auto;
}
.modal.open { display:grid; place-items:center; }
.modal-box {
  width:min(760px,100%); border:1px solid var(--line);
  background:#121615; border-radius:18px; box-shadow:0 30px 100px rgba(0,0,0,.5);
  padding:24px;
}
.modal-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.modal-head h3 { font-size:2rem; margin:5px 0; }
.close-btn {
  border:1px solid var(--line); border-radius:999px; background:transparent; width:42px; height:42px; cursor:pointer;
}
.modal-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:20px; }
.modal-list { border-top:1px solid var(--line); padding-top:14px; }
.modal-list h4 { margin:0 0 8px; color:var(--gold); }
.modal-list ul { margin:0; padding-left:18px; color:#c3bdb1; }
.modal-list li { margin:7px 0; line-height:1.35; }

.footer {
  border-top:1px solid var(--line); padding:25px 0 45px; color:#7f847e; font-size:.78rem;
}

@media (max-width: 960px) {
  .grid-3, .operations, .thread-grid, .people-cols { grid-template-columns: 1fr 1fr; }
  .split, .map-wrap, .archive-grid { grid-template-columns:1fr; }
  .map-info { position:static; }
  .hero { min-height:520px; }
}
@media (max-width: 640px) {
  .shell { width:min(100% - 20px, 1420px); }
  .hero { min-height:540px; }
  .hero::before { background:
    linear-gradient(0deg, var(--bg) 0%, rgba(5,7,7,.28) 75%),
    linear-gradient(90deg, rgba(5,7,7,.78), rgba(5,7,7,.24)),
    url("../assets/banners/consejo-guerra.webp") 58% center / cover no-repeat; }
  h1 { font-size:3.5rem; }
  .grid-3, .operations, .thread-grid, .people-cols, .modal-grid { grid-template-columns:1fr; }
  .section-head { align-items:flex-start; flex-direction:column; }
  main { padding-top:30px; }
  .clock { min-height:auto; }
  .pin::after { display:none; }
}


/* v0.3 — Crisis / Broadhurst / Hammerfist */
.score-panel {
  padding: 22px;
  display: grid;
  gap: 14px;
  min-height: 205px;
}
.score-title { display:flex; justify-content:space-between; gap:12px; align-items:start; }
.score-number { font-size: 2.8rem; line-height:1; letter-spacing:-.04em; }
.pips { display:flex; gap:8px; flex-wrap:wrap; }
.pip {
  width: 22px; height: 22px; border-radius:50%;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.035);
}
.pip.on.security { background:var(--green); border-color:var(--green); }
.pip.on.alliance { background:var(--blue); border-color:var(--blue); }
.pip.day-on { background:var(--purple); border-color:var(--purple); }
.score-state { color:var(--muted); line-height:1.45; font-size:.9rem; }

.crisis-top {
  display:grid; grid-template-columns:1fr .85fr 1fr; gap:16px;
}
.day-panel { padding:22px; text-align:center; }
.day-runes { display:flex; justify-content:center; gap:12px; margin:22px 0 16px; }
.day-rune {
  width:58px; height:58px; display:grid; place-items:center;
  border-radius:50%; border:1px solid var(--line); color:var(--muted);
  background:rgba(255,255,255,.025);
}
.day-rune.current { background:rgba(145,117,163,.22); color:#fff; border-color:var(--purple); box-shadow:0 0 0 6px rgba(145,117,163,.08); }
.day-panel p { color:var(--muted); line-height:1.45; }

.rules-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; margin-top:18px; }
.rule-card { padding:20px; }
.rule-card h3 { margin:8px 0 6px; font-size:1.35rem; }
.rule-card p { color:var(--muted); line-height:1.45; font-size:.9rem; }
.rule-card .big { font-size:2.1rem; color:var(--gold); margin:8px 0; }
.rule-list { margin:18px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.rule-line { padding:12px 14px; border:1px solid var(--line); border-radius:12px; color:#cbc6bb; font-size:.86rem; line-height:1.4; background:rgba(255,255,255,.018); }

.location-hero {
  min-height: 305px; border-radius:18px; overflow:hidden; position:relative; margin-bottom:18px;
  border:1px solid var(--line); box-shadow:var(--shadow);
}
.location-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.location-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,7,7,.94),rgba(5,7,7,.42) 57%,rgba(5,7,7,.08)),linear-gradient(0deg,rgba(5,7,7,.8),transparent 55%); }
.location-copy { position:relative; z-index:2; padding:32px; max-width:680px; }
.location-copy h2 { font-size:clamp(2.5rem,5vw,5rem); line-height:.95; margin:10px 0; font-weight:500; letter-spacing:-.04em; }
.location-copy p { color:#d2ccbf; line-height:1.55; }
.location-copy .question { border:0; padding:8px 0 0; font-size:1.05rem; }

.thresholds { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
.threshold { padding:14px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.02); }
.threshold strong { display:block; color:var(--gold); margin-bottom:5px; }
.threshold span { color:var(--muted); font-size:.82rem; line-height:1.35; }

.mission-toolbar {
  display:flex; flex-wrap:wrap; gap:8px; justify-content:space-between; align-items:center; margin:20px 0 14px;
}
.filter-row { display:flex; gap:7px; flex-wrap:wrap; }
.filter-btn {
  border:1px solid var(--line); background:transparent; color:var(--muted);
  border-radius:999px; padding:8px 11px; cursor:pointer; font-size:.82rem;
}
.filter-btn.active, .filter-btn:hover { color:var(--text); border-color:rgba(200,168,91,.45); background:rgba(200,168,91,.07); }

.mission-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.mission-card {
  border:1px solid var(--line); border-radius:16px; padding:18px;
  background:linear-gradient(180deg,rgba(26,31,29,.92),rgba(17,20,19,.94));
  display:grid; gap:10px; cursor:pointer; min-height:220px;
}
.mission-card:hover { border-color:rgba(200,168,91,.42); }
.mission-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.mission-id { color:var(--gold); font-size:.78rem; letter-spacing:.14em; }
.mission-tag { font-size:.7rem; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:5px 8px; }
.mission-card h3 { margin:0; font-size:1.25rem; }
.mission-card p { margin:0; color:var(--muted); line-height:1.45; font-size:.88rem; }
.reward {
  margin-top:auto; border-top:1px solid var(--line); padding-top:11px;
  color:#ded7c8; font-size:.88rem;
}
.reward strong { color:var(--gold); }
.reward small { display:block; color:var(--muted); margin-top:4px; line-height:1.35; }

.factions { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin:15px 0 22px; }
.faction { padding:14px; border:1px solid var(--line); border-radius:14px; min-height:112px; background:rgba(255,255,255,.018); }
.faction strong { display:block; margin-bottom:7px; }
.faction span { color:var(--muted); font-size:.8rem; line-height:1.35; }

.people-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.person-chip { padding:13px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.018); }
.person-chip strong { display:block; }
.person-chip span { color:var(--muted); font-size:.8rem; }

.force-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.force-preview { padding:18px; position:relative; overflow:hidden; min-height:170px; }
.force-preview::after {
  content:"BLOQUEADA"; position:absolute; right:-32px; top:18px; transform:rotate(35deg);
  background:rgba(183,90,76,.16); color:#d49c92; border:1px solid rgba(183,90,76,.28);
  padding:5px 40px; font-size:.65rem; letter-spacing:.16em;
}
.force-preview h3 { margin:9px 0 5px; font-size:1.25rem; }
.force-preview p { color:var(--muted); font-size:.84rem; }
.force-ev { font-size:1.9rem; color:var(--gold); margin-top:16px; }

.handout-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.handout { border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--panel); cursor:pointer; }
.handout img { width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top; }
.handout .handout-copy { padding:13px 15px; }
.handout strong { display:block; }
.handout span { color:var(--muted); font-size:.8rem; }

.image-modal {
  position:fixed; inset:0; z-index:70; display:none; background:rgba(0,0,0,.86); padding:18px; overflow:auto;
}
.image-modal.open { display:grid; place-items:center; }
.image-modal img { max-width:min(1400px,96vw); max-height:92vh; object-fit:contain; border-radius:10px; }
.image-modal button {
  position:sticky; top:0; justify-self:end; border:1px solid rgba(255,255,255,.2); background:#111; color:#fff;
  width:44px; height:44px; border-radius:50%; cursor:pointer; z-index:2; margin-bottom:-50px;
}

@media (max-width:1050px) {
  .crisis-top, .rules-grid { grid-template-columns:1fr; }
  .factions { grid-template-columns:repeat(2,1fr); }
  .force-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:720px) {
  .mission-grid, .thresholds, .rule-list, .people-strip, .force-grid, .handout-grid { grid-template-columns:1fr; }
  .factions { grid-template-columns:1fr; }
  .location-copy { padding:24px 20px; }
}

/* v0.4 */
.trellara-crisis{display:grid;grid-template-columns:250px 1fr;gap:20px;align-items:center;padding:18px;margin-top:18px}
.trellara-crisis img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center top;border-radius:14px;border:1px solid var(--line)}
.trellara-crisis h3{font-size:2rem;margin:6px 0}.trellara-crisis p{color:var(--muted);line-height:1.55;margin:0}
.force-grid.open-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.force-card-visual{position:relative;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel);cursor:pointer;min-width:0}
.force-card-visual:hover{border-color:rgba(200,168,91,.55);transform:translateY(-2px);transition:.18s ease}
.force-thumb-wrap{position:relative;background:#090b0a}.force-thumb-wrap img{width:100%;aspect-ratio:2/2.75;object-fit:cover;object-position:top}
.force-lock{position:absolute;right:10px;top:10px;z-index:2;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 9px;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(11,13,12,.85);backdrop-filter:blur(6px)}
.force-lock.locked{color:#e7a59b;border-color:rgba(183,90,76,.35)}.force-lock.known{color:#b7d8b8;border-color:rgba(111,155,111,.35)}
.force-caption{padding:14px 15px 16px}.force-caption .meta{color:var(--gold);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}
.force-caption h3{margin:6px 0 5px;font-size:1.16rem}.force-caption p{color:var(--muted);font-size:.82rem;line-height:1.4;margin:0}
.force-caption .ev{margin-top:9px;color:#ddd2ba;font-size:.9rem}.force-caption .hint{margin-top:9px;color:var(--gold);font-size:.75rem}
.image-modal-content{max-width:98vw}.zoom-toolbar{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin-bottom:8px}
.zoom-toolbar .viewer-title{margin-right:auto;color:#fff;font-size:.9rem}.zoom-toolbar button{position:static;margin:0;width:auto;height:42px;padding:0 14px;border-radius:999px}
.zoom-stage{max-width:96vw;max-height:88vh;overflow:auto;border-radius:10px;background:#080908;border:1px solid rgba(255,255,255,.14)}
.zoom-stage img{display:block;max-width:none;max-height:none;width:auto;height:auto;transform-origin:top left}
.npc-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:16px}
.npc-search{min-width:min(360px,100%);flex:1;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:999px;padding:11px 16px;font-size:1rem}
.npc-groups{display:flex;gap:7px;flex-wrap:wrap}.npc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.npc-card{border:1px solid var(--line);border-radius:15px;overflow:hidden;background:var(--panel);display:grid;grid-template-columns:86px 1fr;min-height:110px}
.npc-face{width:86px;height:100%;min-height:110px;object-fit:cover;object-position:center 28%;border-right:1px solid var(--line)}
.npc-placeholder{width:86px;min-height:110px;display:grid;place-items:center;border-right:1px solid var(--line);background:radial-gradient(circle at 50% 35%,rgba(200,168,91,.13),transparent 38%),#101412;color:var(--gold);font-size:1.7rem}
.npc-copy{padding:12px;min-width:0}.npc-copy .group{color:var(--gold);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em}.npc-copy h4{margin:5px 0 3px;font-size:1rem}
.npc-copy .role{color:#c7c1b5;font-size:.78rem;line-height:1.3}.npc-copy .state{color:var(--muted);font-size:.72rem;margin-top:6px}
.politics-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.clan-card{padding:18px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(180deg,rgba(28,32,30,.95),rgba(16,19,18,.95))}
.clan-card h3{margin:5px 0;font-size:1.45rem}.clan-card .stance{color:var(--gold);font-size:.78rem;margin-bottom:9px}.clan-card p{color:var(--muted);line-height:1.45;font-size:.86rem}
.clan-card .figures{color:#c8c1b3;font-size:.75rem;line-height:1.4;border-top:1px solid var(--line);padding-top:9px}
.relation-list{display:grid;gap:8px;margin-top:14px}.relation{display:grid;grid-template-columns:minmax(160px,.7fr) 140px minmax(0,1.6fr);gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.018)}
.relation .pair{font-weight:600}.relation .rtype{color:var(--gold);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.relation .rtext{color:var(--muted);font-size:.83rem;line-height:1.4}
.mission-expanded{margin-top:8px;color:#c8c1b5;font-size:.82rem;line-height:1.45}.mission-expanded strong{color:#dfd5c1}
@media(max-width:1100px){.force-grid.open-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.npc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.trellara-crisis{grid-template-columns:1fr}.trellara-crisis img{max-width:320px}.force-grid.open-cards,.npc-grid,.politics-board{grid-template-columns:1fr}.relation{grid-template-columns:1fr;gap:5px}}


/* v0.5 — Hammerfist internal module */
.hammerfist-compact-hero{min-height:260px}
.hammerfist-compact-hero .location-copy{max-width:760px}
.hammer-subnav{
  display:flex;gap:8px;overflow-x:auto;padding:10px;margin:0 0 20px;
  border:1px solid var(--line);border-radius:16px;background:rgba(17,21,20,.92);
  position:sticky;top:62px;z-index:15;backdrop-filter:blur(10px);
}
.hammer-tab{
  border:1px solid transparent;background:transparent;color:var(--muted);
  padding:10px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;
}
.hammer-tab:hover,.hammer-tab.active{
  color:var(--text);background:rgba(200,168,91,.08);border-color:rgba(200,168,91,.32);
}
.hammer-pane{display:none}
.hammer-pane.active{display:block}
.hammer-summary-grid{
  display:grid;grid-template-columns:1.25fr .7fr 1fr;gap:16px;align-items:stretch;
}
.hammer-day-card,.hammer-agreement{padding:22px}
.hammer-day-big{font-size:2.7rem;line-height:1;margin:18px 0 10px;color:var(--gold)}
.hammer-day-card p,.hammer-agreement p{color:var(--muted);line-height:1.5}
.hammer-agreement h3{font-size:1.6rem;margin:8px 0}
.hammer-launch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.hammer-launch{
  text-align:left;border:1px solid var(--line);border-radius:16px;padding:18px;
  background:linear-gradient(180deg,rgba(27,32,30,.96),rgba(16,19,18,.96));
  cursor:pointer;color:var(--text);min-height:145px;
}
.hammer-launch:hover{border-color:rgba(200,168,91,.48);transform:translateY(-2px)}
.hammer-launch-icon{display:block;font-size:1.6rem;margin-bottom:16px;color:var(--gold)}
.hammer-launch strong{display:block;font-size:1.15rem}
.hammer-launch small{display:block;margin-top:7px;color:var(--muted);line-height:1.35}

.hammer-crisis-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}
.mini-stat{padding:16px}
.mini-stat span{display:block;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}
.mini-stat strong{display:block;font-size:1.9rem;color:var(--gold);margin-top:7px}
.mini-stat small{display:block;color:var(--muted);margin-top:5px}

.hammer-mission-groups{display:grid;gap:18px}
.mission-group{
  border:1px solid var(--line);border-radius:17px;padding:16px;background:rgba(255,255,255,.012);
}
.mission-group-head{display:flex;justify-content:space-between;gap:15px;align-items:end;margin-bottom:12px}
.mission-group-head h3{margin:4px 0 0;font-size:1.5rem}
.mission-group-head p{margin:0;color:var(--muted);font-size:.82rem;max-width:520px}
.mission-group-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.mission-group.single .mission-group-cards{grid-template-columns:1fr}
.mission-group .mission-card{min-height:0}

.political-map{
  border:1px solid var(--line);border-radius:20px;padding:24px;
  background:
    radial-gradient(circle at 50% 30%,rgba(200,168,91,.08),transparent 28rem),
    linear-gradient(180deg,rgba(21,25,24,.97),rgba(12,15,14,.97));
}
.political-node{
  width:min(520px,100%);margin:0 auto;border:1px solid var(--line);border-radius:15px;
  padding:14px 16px;display:flex;gap:13px;align-items:center;background:rgba(255,255,255,.025);
}
.political-node span{display:block;color:var(--gold);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}
.political-node strong{display:block;font-size:1.08rem;margin:2px 0}
.political-node small{display:block;color:var(--muted)}
.political-icon{
  flex:0 0 46px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(200,168,91,.34);color:var(--gold);background:#111513;font-size:.8rem;font-weight:700;
}
.cassian-node{border-color:rgba(183,90,76,.35)}
.cassian-node .political-icon{color:#d58e84;border-color:rgba(183,90,76,.45)}
.bronnar-node{border-color:rgba(200,168,91,.45)}
.political-arrow.vertical{
  width:1px;height:36px;margin:0 auto;background:linear-gradient(var(--red),var(--gold));
}
.political-clan-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0;
  position:relative;
}
.political-clan-mini{
  border:1px solid var(--line);border-radius:14px;padding:14px;background:rgba(255,255,255,.018);
}
.political-clan-mini strong{display:block;font-size:1rem}
.political-clan-mini span{display:block;color:var(--gold);font-size:.68rem;margin-top:5px}
.political-clan-mini small{display:block;color:var(--muted);font-size:.72rem;line-height:1.35;margin-top:6px}
.yunque-node{border-style:dashed;border-color:rgba(111,155,111,.5)}
.yunque-node .political-icon{color:#a8cba9;border-color:rgba(111,155,111,.5)}

.politics-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}
.council-state-list,.movement-list{display:grid;gap:8px;margin-top:10px}
.council-state,.movement{
  border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:rgba(255,255,255,.015);
}
.council-state-top{display:flex;justify-content:space-between;gap:10px}
.council-state strong{font-size:.95rem}.council-state em{font-style:normal;color:var(--gold);font-size:.78rem}
.council-state p,.movement p{margin:6px 0 0;color:var(--muted);font-size:.8rem;line-height:1.4}
.movement{display:grid;grid-template-columns:22px 1fr;gap:9px;align-items:start}
.movement-mark{color:var(--gold);font-weight:700}
.movement.done .movement-mark{color:var(--green)}

.clan-profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.clan-profile{
  border:1px solid var(--line);border-radius:17px;padding:20px;background:linear-gradient(180deg,rgba(26,31,29,.95),rgba(15,18,17,.95));
}
.clan-profile h3{font-size:1.6rem;margin:6px 0 4px}
.clan-profile .summary{color:var(--muted);line-height:1.5;font-size:.88rem}
.clan-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.clan-columns h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);margin:0 0 7px}
.clan-columns ul{margin:0;padding-left:18px;color:#c9c2b5;font-size:.82rem;line-height:1.5}
.clan-footer{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
.clan-footer div{font-size:.82rem;color:#c9c2b5;margin-top:5px}
.clan-footer strong{color:var(--gold)}

.hammer-global-force-link{
  margin-top:18px;border:1px solid rgba(200,168,91,.35);background:rgba(200,168,91,.06);
  color:var(--gold);border-radius:999px;padding:11px 16px;cursor:pointer;
}
.hammer-global-force-link:hover{background:rgba(200,168,91,.11)}

@media(max-width:1050px){
  .hammer-summary-grid{grid-template-columns:1fr 1fr}.hammer-agreement{grid-column:1/-1}
  .hammer-launch-grid{grid-template-columns:repeat(2,1fr)}
  .hammer-crisis-strip{grid-template-columns:repeat(2,1fr)}
  .political-clan-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .hammer-subnav{top:58px}
  .hammer-summary-grid,.hammer-launch-grid,.hammer-crisis-strip,.politics-two-col,.clan-profile-grid,.clan-columns{grid-template-columns:1fr}
  .hammer-agreement{grid-column:auto}
  .mission-group-cards,.mission-group.single .mission-group-cards{grid-template-columns:1fr}
  .political-clan-grid{grid-template-columns:1fr}
  .mission-group-head{align-items:flex-start;flex-direction:column}
}


/* v0.6 — Broadhurst internal module + character dossiers */
.broad-pane{display:none}
.broad-pane.active{display:block}
.broad-launch-grid{grid-template-columns:repeat(3,1fr)}

.dossier-character-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;
}
.dossier-character{
  border:1px solid var(--line);border-radius:17px;overflow:hidden;
  background:linear-gradient(180deg,rgba(26,31,29,.96),rgba(15,18,17,.96));
  min-height:230px;display:grid;grid-template-columns:116px 1fr;
}
.dossier-portrait{
  width:116px;height:100%;min-height:230px;object-fit:cover;object-position:center 28%;
  border-right:1px solid var(--line);
}
.dossier-placeholder{
  width:116px;min-height:230px;display:grid;place-items:center;
  border-right:1px solid var(--line);
  background:radial-gradient(circle at 50% 32%,rgba(200,168,91,.16),transparent 38%),#101412;
  color:var(--gold);font-size:2rem;letter-spacing:.05em;
}
.dossier-copy{padding:16px;min-width:0}
.dossier-copy .group{color:var(--gold);font-size:.66rem;text-transform:uppercase;letter-spacing:.11em}
.dossier-copy h3{margin:5px 0 3px;font-size:1.3rem}
.dossier-copy .role{color:#d2cabd;font-size:.82rem}
.dossier-copy .stance{color:var(--gold);font-size:.76rem;margin:7px 0 9px}
.dossier-copy p{color:var(--muted);font-size:.82rem;line-height:1.45;margin:0}
.mission-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}
.mission-badge{
  border:1px solid var(--line);border-radius:999px;padding:4px 7px;
  color:#cfc7b9;font-size:.68rem;background:rgba(255,255,255,.02)
}

.broadhurst-resource-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.resource-group{
  border:1px solid var(--line);border-radius:17px;padding:18px;background:rgba(255,255,255,.014);
}
.resource-group h3{font-size:1.35rem;margin:5px 0}
.resource-group>p{color:var(--muted);font-size:.84rem;line-height:1.45}
.resource-mission-list{display:grid;gap:8px;margin-top:13px}
.resource-mission{
  width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;
  padding:12px;background:rgba(255,255,255,.018);color:var(--text);cursor:pointer;
}
.resource-mission:hover{border-color:rgba(200,168,91,.45)}
.resource-mission strong{display:block;font-size:.9rem}
.resource-mission span{display:block;color:var(--gold);font-size:.76rem;margin-top:4px}
.resource-mission small{display:block;color:var(--muted);font-size:.72rem;margin-top:4px}

.hammer-character-toolbar{margin-bottom:18px}
.hammer-character-groups{display:grid;gap:20px}
.hammer-character-group{
  border:1px solid var(--line);border-radius:18px;padding:16px;background:rgba(255,255,255,.012);
}
.hammer-character-group-head{
  display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:12px;
}
.hammer-character-group-head h3{font-size:1.45rem;margin:4px 0 0}
.hammer-character-group-head p{margin:0;color:var(--muted);font-size:.8rem;max-width:520px}
.hammer-character-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px
}
.hammer-person{
  border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);
  display:grid;grid-template-columns:82px 1fr;min-height:132px;
}
.hammer-person-face{
  width:82px;height:100%;min-height:132px;object-fit:cover;object-position:center 25%;
  border-right:1px solid var(--line);
}
.hammer-person-placeholder{
  width:82px;min-height:132px;display:grid;place-items:center;
  border-right:1px solid var(--line);color:var(--gold);font-size:1.45rem;
  background:radial-gradient(circle at 50% 32%,rgba(200,168,91,.14),transparent 38%),#101412;
}
.hammer-person-copy{padding:11px;min-width:0}
.hammer-person-copy .affiliation{color:var(--gold);font-size:.62rem;text-transform:uppercase;letter-spacing:.09em}
.hammer-person-copy h4{font-size:.95rem;margin:4px 0 2px}
.hammer-person-copy .role{color:#cfc7b9;font-size:.72rem;line-height:1.3}
.hammer-person-copy .state{color:var(--muted);font-size:.69rem;margin-top:5px}
.hammer-person-copy .mission-badges{margin-top:7px}
.hammer-person-copy .mission-badge{font-size:.6rem;padding:3px 6px}

.yunque-members{
  border:1px dashed rgba(111,155,111,.48);border-radius:14px;padding:14px;
  margin-bottom:16px;background:rgba(111,155,111,.035);
}
.yunque-members strong{color:#b5d0b6}
.yunque-members p{color:var(--muted);font-size:.8rem;line-height:1.4;margin:5px 0 0}

@media(max-width:1100px){
  .dossier-character-grid,.hammer-character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
  .broad-launch-grid,.dossier-character-grid,.broadhurst-resource-groups,.hammer-character-grid{grid-template-columns:1fr}
  .dossier-character{grid-template-columns:92px 1fr}
  .dossier-portrait,.dossier-placeholder{width:92px}
  .hammer-character-group-head{align-items:flex-start;flex-direction:column}
}

#hammer-pane-resumen .hammer-launch-grid{grid-template-columns:repeat(5,1fr)}
@media(max-width:1180px){#hammer-pane-resumen .hammer-launch-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){#hammer-pane-resumen .hammer-launch-grid{grid-template-columns:1fr}}


/* v0.7 — Intelligence module */
.intel-hero-grid{
  display:grid;grid-template-columns:.75fr 1.25fr;gap:16px;align-items:stretch;
}
.intel-counter{padding:24px;display:flex;flex-direction:column;justify-content:center;min-height:330px}
.intel-count{
  font-size:5rem;line-height:.9;color:var(--gold);letter-spacing:-.06em;margin:18px 0 3px;
}
.intel-count-label{color:#ddd4c2;font-size:1rem}
.intel-equation{
  margin-top:22px;padding:12px 14px;border:1px solid rgba(200,168,91,.32);
  border-radius:12px;color:var(--gold);background:rgba(200,168,91,.06);
  font-size:.86rem;letter-spacing:.08em;
}
.intel-counter p{color:var(--muted);line-height:1.5;margin-top:16px}

.intel-handout-preview{
  position:relative;overflow:hidden;min-height:330px;cursor:pointer;border:1px solid var(--line);
  border-radius:18px;background:#090b0a;
}
.intel-handout-preview img{width:100%;height:100%;object-fit:cover;object-position:center 12%;position:absolute;inset:0}
.intel-handout-preview::after{
  content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,7,7,.96),rgba(5,7,7,.08) 68%);
}
.intel-handout-overlay{position:absolute;z-index:2;left:20px;right:20px;bottom:18px}
.intel-handout-overlay strong{display:block;font-size:1.6rem;margin-top:5px}
.intel-handout-overlay span{display:block;color:var(--muted);font-size:.82rem;margin-top:4px}

.intel-source-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.intel-source{
  position:relative;padding:20px;border:1px solid var(--line);border-radius:16px;
  background:linear-gradient(180deg,rgba(25,30,28,.96),rgba(15,18,17,.96));overflow:hidden;
}
.intel-source .source-top{display:flex;justify-content:space-between;gap:12px;align-items:start}
.intel-source h3{font-size:1.4rem;margin:6px 0}
.intel-source p{color:var(--muted);line-height:1.45;font-size:.84rem}
.intel-source .source-reward{color:var(--gold);font-size:1.35rem;margin:14px 0 5px}
.intel-source .source-mission{font-size:.8rem;color:#d2cbbc}
.intel-source-status{
  border:1px solid var(--line);border-radius:999px;padding:6px 9px;
  font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;
}
.intel-source-status.locked{color:#dfa096;border-color:rgba(183,90,76,.38)}
.intel-source-status.available{color:#b8d9b8;border-color:rgba(111,155,111,.42)}

.intel-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.intel-rule{
  border:1px solid var(--line);border-radius:14px;padding:15px;background:rgba(255,255,255,.018);
  color:#cbc4b7;font-size:.84rem;line-height:1.45;
}
.intel-rule span{
  display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;
  border:1px solid rgba(145,117,163,.4);color:#bda9ca;margin-right:7px;font-size:.72rem;
}

.intel-effects{display:grid;gap:15px}
.intel-effect{
  border:1px solid var(--line);border-radius:18px;overflow:hidden;
  background:linear-gradient(180deg,rgba(25,30,28,.96),rgba(14,17,16,.97));
}
.intel-effect-head{
  display:grid;grid-template-columns:66px 1fr auto;gap:15px;align-items:center;padding:18px 20px;
  border-bottom:1px solid var(--line);
}
.intel-roman{
  width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(145,117,163,.5);color:#c6b2d1;font-size:1.25rem;font-weight:700;
  background:rgba(145,117,163,.08)
}
.intel-effect h3{font-size:1.45rem;margin:0}
.intel-effect .subtitle{color:var(--muted);font-size:.82rem;margin-top:4px}
.intel-cost{
  border:1px solid rgba(200,168,91,.34);border-radius:999px;padding:7px 10px;
  color:var(--gold);font-size:.72rem;white-space:nowrap;
}
.intel-effect-body{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:18px 20px}
.intel-effect-description p{color:#c9c2b5;line-height:1.48;font-size:.88rem;margin:0 0 12px}
.intel-timing{
  border-left:2px solid var(--gold);padding-left:10px;color:var(--muted);font-size:.78rem;line-height:1.4;
}
.intel-reveal-list h4,.intel-targets h4{margin:0 0 9px;color:var(--gold);font-size:.8rem;text-transform:uppercase;letter-spacing:.09em}
.intel-reveal-list ul{margin:0;padding-left:18px;color:#c9c2b5;font-size:.82rem;line-height:1.5}
.intel-restriction{
  margin-top:12px;padding:9px 11px;border:1px solid rgba(183,90,76,.28);
  border-radius:10px;color:#dba097;background:rgba(183,90,76,.055);font-size:.78rem;
}
.intel-locked-output{
  margin:0 20px 18px;border:1px dashed rgba(145,117,163,.38);border-radius:13px;
  padding:13px 15px;background:rgba(145,117,163,.035);
}
.intel-locked-output strong{display:block;color:#bca9c7;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em}
.intel-locked-output p{margin:5px 0 0;color:var(--muted);font-size:.8rem}
.intel-target-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.intel-target{
  border:1px solid var(--line);border-radius:10px;padding:9px 10px;
  background:rgba(255,255,255,.015);position:relative;
}
.intel-target strong{display:block;font-size:.83rem}
.intel-target span{display:block;color:var(--muted);font-size:.68rem;margin-top:3px}
.intel-target::after{
  content:"BLOQUEADO";position:absolute;right:8px;top:8px;color:#c28e85;
  font-size:.55rem;letter-spacing:.08em;
}

.intel-unlocks{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.intel-empty{
  grid-column:1/-1;border:1px dashed var(--line);border-radius:16px;padding:26px;
  text-align:center;color:var(--muted);background:rgba(255,255,255,.012)
}
.intel-unlock-card{
  border:1px solid rgba(111,155,111,.32);border-radius:16px;padding:18px;
  background:rgba(111,155,111,.035);
}
.intel-unlock-card .eyebrow{color:#a9c6aa}
.intel-unlock-card h3{margin:6px 0}
.intel-unlock-card p,.intel-unlock-card li{color:#c9c2b5;font-size:.84rem;line-height:1.45}

@media(max-width:900px){
  .intel-hero-grid,.intel-source-grid,.intel-effect-body{grid-template-columns:1fr}
  .intel-rules{grid-template-columns:repeat(2,1fr)}
  .intel-effect-head{grid-template-columns:54px 1fr}
  .intel-cost{grid-column:1/-1;justify-self:start}
}
@media(max-width:620px){
  .intel-rules,.intel-unlocks,.intel-target-grid{grid-template-columns:1fr}
  .intel-count{font-size:4rem}
}


/* v0.9 — Player map replacement */
.map-stage .pin{
  width:18px;
  height:18px;
  background:rgba(255,255,255,.02)!important;
  border:2px solid rgba(255,255,255,.0);
  box-shadow:none;
}
.map-stage .pin:hover,
.map-stage .pin.selected{
  border-color:rgba(240,234,220,.85);
  background:rgba(200,168,91,.18)!important;
  box-shadow:0 0 0 4px rgba(200,168,91,.12);
}
.map-stage .pin::after{
  top:20px;
}


/* v0.10 — Force rules module */
.force-pane{display:none}
.force-pane.active{display:block}

.force-core-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.force-core-card{
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(26,31,29,.95),rgba(15,18,17,.95));
}
.force-core-card .rule-number{
  width:34px;height:34px;border-radius:50%;
  display:grid;place-items:center;
  color:var(--gold);border:1px solid rgba(200,168,91,.35);
  margin-bottom:13px;font-size:.78rem;
}
.force-core-card h3{margin:0 0 8px;font-size:1.2rem}
.force-core-card p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.48}

.force-cycle{
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr;
  gap:10px;
  align-items:center;
  margin:24px 0;
}
.force-cycle-node{
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  text-align:center;
  background:rgba(255,255,255,.018);
}
.force-cycle-node span{
  display:grid;place-items:center;
  width:34px;height:34px;border-radius:50%;
  margin:0 auto 10px;
  border:1px solid var(--line);
  color:var(--gold);
}
.force-cycle-node strong{display:block;font-size:1.05rem}
.force-cycle-node small{display:block;color:var(--muted);margin-top:5px;line-height:1.35}
.force-cycle-node.available{border-color:rgba(111,155,111,.38)}
.force-cycle-node.used{border-color:rgba(183,90,76,.34)}
.force-cycle-node.recovery{border-color:rgba(200,168,91,.38)}
.force-cycle-arrow{color:var(--gold);font-size:1.6rem}

.intercept-flow{
  display:grid;
  gap:14px;
  position:relative;
}
.intercept-step{
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(25,30,28,.96),rgba(14,17,16,.97));
  overflow:hidden;
}
.intercept-step-head{
  display:grid;
  grid-template-columns:58px 1fr;
  gap:14px;
  align-items:center;
  padding:18px 20px;
  border-bottom:1px solid var(--line);
}
.intercept-step-number{
  width:50px;height:50px;border-radius:50%;
  display:grid;place-items:center;
  color:var(--gold);
  border:1px solid rgba(200,168,91,.4);
  font-size:1.1rem;font-weight:700;
}
.intercept-step h3{margin:0;font-size:1.35rem}
.intercept-step-body{padding:18px 20px}
.intercept-step-body>p{margin:0;color:#c9c2b5;line-height:1.5;font-size:.88rem}
.intercept-important{
  margin-top:12px;
  border-left:3px solid var(--red);
  padding:10px 12px;
  color:#d8c0bb;
  background:rgba(183,90,76,.05);
  font-size:.8rem;line-height:1.42;
}
.intercept-branches{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin-top:14px;
}
.intercept-branch{
  border:1px solid var(--line);
  border-radius:13px;
  padding:13px;
  background:rgba(255,255,255,.018);
}
.intercept-branch strong{
  display:block;color:var(--gold);
  font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;
  margin-bottom:5px;
}
.intercept-branch p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.42}

.intercept-decision{
  margin-top:18px;
  padding:22px;
  border-left:3px solid var(--gold);
}
.intercept-decision blockquote{
  margin:12px 0;
  font-size:1.25rem;
  line-height:1.45;
  color:#e0d7c7;
  font-style:italic;
}
.intercept-decision p{color:var(--muted);line-height:1.5;margin:0}

.intel-force-universal{
  padding:22px;
  border-top:3px solid var(--purple);
}
.intel-force-universal h3{
  margin:8px 0 10px;
  font-size:1.55rem;
  line-height:1.35;
  font-weight:500;
}
.intel-force-universal p{margin:0;color:var(--muted);line-height:1.5}

.intel-force-requirements{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:14px;
}
.intel-force-requirement{
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px;
  background:rgba(145,117,163,.035);
  color:#cbc4b7;
  font-size:.82rem;
  line-height:1.45;
}
.intel-force-requirement span{
  display:block;
  color:#c1accd;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  margin-bottom:6px;
}

.intel-force-examples{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.intel-force-example{
  border:1px solid var(--line);
  border-radius:16px;
  padding:17px;
  background:linear-gradient(180deg,rgba(26,31,29,.95),rgba(15,18,17,.95));
}
.intel-force-example .effect{
  color:var(--gold);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.intel-force-example h3{font-size:1.1rem;margin:6px 0 8px}
.intel-force-example p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}

.prepared-example{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.prepared-step{
  position:relative;
  border:1px solid var(--line);
  border-radius:15px;
  padding:16px;
  background:rgba(255,255,255,.018);
}
.prepared-step::after{
  content:"→";
  position:absolute;
  right:-18px;top:50%;
  transform:translateY(-50%);
  color:var(--gold);
  z-index:2;
}
.prepared-step:last-child::after{display:none}
.prepared-step span{
  display:block;color:var(--gold);
  font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;
  margin-bottom:7px;
}
.prepared-step p{margin:0;color:#c9c2b5;font-size:.8rem;line-height:1.43}
.prepared-counterexample{
  grid-column:1/-1;
  border:1px dashed rgba(183,90,76,.34);
  border-radius:13px;
  padding:12px 14px;
  color:#d4aaa3;
  background:rgba(183,90,76,.04);
  font-size:.8rem;line-height:1.45;
}

.ironcairn-note{
  padding:18px;
  margin-top:20px;
  border-left:3px solid var(--blue);
}
.ironcairn-note h3{margin:6px 0 8px;font-size:1.25rem}
.ironcairn-note p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.48}

@media(max-width:1000px){
  .force-core-grid{grid-template-columns:repeat(2,1fr)}
  .intel-force-examples{grid-template-columns:1fr}
  .prepared-example{grid-template-columns:repeat(2,1fr)}
  .prepared-step:nth-child(2)::after{display:none}
}
@media(max-width:720px){
  .force-core-grid,.intel-force-requirements,.prepared-example{grid-template-columns:1fr}
  .force-cycle{grid-template-columns:1fr}
  .force-cycle-arrow{transform:rotate(90deg);text-align:center}
  .intercept-branches{grid-template-columns:1fr}
  .prepared-step::after{display:none}
}


/* v0.11 — Tactical force guide from comparative workbook */
.force-keyword-strip{
  display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:18px;
}
.force-keyword{
  flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:8px 11px;
  background:rgba(255,255,255,.018);color:#d1c9bb;font-size:.72rem;
}
.force-keyword strong{color:var(--gold);font-size:.68rem;letter-spacing:.08em;margin-right:5px}

.force-choice-toolbar{
  display:flex;gap:12px;align-items:center;margin-bottom:14px;
}
.choice-count{color:var(--muted);font-size:.8rem;white-space:nowrap}
.force-choice-list{display:grid;gap:9px}
.force-choice-row{
  border:1px solid var(--line);border-radius:14px;padding:13px 15px;
  display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(180px,.9fr) minmax(180px,.9fr);
  gap:12px;align-items:center;background:rgba(255,255,255,.015);
}
.force-choice-row:hover{border-color:rgba(200,168,91,.4)}
.force-need{font-weight:600}
.force-pick-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);display:block;margin-bottom:3px}
.force-best{color:var(--gold)}
.force-alt{color:#c7c0b4}
.force-pick-button{
  border:0;background:transparent;padding:0;color:inherit;text-align:left;cursor:pointer;font:inherit;
}
.force-pick-button:hover{text-decoration:underline;text-decoration-color:rgba(200,168,91,.5)}

.force-identity-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;
}
.force-identity-card{
  border:1px solid var(--line);border-radius:15px;padding:16px;
  background:linear-gradient(180deg,rgba(26,31,29,.95),rgba(15,18,17,.95));
}
.force-identity-card .identity-keyword{color:var(--gold);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.force-identity-card h3{font-size:1.12rem;margin:6px 0 4px}
.force-identity-card .identity-name{color:#d2cabd;font-size:.79rem}
.force-identity-card blockquote{margin:12px 0 0;color:var(--muted);font-size:.82rem;line-height:1.42;font-style:italic}
.force-identity-card .specialty{margin-top:10px;border-top:1px solid var(--line);padding-top:9px;color:#bfb8ac;font-size:.72rem;line-height:1.4}

.mission-mode-tabs{display:flex;gap:8px;margin-bottom:16px}
.secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.secondary-card{
  border:1px solid var(--line);border-radius:16px;padding:17px;
  background:linear-gradient(180deg,rgba(25,30,28,.96),rgba(15,18,17,.96));
}
.secondary-card h3{font-size:1.15rem;margin:5px 0 10px}
.secondary-tags{display:flex;flex-wrap:wrap;gap:6px}
.secondary-tag{
  border:1px solid var(--line);border-radius:999px;padding:6px 8px;
  font-size:.72rem;color:#c9c2b5;background:rgba(255,255,255,.017)
}
.secondary-type-card .secondary-tag{color:#d0c9bc}
.secondary-card .eyebrow{font-size:.64rem}

.comparison-toolbar{margin-bottom:12px}
.force-comparison-wrap{
  overflow:auto;border:1px solid var(--line);border-radius:16px;background:#101311;
}
.force-comparison-table{
  width:100%;min-width:1450px;border-collapse:collapse;font-size:.78rem;
}
.force-comparison-table th{
  position:sticky;top:0;z-index:2;background:#171c1a;color:var(--gold);
  text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);
  text-transform:uppercase;letter-spacing:.06em;font-size:.66rem;
}
.force-comparison-table td{
  vertical-align:top;padding:11px 12px;border-bottom:1px solid rgba(219,204,171,.09);
  color:#c9c2b5;line-height:1.42;
}
.force-comparison-table tr:hover td{background:rgba(200,168,91,.025)}
.force-comparison-table td:first-child{color:#ece3d2;font-weight:600;min-width:210px}
.force-comparison-table td:nth-child(2){color:var(--gold);font-size:.92rem;font-weight:700;text-align:center}
.force-comparison-table td:nth-child(3){min-width:110px}
.force-comparison-table td:nth-child(4){min-width:220px}
.force-comparison-table td:nth-child(5){min-width:270px}
.force-comparison-table td:nth-child(6){min-width:300px}
.force-comparison-table td:nth-child(7){min-width:220px}
.force-comparison-table td:nth-child(8){min-width:270px}

.comparison-lower{
  display:grid;grid-template-columns:.8fr 1.2fr;gap:18px;margin-top:24px;
}
.ev-ranking{display:grid;gap:6px;margin-top:10px}
.ev-rank-row{
  display:grid;grid-template-columns:38px 1fr 58px;gap:10px;align-items:center;
  border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:rgba(255,255,255,.015);
}
.ev-rank-pos{color:var(--muted);text-align:center}
.ev-rank-name{font-size:.82rem}
.ev-rank-value{color:var(--gold);font-weight:700;text-align:right}

.director-keywords{
  display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px;
}
.director-keyword{
  border:1px solid var(--line);border-radius:11px;padding:10px 11px;background:rgba(255,255,255,.015);
  display:flex;justify-content:space-between;gap:10px;align-items:center;
}
.director-keyword span{font-size:.78rem;color:#c9c2b5}
.director-keyword strong{font-size:.68rem;letter-spacing:.09em;color:var(--gold)}

.force-card-highlight{
  outline:3px solid rgba(200,168,91,.7);
  box-shadow:0 0 0 7px rgba(200,168,91,.12)!important;
}

@media(max-width:980px){
  .force-choice-row{grid-template-columns:1fr 1fr}
  .force-need{grid-column:1/-1}
  .force-identity-grid{grid-template-columns:repeat(2,1fr)}
  .secondary-grid,.comparison-lower{grid-template-columns:1fr}
}
@media(max-width:650px){
  .force-choice-toolbar{align-items:stretch;flex-direction:column}
  .force-choice-row,.force-identity-grid,.secondary-grid{grid-template-columns:1fr}
  .force-need{grid-column:auto}
  .director-keywords{grid-template-columns:1fr}
}


/* v0.12 — Canonical campaign banners */
#page-broadhurst .location-hero img{
  object-position:center 48%;
}

#page-hammerfist .location-hero img{
  object-position:center 47%;
}

@media(max-width:720px){
  #page-resumen .hero img,
  #page-resumen .location-hero img,
  #page-broadhurst .location-hero img,
  #page-hammerfist .location-hero img{
    object-position:center center;
  }
}




/* v0.16 — dynamic state */
.mission-state{
  display:inline-flex;align-items:center;width:max-content;border-radius:999px;
  padding:5px 8px;font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;
  border:1px solid var(--line);
}
.mission-state.available{color:var(--muted)}
.mission-state.completed{color:#b8d9b8;border-color:rgba(111,155,111,.45);background:rgba(111,155,111,.06)}
.mission-state.failed{color:#dfa096;border-color:rgba(183,90,76,.42);background:rgba(183,90,76,.05)}
.mission-state.discarded{color:#aaa39a;border-color:rgba(170,163,154,.28)}
.mission-card[data-status="completed"]{border-color:rgba(111,155,111,.38)}
.mission-card[data-status="failed"]{border-color:rgba(183,90,76,.34)}
.force-lock.acquired{color:#b8d9b8;border-color:rgba(111,155,111,.5)}
.force-state-line{
  margin-top:8px;padding-top:8px;border-top:1px solid var(--line);
  color:var(--muted);font-size:.72rem;line-height:1.4
}
.force-state-line strong{color:#d9d1c2}
.force-state-line .available{color:#b8d9b8}
.force-state-line .used{color:#e3bd7a}
.force-state-line .destroyed,.force-state-line .retired{color:#dfa096}
.state-sync-panel{
  margin-top:28px;border:1px solid var(--line);border-radius:16px;padding:18px;
  display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:rgba(255,255,255,.015)
}
.state-sync-panel h3{margin:5px 0 7px}
.state-sync-panel p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45;max-width:780px}
.state-sync-panel code{color:var(--gold)}
.state-source{margin-top:10px;font-size:.76rem;color:var(--muted)}
.state-source strong{color:#d8cfbf}
.state-sync-actions{display:flex;gap:8px;flex-wrap:wrap}
.state-sync-actions button,.state-file-button{
  border:1px solid var(--line);border-radius:999px;padding:9px 12px;
  background:rgba(255,255,255,.018);color:var(--text);cursor:pointer;font-size:.78rem
}
.state-file-button input{display:none}
@media(max-width:760px){.state-sync-panel{grid-template-columns:1fr}}
