/* ============================================================
   THE 48 LAWS OF POWER — concept (Strategy · Modern)
   Theme: deep crimson (#7A1B2E) · antique gold (#C5A572) ·
   warm cream (#F6F1E7) · sumi ink (#1A1411). Dark-mode-safe.
   ============================================================ */
.page-48-laws-of-power {
    --pw-paper:#F6F1E7; --pw-paper-2:#EDE3CF;
    --pw-crimson:#7A1B2E; --pw-crimson-d:#5C1422;
    --pw-gold:#C5A572; --pw-gold-d:#A3854F;
    --pw-ink:#1A1411; --pw-mute:#6F6863;
    --c-gold:var(--pw-gold); --c-bg:var(--pw-paper); --c-ink:var(--pw-ink); --c-mute:var(--pw-mute); --c-accent:var(--pw-crimson);
    background:var(--pw-paper); color:var(--pw-ink);
}
[data-theme="dark"] .page-48-laws-of-power, [data-theme="dark"].page-48-laws-of-power {
    --pw-paper:#120D0A; --pw-paper-2:#1B1411; --pw-ink:#EBE2D2; --pw-mute:#9F9890;
    --pw-crimson:#B83E55; --pw-crimson-d:#D45A72; --pw-gold:#D7B97D; --pw-gold-d:#E6CB94;
    --c-bg:#120D0A; --c-ink:#EBE2D2; --c-mute:#9F9890; background:#120D0A; color:#EBE2D2;
}

.pw-section { padding:var(--s-10,4rem) 0; position:relative; }
.pw-section-head { max-width:820px; margin:0 auto var(--s-7,2.5rem); text-align:center; }
.pw-eyebrow { font-family:var(--f-mono,monospace); font-size:0.78rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--pw-crimson-d); margin-bottom:var(--s-3,0.75rem); }
.pw-h2 { font-family:var(--f-serif,serif); font-size:clamp(1.7rem,3.2vw,2.6rem); line-height:1.22; color:var(--pw-ink); margin-bottom:var(--s-4,1rem); font-weight:600; }
.pw-h2 em { font-style:italic; color:var(--pw-crimson-d); font-weight:500; }
.pw-sub { font-size:1.05rem; line-height:1.7; color:var(--pw-mute); max-width:70ch; margin:0 auto; }
.pw-sub em { color:var(--pw-crimson-d); font-style:italic; } .pw-sub b { color:var(--pw-ink); }
.pw-data { font-family:var(--f-mono,monospace); font-feature-settings:"tnum"; }

.pw-field { display:block; margin-bottom:var(--s-3,0.75rem); }
.pw-field-label { display:block; font-size:0.92rem; color:var(--pw-ink); font-weight:500; margin-bottom:4px; }
.pw-input, .pw-textarea, .pw-select {
    width:100%; padding:0.65rem 0.85rem; border:1px solid rgba(122,27,46,0.3); border-radius:3px;
    background:var(--pw-paper); color:var(--pw-ink); font-family:inherit; font-size:1rem; box-sizing:border-box;
}
.pw-textarea { resize:vertical; line-height:1.55; font-family:var(--f-serif,serif); font-size:1.05rem; }
.pw-input:focus, .pw-textarea:focus, .pw-select:focus { outline:none; border-color:var(--pw-crimson); }
[data-theme="dark"] .pw-input, [data-theme="dark"] .pw-textarea, [data-theme="dark"] .pw-select { background:#0B0806; color:#EBE2D2; }
.pw-slider { appearance:none; width:100%; height:6px; border-radius:3px; outline:none; background:rgba(122,27,46,0.22); }
.pw-slider::-webkit-slider-thumb { appearance:none; width:18px; height:18px; border-radius:50%; background:var(--pw-crimson); border:2px solid var(--pw-paper); cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,.25); }
.pw-slider::-moz-range-thumb { width:18px; height:18px; border-radius:50%; background:var(--pw-crimson); border:2px solid var(--pw-paper); cursor:pointer; }

.pw-result { max-width:800px; margin:var(--s-5,1.25rem) auto 0; padding:var(--s-5,1.25rem); background:var(--pw-paper-2); border-left:3px solid var(--pw-gold); border-radius:3px; text-align:center; }
[data-theme="dark"] .pw-result { background:#1B1411; }
.pw-result-tag { font-family:var(--f-mono,monospace); font-size:0.82rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--pw-gold-d); margin-bottom:var(--s-2,0.5rem); }
.pw-result-synth { font-family:var(--f-serif,serif); font-style:italic; font-size:1.1rem; line-height:1.65; color:var(--pw-ink); max-width:64ch; margin:0 auto; }

