/* DOXA Explicadores — reusable learning layout */
.explainer-hero {
  position: relative;
  overflow: hidden;
  background: #111;
  color: #fff;
  padding: 148px 0 84px;
}
.explainer-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 78% 24%, rgba(209,36,42,.18), transparent 31%),
    linear-gradient(120deg, rgba(255,255,255,.02), transparent 45%);
  pointer-events: none;
}
.explainer-hero .container { position: relative; z-index: 1; }
.explainer-hero-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:62px; align-items:center; }
.explainer-kicker { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:26px; }
.explainer-kicker span {
  padding:7px 10px; border:1px solid rgba(255,255,255,.16); border-radius:999px;
  color:rgba(255,255,255,.62); font-size:.66rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase;
}
.explainer-hero h1 { font-size:clamp(4.3rem,8vw,8.5rem); max-width:900px; }
.explainer-hero .lede { max-width:720px; margin:24px 0 0; color:rgba(255,255,255,.68); font-size:1.15rem; line-height:1.75; }
.explainer-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.explainer-hero-meta { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:28px; color:rgba(255,255,255,.42); font-size:.8rem; }

.math-stage {
  min-height:470px; border:1px solid rgba(255,255,255,.11); border-radius:28px; padding:32px;
  background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.012)); position:relative; overflow:hidden;
  box-shadow:0 34px 100px rgba(0,0,0,.32);
}
.math-stage::before {
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:48px 48px; mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 95%);
}
.math-stage > * { position:relative; z-index:1; }
.math-stage-label { color:#ff686d; font-size:.68rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.math-equation-hero { margin:48px 0 36px; font-size:clamp(2rem,4.2vw,4.2rem); line-height:1.2; font-weight:720; letter-spacing:-.04em; }
.math-equation-hero .lambda { color:#ff5158; }
.math-parts { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:34px; }
.math-parts div { border-top:1px solid rgba(255,255,255,.12); padding-top:15px; }
.math-parts b { display:block; font-size:.88rem; }
.math-parts small { color:rgba(255,255,255,.45); line-height:1.5; }

.lesson-progress { background:#fff; border-bottom:1px solid var(--line); position:sticky; top:84px; z-index:20; }
.lesson-progress .container { display:flex; overflow:auto; scrollbar-width:none; }
.lesson-progress .container::-webkit-scrollbar { display:none; }
.lesson-progress a { flex:0 0 auto; padding:17px 16px; color:#7a746f; font-size:.76rem; font-weight:750; border-bottom:2px solid transparent; }
.lesson-progress a:hover { color:var(--doxa-red); border-color:var(--doxa-red); }

.lesson-section { scroll-margin-top:145px; }
.lesson-intro { display:grid; grid-template-columns:.82fr 1.18fr; gap:70px; align-items:start; }
.lesson-number { color:var(--doxa-red); font-weight:900; font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; }
.lesson-intro h2 { margin-top:12px; font-size:clamp(3.1rem,6vw,6.1rem); }
.lesson-intro-copy { color:#57514d; line-height:1.85; font-size:1.05rem; }
.lesson-intro-copy .lead { font-size:1.28rem !important; color:#252220 !important; }

.budget-lab { margin-top:46px; display:grid; grid-template-columns:.86fr 1.14fr; border:1px solid var(--line); border-radius:25px; overflow:hidden; background:#fff; box-shadow:0 20px 60px rgba(0,0,0,.06); }
.budget-controls { padding:32px; border-right:1px solid var(--line); }
.lab-kicker { color:var(--doxa-red); font-size:.68rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.budget-controls h3 { font-size:1.55rem; margin:12px 0 8px; }
.budget-controls > p { margin:0 0 25px; color:var(--muted); line-height:1.65; }
.control-row { margin:22px 0; }
.control-row label { display:flex; justify-content:space-between; gap:16px; font-size:.82rem; font-weight:800; margin-bottom:9px; }
.control-row label output { color:var(--doxa-red); }
.control-row input[type="range"] { width:100%; accent-color:var(--doxa-red); }
.control-help { color:#938c86; font-size:.72rem; margin-top:6px; line-height:1.45; }
.lab-kpis { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:24px; }
.lab-kpi { background:#f6f3ed; border-radius:14px; padding:14px; }
.lab-kpi small { display:block; color:#8a837e; font-size:.67rem; }
.lab-kpi strong { display:block; margin-top:4px; font-size:1.25rem; }
.lab-result { margin-top:16px; padding:15px 16px; border-left:3px solid var(--doxa-red); background:#fbf5f3; color:#5a504c; font-size:.82rem; line-height:1.55; }
.budget-visual { padding:26px; min-width:0; background:linear-gradient(180deg,#fbfaf7,#f4f0e9); }
.budget-visual-header { display:flex; justify-content:space-between; gap:16px; align-items:start; margin-bottom:8px; }
.budget-visual-header strong { font-size:1rem; }
.budget-legend { display:flex; flex-wrap:wrap; gap:12px; color:#7a746f; font-size:.68rem; }
.legend-dot { display:inline-flex; align-items:center; gap:6px; }
.legend-dot i { width:8px; height:8px; border-radius:50%; background:#111; }
.legend-dot.red i { background:var(--doxa-red); }
#budget-chart { width:100%; height:auto; display:block; min-height:390px; }
.chart-axis { stroke:#8e8781; stroke-width:1; }
.chart-gridline { stroke:rgba(18,18,18,.08); stroke-width:1; }
.chart-budget { stroke:#1c1b1a; stroke-width:2.5; fill:none; }
.chart-curve { stroke:var(--doxa-red); stroke-width:2.7; fill:none; }
.chart-current { fill:#151515; stroke:#fff; stroke-width:3; }
.chart-optimum { fill:var(--doxa-red); stroke:#fff; stroke-width:3; }
.chart-label { fill:#736d68; font-size:12px; }

.lesson-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:42px; }
.lesson-card { background:#fff; border:1px solid var(--line); border-radius:18px; padding:24px; }
.lesson-card span { color:var(--doxa-red); font-size:.7rem; font-weight:900; letter-spacing:.1em; }
.lesson-card h3 { margin:13px 0 8px; font-size:1.16rem; }
.lesson-card p { margin:0; color:var(--muted); line-height:1.65; font-size:.88rem; }

.builder { margin-top:42px; display:grid; grid-template-columns:260px minmax(0,1fr); border:1px solid var(--line); border-radius:24px; overflow:hidden; background:#fff; }
.builder-tabs { background:#131313; color:#fff; padding:18px; display:grid; align-content:start; gap:8px; }
.builder-tabs button { text-align:left; padding:14px; border-radius:12px; border:1px solid transparent; background:transparent; color:rgba(255,255,255,.58); cursor:pointer; }
.builder-tabs button strong { display:block; color:inherit; font-size:.82rem; }
.builder-tabs button small { display:block; margin-top:4px; color:inherit; opacity:.65; }
.builder-tabs button.active { background:#221415; border-color:rgba(209,36,42,.35); color:#fff; }
.builder-stage { padding:36px; min-width:0; }
.builder-stage .step-label { color:var(--doxa-red); font-size:.68rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.builder-stage h3 { font-size:1.8rem; margin:12px 0 10px; }
.builder-stage p { color:var(--muted); line-height:1.7; }
.formula-box { margin:24px 0; padding:28px; border:1px solid var(--line); border-radius:18px; background:#f7f4ee; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.5rem,3vw,2.6rem); overflow:auto; white-space:nowrap; }
.formula-explain { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.formula-explain div { padding:14px; background:#faf9f6; border-radius:12px; }
.formula-explain b { display:block; font-size:.78rem; }
.formula-explain small { color:#877f79; }

.lambda-panel { display:grid; grid-template-columns:1fr .9fr; gap:16px; margin-top:36px; }
.lambda-main, .lambda-side { border-radius:22px; padding:30px; }
.lambda-main { background:#121212; color:#fff; }
.lambda-main .big-lambda { font-family:Georgia,serif; font-size:6rem; color:#ff565c; line-height:.9; }
.lambda-main p { color:rgba(255,255,255,.64); line-height:1.75; }
.lambda-side { background:#fff; border:1px solid var(--line); }
.lambda-side strong { display:block; font-size:2rem; margin:8px 0; }
.lambda-side p { color:var(--muted); line-height:1.6; }

.method-compare { display:grid; grid-template-columns:1fr 80px 1fr; gap:18px; align-items:stretch; margin-top:38px; }
.method-card { background:#fff; border:1px solid var(--line); border-radius:20px; padding:28px; }
.method-card h3 { margin:0 0 16px; font-size:1.4rem; }
.method-card .mini-formula { padding:18px; background:#f6f2ec; border-radius:13px; font-family:Georgia,serif; font-size:1.3rem; margin:17px 0; overflow:auto; }
.method-card p { color:var(--muted); line-height:1.65; }
.method-equals { display:grid; place-items:center; font-size:2.4rem; color:#9a928c; font-family:Georgia,serif; }

.caution-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:36px; }
.caution-card { background:#fff; border:1px solid var(--line); border-radius:18px; padding:24px; }
.caution-card strong { display:block; font-size:1.05rem; margin-bottom:8px; }
.caution-card p { margin:0; color:var(--muted); line-height:1.65; font-size:.88rem; }
.caution-card .badge { display:inline-flex; margin-bottom:15px; padding:6px 8px; border-radius:999px; background:rgba(209,36,42,.08); color:var(--doxa-red); font-size:.65rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }

.practice-shell { margin-top:40px; display:grid; grid-template-columns:1fr .9fr; gap:0; border:1px solid rgba(255,255,255,.12); border-radius:24px; overflow:hidden; background:#141414; color:#fff; }
.practice-question { padding:34px; }
.practice-question .equation { margin:24px 0; padding:22px; border:1px solid rgba(255,255,255,.1); border-radius:16px; font-family:Georgia,serif; font-size:1.6rem; background:rgba(255,255,255,.035); }
.practice-inputs { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.practice-inputs label { display:grid; gap:7px; color:rgba(255,255,255,.58); font-size:.75rem; }
.practice-inputs input { min-width:0; width:100%; padding:13px 14px; border-radius:10px; border:1px solid rgba(255,255,255,.16); background:#0d0d0d; color:#fff; font-size:1rem; }
.practice-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; }
.practice-actions button { padding:11px 14px; border-radius:999px; cursor:pointer; font-weight:800; }
.practice-check { border:0; background:var(--doxa-red); color:#fff; }
.practice-secondary { border:1px solid rgba(255,255,255,.16); background:transparent; color:#fff; }
.practice-feedback { margin-top:16px; min-height:52px; padding:13px 15px; border-radius:12px; background:rgba(255,255,255,.045); color:rgba(255,255,255,.68); line-height:1.5; }
.practice-side { padding:34px; border-left:1px solid rgba(255,255,255,.1); background:#0f0f0f; }
.practice-side h3 { margin-top:8px; }
.practice-side p { color:rgba(255,255,255,.58); line-height:1.65; }
.practice-side ol { color:rgba(255,255,255,.66); padding-left:19px; line-height:1.8; }

.derivative-tool { margin-top:40px; display:grid; grid-template-columns:.72fr 1.28fr; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:#fff; }
.derivative-menu { padding:25px; border-right:1px solid var(--line); background:#f7f4ee; }
.derivative-menu label { display:block; font-size:.74rem; font-weight:850; margin-bottom:9px; }
.derivative-menu select { width:100%; padding:13px; border:1px solid var(--line); border-radius:10px; background:#fff; font:inherit; }
.derivative-stage { padding:30px; }
.derivative-stage .rule-name { color:var(--doxa-red); font-weight:900; font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; }
.derivative-stage .rule-formula { font-family:Georgia,serif; font-size:clamp(1.5rem,3vw,2.3rem); margin:16px 0; }
.derivative-stage .rule-example { color:var(--muted); line-height:1.7; }

.version-timeline { display:grid; grid-template-columns:1fr 74px 1fr; gap:14px; align-items:center; margin-top:38px; }
.version-card { border:1px solid var(--line); background:#fff; border-radius:18px; padding:24px; }
.version-card b { display:block; color:var(--doxa-red); font-size:2rem; }
.version-card strong { display:block; margin:8px 0; }
.version-card p { color:var(--muted); font-size:.88rem; line-height:1.6; }
.version-arrow { text-align:center; font-size:2rem; color:#a49c96; }

.explainer-archive-card { display:grid; grid-template-columns:.84fr 1.16fr; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:#fff; }
.explainer-archive-visual { min-height:360px; background:#141414; color:#fff; padding:34px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.explainer-archive-visual::after { content:"λ"; position:absolute; right:-18px; bottom:-58px; font-family:Georgia,serif; font-size:17rem; color:rgba(209,36,42,.18); line-height:1; }
.explainer-archive-visual .equation { font-family:Georgia,serif; font-size:2.2rem; line-height:1.35; position:relative; z-index:1; }
.explainer-archive-copy { padding:38px; display:flex; flex-direction:column; justify-content:center; }
.explainer-archive-copy h3 { font-size:clamp(2.4rem,4vw,4.4rem); margin:16px 0; }
.explainer-archive-copy p { color:var(--muted); line-height:1.7; }
.explainer-archive-meta { display:flex; flex-wrap:wrap; gap:12px 18px; color:#8b837d; font-size:.78rem; margin:16px 0 26px; }

.home-explainer { display:grid; grid-template-columns:.9fr 1.1fr; min-height:470px; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:#fff; }
.home-explainer-visual { background:#121212; color:#fff; padding:36px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.home-explainer-visual::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size:42px 42px; }
.home-explainer-visual > * { position:relative; z-index:1; }
.home-explainer-visual .big-lambda { font-family:Georgia,serif; font-size:10rem; line-height:.7; color:#e43940; }
.home-explainer-visual .equation { font-family:Georgia,serif; font-size:1.55rem; line-height:1.5; }
.home-explainer-copy { padding:46px; display:flex; flex-direction:column; justify-content:center; }
.home-explainer-copy h3 { font-size:clamp(2.5rem,4vw,4.6rem); margin:18px 0; }
.home-explainer-copy p { color:var(--muted); line-height:1.75; }
.home-explainer-copy .research-details { color:#8e8680; }

@media (max-width: 980px) {
  .explainer-hero-grid, .lesson-intro, .budget-lab, .lambda-panel, .practice-shell, .derivative-tool, .home-explainer, .explainer-archive-card { grid-template-columns:1fr; }
  .math-stage { min-height:390px; }
  .budget-controls, .derivative-menu { border-right:0; border-bottom:1px solid var(--line); }
  .practice-side { border-left:0; border-top:1px solid rgba(255,255,255,.1); }
  .lesson-card-grid { grid-template-columns:1fr; }
  .builder { grid-template-columns:1fr; }
  .builder-tabs { grid-template-columns:repeat(5,minmax(130px,1fr)); overflow:auto; }
  .method-compare { grid-template-columns:1fr; }
  .method-equals { min-height:50px; }
  .caution-grid { grid-template-columns:1fr; }
  .version-timeline { grid-template-columns:1fr; }
  .version-arrow { transform:rotate(90deg); }
}
@media (max-width:640px) {
  .explainer-hero { padding-top:128px; }
  .explainer-hero h1 { font-size:clamp(3.6rem,18vw,5.5rem); }
  .math-stage { padding:22px; min-height:330px; }
  .math-equation-hero { margin:34px 0 28px; }
  .math-parts, .formula-explain { grid-template-columns:1fr; }
  .lesson-progress { top:75px; }
  .budget-controls, .budget-visual, .builder-stage, .practice-question, .practice-side, .derivative-stage, .home-explainer-copy, .explainer-archive-copy { padding:24px; }
  #budget-chart { min-height:300px; }
  .lab-kpis, .practice-inputs { grid-template-columns:1fr; }
  .builder-tabs { padding:10px; }
  .builder-tabs button { padding:11px; }
  .formula-box { padding:20px; font-size:1.35rem; }
  .home-explainer-visual, .explainer-archive-visual { min-height:300px; }
}

/* E001 editorial artwork */
.home-explainer-photo,
.explainer-archive-photo {
  padding:0;
  background:#111;
  isolation:isolate;
}
.home-explainer-photo::before,
.explainer-archive-photo::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(9,9,9,.03) 45%,rgba(9,9,9,.56) 100%);
  pointer-events:none;
}
.home-explainer-photo::after,
.explainer-archive-photo::after { content:none; }
.home-explainer-photo img,
.explainer-archive-photo img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}
.home-explainer-photo-hint,
.archive-photo-hint {
  position:absolute;
  z-index:2;
  left:26px;
  bottom:24px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(12,12,12,.72);
  backdrop-filter:blur(10px);
  color:#fff;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.explainer-archive-photo .tag {
  position:absolute;
  z-index:2;
  left:24px;
  top:24px;
  background:rgba(12,12,12,.70);
  backdrop-filter:blur(10px);
}
@media (hover:hover) and (pointer:fine) {
  .home-explainer-photo:hover img,
  .explainer-archive-photo:hover img { transform:scale(1.035); filter:saturate(1.04) contrast(1.02); }
}
@media (prefers-reduced-motion: reduce) {
  .home-explainer-photo img,
  .explainer-archive-photo img { transition:none; }
}
@media (max-width:980px) {
  .home-explainer-photo { min-height:520px; }
  .explainer-archive-photo { min-height:460px; }
}
@media (max-width:640px) {
  .home-explainer-photo { min-height:420px; }
  .explainer-archive-photo { min-height:390px; }
  .home-explainer-photo-hint,.archive-photo-hint { left:18px; bottom:18px; }
}