.pw-form { max-width:1000px; margin:0 auto; background:var(--pw-paper); border:1px solid rgba(122,27,46,0.28); padding:var(--s-5,1.25rem); border-radius:3px; }
[data-theme="dark"] .pw-form { background:#15100D; }

.page-48-laws-of-power .fade-up { opacity:0; transform:translateY(16px); animation:pwFade 0.7s ease-out forwards; }
.page-48-laws-of-power .fade-up.delay-1{animation-delay:.12s;} .page-48-laws-of-power .fade-up.delay-2{animation-delay:.24s;}
.page-48-laws-of-power .fade-up.delay-3{animation-delay:.36s;} .page-48-laws-of-power .fade-up.delay-4{animation-delay:.48s;}
@keyframes pwFade { to { opacity:1; transform:translateY(0); } }

/* hero */
.pw-hero { position:relative; min-height:78vh; padding:var(--s-12,5rem) 0 var(--s-10,4rem); background:linear-gradient(180deg,var(--pw-paper) 0%,var(--pw-paper-2) 100%); overflow:hidden; display:flex; align-items:center; }
[data-theme="dark"] .pw-hero { background:linear-gradient(180deg,#120D0A 0%,#1B1411 100%); }
.pw-hero-canvas { position:absolute; inset:0; pointer-events:none; }
.pw-mark { position:absolute; right:4%; top:50%; transform:translateY(-50%); font-family:var(--f-serif,serif); font-size:clamp(220px,38vw,520px); font-weight:700; color:var(--pw-crimson); opacity:0.07; line-height:1; user-select:none; letter-spacing:-0.05em; font-style:italic; }
[data-theme="dark"] .pw-mark { opacity:0.12; }
.pw-hero-content { position:relative; z-index:1; max-width:720px; }
.pw-hero-title { font-family:var(--f-serif,serif); font-size:clamp(2.3rem,5.2vw,4rem); line-height:1.1; color:var(--pw-ink); margin:var(--s-4,1rem) 0; font-weight:600; }
.pw-hero-title span, .pw-hero-title em { display:block; }
.pw-hero-title em { font-style:italic; color:var(--pw-crimson-d); font-weight:500; padding-left:0.8em; }
.pw-hero-sub, .pw-hero-promise { font-size:1.08rem; line-height:1.78; color:var(--pw-mute); margin-bottom:var(--s-4,1rem); max-width:62ch; }
.pw-hero-sub b { color:var(--pw-ink); font-weight:700; } .pw-hero-sub em, .pw-hero-promise em { color:var(--pw-crimson-d); font-style:italic; }
.pw-hero-cta { display:flex; flex-wrap:wrap; gap:var(--s-3,0.75rem); margin-top:var(--s-6,1.5rem); }

/* alternating sections */
.pw-today, .pw-court, .pw-restraint, .pw-alliance, .pw-voices { background:var(--pw-paper-2); }
[data-theme="dark"] .pw-today, [data-theme="dark"] .pw-court, [data-theme="dark"] .pw-restraint, [data-theme="dark"] .pw-alliance { background:#1B1411; }

/* law of the day */
.pw-today-principle { font-family:var(--f-serif,serif); font-style:italic; font-size:1.18rem; color:var(--pw-ink); max-width:62ch; }
.pw-today-cta { text-align:center; display:flex; flex-direction:column; align-items:center; gap:var(--s-3,0.75rem); }
.pw-streak { margin-top:var(--s-2,0.5rem); font-family:var(--f-mono,monospace); font-size:0.96rem; color:var(--pw-gold-d); font-weight:500; }

/* all 48 laws grid */
.pw-laws-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:var(--s-2,0.5rem); margin-top:var(--s-4,1rem); }
.pw-law-card { display:grid; grid-template-columns:auto 1fr auto; gap:var(--s-3,0.75rem); align-items:center; padding:var(--s-3,0.75rem); background:var(--pw-paper-2); border:1px solid rgba(122,27,46,0.18); border-left:3px solid var(--pw-crimson); border-radius:3px; text-decoration:none; color:var(--pw-ink); transition:all .15s; }
[data-theme="dark"] .pw-law-card { background:#17110D; }
.pw-law-card:hover { transform:translateY(-1px); border-left-color:var(--pw-gold); background:rgba(122,27,46,0.06); }
.pw-law-num { font-family:var(--f-serif,serif); font-size:1.4rem; font-weight:700; color:var(--pw-crimson); min-width:24px; font-style:italic; }
.pw-law-card .pw-law-title { font-family:var(--f-serif,serif); font-size:0.98rem; line-height:1.35; color:var(--pw-ink); display:block; }
.pw-law-kw { font-family:var(--f-mono,monospace); font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--pw-gold-d); }

/* audit dim sliders */
.pw-dim-grid { display:flex; flex-direction:column; gap:var(--s-3,0.75rem); margin-bottom:var(--s-3,0.75rem); }
.pw-dim-row { display:grid; grid-template-columns:200px 1fr; gap:var(--s-3,0.75rem); align-items:center; }
@media (max-width:680px){ .pw-dim-row { grid-template-columns:1fr; } }
.pw-dim-label { font-family:var(--f-serif,serif); font-size:1.05rem; color:var(--pw-ink); }
.pw-dim-track { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:var(--s-2,0.5rem); }
.pw-dim-end { font-family:var(--f-mono,monospace); font-size:0.7rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--pw-mute); }

/* court + alliance lists */
.pw-court-list, .pw-alliance-list { display:flex; flex-direction:column; gap:var(--s-3,0.75rem); margin-bottom:var(--s-3,0.75rem); }
.pw-court-row, .pw-alliance-row { display:grid; grid-template-columns:1.4fr 1fr; gap:var(--s-3,0.75rem); align-items:center; }
@media (max-width:600px){ .pw-court-row, .pw-alliance-row { grid-template-columns:1fr; } }

/* pills (lens + intent) */
.pw-mini-q { font-family:var(--f-mono,monospace); font-size:0.84rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--pw-crimson-d); margin:var(--s-3,0.75rem) 0 var(--s-2,0.5rem); }
.pw-pill-row { display:flex; flex-wrap:wrap; gap:var(--s-2,0.5rem); margin-bottom:var(--s-4,1rem); }
.pw-pill { display:inline-flex; align-items:center; gap:8px; padding:0.5rem 0.9rem; background:var(--pw-paper-2); border:1px solid rgba(122,27,46,0.28); border-radius:999px; cursor:pointer; font-size:0.9rem; color:var(--pw-ink); transition:all .15s; }
[data-theme="dark"] .pw-pill { background:#0E0A07; }
.pw-pill input { position:absolute; opacity:0; pointer-events:none; }
.pw-pill-mark { width:12px; height:12px; border-radius:50%; border:2px solid var(--pw-mute); background:var(--pw-paper); position:relative; }
.pw-pill input:checked ~ .pw-pill-mark { border-color:var(--pw-crimson); }
.pw-pill input:checked ~ .pw-pill-mark::after { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:5px; height:5px; background:var(--pw-crimson); border-radius:50%; }
.pw-pill:has(input:checked) { background:rgba(122,27,46,0.12); border-color:var(--pw-crimson); }

/* situation laws list */
.pw-law-list { list-style:none; margin:0 0 var(--s-3,0.75rem); padding:0; display:flex; flex-direction:column; gap:var(--s-2,0.5rem); }
.pw-law-list li { position:relative; padding:var(--s-3,0.75rem); background:rgba(197,165,114,0.1); border-left:3px solid var(--pw-gold); border-radius:3px; }
.pw-law-list .pw-li-num { font-family:var(--f-serif,serif); font-style:italic; font-weight:700; color:var(--pw-crimson); margin-right:6px; }
.pw-law-list .pw-li-title { font-family:var(--f-serif,serif); font-weight:600; }
.pw-law-list .pw-li-principle { display:block; margin-top:4px; font-size:0.95rem; color:var(--pw-mute); }
.pw-law-list a { color:inherit; text-decoration:none; }
.pw-law-list a:hover .pw-li-title { color:var(--pw-crimson-d); }

/* reputation rows + aligned checkbox */
.pw-rep-list { display:flex; flex-direction:column; gap:var(--s-3,0.75rem); margin-bottom:var(--s-3,0.75rem); }
.pw-rep-row { display:grid; grid-template-columns:1fr auto; gap:var(--s-3,0.75rem); align-items:center; }
@media (max-width:600px){ .pw-rep-row { grid-template-columns:1fr; } }
.pw-aligned { display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-size:0.86rem; color:var(--pw-mute); white-space:nowrap; }
.pw-aligned input { position:absolute; opacity:0; pointer-events:none; }
.pw-aligned-mark { width:18px; height:18px; border:2px solid var(--pw-mute); border-radius:3px; background:var(--pw-paper); position:relative; transition:all .15s; }
.pw-aligned input:checked ~ .pw-aligned-mark { border-color:var(--pw-gold); background:var(--pw-gold); }
.pw-aligned input:checked ~ .pw-aligned-mark::after { content:''; position:absolute; top:1px; left:5px; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.pw-aligned input:checked ~ .pw-aligned-text { color:var(--pw-gold-d); }

/* restraint toggle */
.pw-restraint-list { display:flex; flex-direction:column; gap:var(--s-4,1rem); margin-bottom:var(--s-3,0.75rem); }
.pw-restraint-row { padding:var(--s-3,0.75rem) 0; border-bottom:1px dashed rgba(122,27,46,0.18); }
.pw-restraint-row:last-of-type { border-bottom:none; }
.pw-restraint-q { font-family:var(--f-serif,serif); font-size:1.05rem; color:var(--pw-ink); margin:0 0 var(--s-2,0.5rem); }
.pw-toggle { display:flex; gap:4px; background:var(--pw-paper-2); padding:4px; border-radius:3px; }
[data-theme="dark"] .pw-toggle { background:#0B0806; }
.pw-opt { flex:1; display:flex; align-items:center; justify-content:center; padding:0.5rem; border-radius:2px; cursor:pointer; font-size:0.84rem; color:var(--pw-mute); transition:all .15s; text-align:center; }
.pw-opt input { position:absolute; opacity:0; pointer-events:none; }
.pw-opt:has(input:checked) { background:var(--pw-crimson); color:#fff; font-weight:500; }
.pw-opt-react:has(input:checked) { background:var(--pw-gold-d); color:#1A1411; }

/* alliance risks */
.pw-risk-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--s-2,0.5rem); }
.pw-risk-list li { font-family:var(--f-serif,serif); font-style:italic; font-size:1rem; line-height:1.55; color:var(--pw-ink); padding-left:1rem; border-left:2px solid var(--pw-crimson); }

/* voices */
.pw-voices { background:linear-gradient(180deg,#3A0E18 0%,#1F0810 100%); color:#F3E1D2; }
.pw-voices .pw-h2 { color:#F3E1D2; } .pw-voices .pw-h2 em { color:#D7B97D; }
.pw-voices .pw-eyebrow { color:#D7B97D; } .pw-voices .pw-sub { color:rgba(243,225,210,0.78); } .pw-voices .pw-sub em { color:#D7B97D; }
.pw-quote-card { background:rgba(243,225,210,0.06); border:1px solid rgba(215,185,125,0.3); padding:var(--s-7,2.5rem) var(--s-6,1.5rem); border-radius:3px; text-align:center; max-width:760px; margin:0 auto; }
.pw-quote-mark { font-family:var(--f-serif,serif); font-size:5rem; color:#D7B97D; line-height:1; margin-bottom:var(--s-2,0.5rem); opacity:0.7; }
.pw-quote-text { font-family:var(--f-serif,serif); font-size:clamp(1.3rem,2.6vw,1.8rem); line-height:1.5; color:#F3E1D2; margin-bottom:var(--s-4,1rem); font-style:italic; }
.pw-quote-cite { display:flex; flex-direction:column; gap:4px; margin-bottom:var(--s-4,1rem); }
.pw-quote-author { font-family:var(--f-mono,monospace); font-size:0.92rem; color:#D7B97D; letter-spacing:0.1em; text-transform:uppercase; }
.pw-quote-source { font-size:0.84rem; color:rgba(243,225,210,0.55); font-style:italic; }
.pw-quote-actions { display:flex; justify-content:center; gap:var(--s-3,0.75rem); flex-wrap:wrap; }
.pw-quote-fav { background:transparent; border:1px solid rgba(215,185,125,0.4); color:#F3E1D2; padding:0.5rem 1rem; border-radius:3px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-size:0.88rem; transition:all .15s; }
.pw-quote-fav:hover { border-color:#D7B97D; color:#D7B97D; }
.pw-quote-fav.is-favorited { background:#D7B97D; color:#1F0810; border-color:#D7B97D; }

/* final */
.pw-final { background:var(--pw-paper); text-align:center; padding:var(--s-12,5rem) 0; }
[data-theme="dark"] .pw-final { background:#120D0A; }
.pw-final-mark { font-family:var(--f-serif,serif); font-size:clamp(4rem,9vw,6rem); font-weight:700; font-style:italic; color:var(--pw-crimson); line-height:1; margin-bottom:var(--s-4,1rem); opacity:0.85; letter-spacing:-0.05em; }
.pw-final-quote { font-family:var(--f-serif,serif); font-size:clamp(1.4rem,2.8vw,2rem); line-height:1.45; color:var(--pw-ink); font-style:italic; max-width:820px; margin:0 auto var(--s-3,0.75rem); font-weight:500; }
.pw-final-quote em { color:var(--pw-crimson-d); }
.pw-final-cite { font-family:var(--f-mono,monospace); font-size:0.92rem; color:var(--pw-mute); letter-spacing:0.08em; margin-bottom:var(--s-5,1.25rem); }

/* ============================================================
   PER-LAW SUB-PAGE (/48-laws-of-power/<slug>)
   ============================================================ */
.pw-law-hero { padding:var(--s-10,4rem) 0 var(--s-6,1.5rem); background:linear-gradient(180deg,var(--pw-paper-2) 0%,var(--pw-paper) 100%); }
[data-theme="dark"] .pw-law-hero { background:linear-gradient(180deg,#1B1411 0%,#120D0A 100%); }
.pw-back { color:var(--pw-crimson-d); text-decoration:none; border-bottom:1px solid rgba(122,27,46,0.25); }
.pw-back:hover { border-bottom-color:var(--pw-crimson-d); }
.page-48-laws-of-power h1.pw-law-title { font-family:var(--f-serif,serif); font-size:clamp(2rem,4.4vw,3.4rem); line-height:1.12; color:var(--pw-ink); font-weight:600; margin:var(--s-4,1rem) 0 var(--s-2,0.5rem); }
.pw-law-num-big { font-family:var(--f-serif,serif); font-style:italic; color:var(--pw-crimson); font-weight:700; margin-right:0.4rem; }
.pw-law-keyword { font-family:var(--f-mono,monospace); font-size:0.78rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--pw-gold-d); margin-bottom:0; }

.pw-law-body { padding:var(--s-7,2.5rem) 0 var(--s-12,5rem); }
.pw-law-block { margin-bottom:var(--s-7,2.5rem); }
.pw-block-tag { font-family:var(--f-mono,monospace); font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--pw-crimson-d); margin-bottom:var(--s-2,0.5rem); }
.pw-law-principle { font-family:var(--f-serif,serif); font-size:clamp(1.2rem,2.2vw,1.55rem); line-height:1.5; color:var(--pw-ink); font-style:italic; }
.pw-law-text { font-size:1.06rem; line-height:1.78; color:var(--pw-ink); }
.pw-law-defensive { background:rgba(197,165,114,0.1); border-left:3px solid var(--pw-gold); padding:var(--s-5,1.25rem); border-radius:3px; }
.pw-law-defensive .pw-block-tag { color:var(--pw-gold-d); }

.pw-law-nav { display:grid; grid-template-columns:1fr auto 1fr; gap:var(--s-3,0.75rem); margin:var(--s-7,2.5rem) 0 var(--s-4,1rem); padding:var(--s-4,1rem) 0; border-top:1px solid rgba(122,27,46,0.18); border-bottom:1px solid rgba(122,27,46,0.18); }
@media (max-width:640px){ .pw-law-nav { grid-template-columns:1fr; } .pw-nav-hub { text-align:center; } }
.pw-nav-prev, .pw-nav-next, .pw-nav-hub { text-decoration:none; color:var(--pw-ink); display:flex; flex-direction:column; }
.pw-nav-next { text-align:right; }
.pw-nav-hub { align-self:center; font-family:var(--f-mono,monospace); font-size:0.82rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--pw-crimson-d); }
.pw-nav-label { font-family:var(--f-mono,monospace); font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--pw-gold-d); }
.pw-nav-title { font-family:var(--f-serif,serif); font-size:1rem; color:var(--pw-ink); }
.pw-nav-prev:hover .pw-nav-title, .pw-nav-next:hover .pw-nav-title { color:var(--pw-crimson-d); }
.pw-law-cta { display:flex; flex-wrap:wrap; gap:var(--s-3,0.75rem); margin-top:var(--s-5,1.25rem); }
