﻿
@import url('../../fonts/fonts.css');

.iul-framework-wrap {
  --ink: #0f0f0f; --ink-secondary: #4a4a4a; --ink-tertiary: #8a8a8a;
  --paper: #f7f4ef; --paper-dark: #ede9e1; --paper-darker: #e0dbd0;
  --accent: #1a3a5c; --gold: #b8860b; --green: #1a5c3a; --red: #5c1a1a;
  --rule: rgba(15,15,15,0.12); --rule-strong: rgba(15,15,15,0.25);
  font-family:'DM Sans', sans-serif !important; background: transparent !important; color:var(--ink) !important; font-size: 15px; line-height: 1.6; min-height: 100vh;
}
.iul-framework-wrap,
.iul-framework-wrap * { box-sizing: border-box; }
.iul-framework-wrap * { margin: 0; padding: 0; }

.iul-framework-wrap .masthead-outer { border-bottom: 2px solid var(--ink); background: transparent; }
.iul-framework-wrap .masthead { max-width: 100%; margin: 0 auto; padding: 28px 48px 20px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 24px; }
.iul-framework-wrap .masthead-label { font-family:'DM Mono', monospace !important; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color:var(--ink-tertiary) !important; margin-bottom: 6px; }
.iul-framework-wrap .masthead-title { font-family:'Playfair Display', serif !important; font-size: 26px; font-weight: 500; line-height: 1.2; }
.iul-framework-wrap .masthead-title em { font-style: italic; color:var(--accent) !important; }
.iul-framework-wrap .masthead-meta { text-align: right; font-family:'DM Mono', monospace !important; font-size: 10px; color:var(--ink-tertiary) !important; letter-spacing: 0.06em; line-height: 1.8; }

.iul-framework-wrap .market-page { margin: 0 auto; padding: 0 48px 64px; max-width: 100%; }
.iul-framework-wrap .two-col { display: grid; grid-template-columns: 320px 1fr; gap: 0; border-bottom: 1px solid var(--rule-strong); }
.iul-framework-wrap .sidebar { border-right: 1px solid var(--rule-strong); padding: 28px 24px; }
.iul-framework-wrap .main-panel { padding: 28px 32px; }

.section-label { font-family:'DM Mono', monospace !important; font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color:var(--ink-tertiary) !important; border-top: 1px solid var(--rule-strong); padding-top: 10px; margin-bottom: 12px; margin-top: 20px; }
.section-label.first { border-top: none; padding-top: 0; margin-top: 0; }

.slider-group { margin-bottom: 6px; }
.slider-row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5px; }
.slider-name { font-size: 12px; color:var(--ink-secondary) !important; }
.slider-val { font-family:'DM Mono', monospace !important; font-size: 13px; font-weight: 500; color:var(--ink) !important; }
/* Themify override â€” input[type=range] only; --iul-range-pct = blue fill */
.iul-framework-wrap input[type=range] {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 100% !important;
  height: 28px !important;
  margin: 4px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  accent-color: var(--accent) !important;
}
.iul-framework-wrap input[type=range]::-webkit-slider-runnable-track {
  height: 3px !important;
  border-radius: 0 !important;
  background: linear-gradient(to right, var(--accent) 0%, var(--accent) var(--iul-range-pct, 50%), var(--paper-darker) var(--iul-range-pct, 50%), var(--paper-darker) 100%) !important;
  border: none !important;
  box-shadow: none !important;
}
.iul-framework-wrap input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 14px !important;
  height: 14px !important;
  margin-top: -5.5px !important;
  border-radius: 50% !important;
  background: var(--accent) !important;
  border: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
}
.iul-framework-wrap input[type=range]::-webkit-slider-thumb:hover {
  background: #16314e !important;
}
.iul-framework-wrap input[type=range]::-moz-range-track {
  height: 3px !important;
  border-radius: 0 !important;
  background: var(--paper-darker) !important;
  border: none !important;
}
.iul-framework-wrap input[type=range]::-moz-range-progress {
  height: 3px !important;
  border-radius: 0 !important;
  background: var(--accent) !important;
  border: none !important;
}
.iul-framework-wrap input[type=range]::-moz-range-thumb {
  width: 14px !important;
  height: 14px !important;
  border-radius: 50% !important;
  background: var(--accent) !important;
  border: none !important;
  cursor: pointer !important;
}
.iul-framework-wrap input[type=range]::-moz-range-thumb:hover {
  background: #16314e !important;
}
.scale-labels { display: flex; justify-content: space-between; font-family:'DM Mono', monospace !important; font-size: 9px; color:var(--ink-tertiary) !important; margin-top: 3px; }

.scenario-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; margin-bottom: 6px; }
.scenario-btn { background: white; border: 1px solid var(--rule-strong); padding: 10px 6px; cursor: pointer; text-align: center; transition: all 0.15s; font-family:'DM Sans', sans-serif !important; }
.scenario-btn .s-name { font-size: 12px; font-weight: 500; color:var(--ink) !important; display: block; }
.scenario-btn.active-favorable { background: var(--green); border-color:var(--green) !important; }
.scenario-btn.active-favorable .s-name { color:white !important; }
.scenario-btn.active-neutral { background: var(--accent); border-color:var(--accent) !important; }
.scenario-btn.active-neutral .s-name { color:white !important; }
.scenario-btn.active-constrained { background: var(--red); border-color:var(--red) !important; }
.scenario-btn.active-constrained .s-name { color:white !important; }
.scenario-btn:hover:not([class*=active]) { background: var(--paper-dark); }

.derived-box { background: var(--paper-dark); padding: 10px 12px; font-family:'DM Mono', monospace !important; font-size: 10px; line-height: 2.1; margin-bottom: 4px; }
.derived-row { display: flex; justify-content: space-between; }
.derived-label { color:var(--ink-tertiary) !important; }
.derived-val { color:var(--ink) !important; font-weight: 500; }
.derived-val.hi { color:var(--accent) !important; }

.delta-gauge { display: flex; align-items: center; gap: 10px; margin-bottom: 5px; }
.delta-track { flex: 1; height: 5px; background: var(--paper-darker); }
.delta-fill { height: 100%; background: var(--gold); transition: width 0.3s ease; }
.delta-label { font-family:'DM Mono', monospace !important; font-size: 10px; color:var(--ink-tertiary) !important; min-width: 28px; }
.delta-value { font-family:'Playfair Display', serif !important; font-size: 18px; font-weight: 500; color:var(--gold) !important; min-width: 52px; text-align: right; }

.quick-strip { background: var(--accent); padding: 16px 22px; margin-bottom: 22px; }
.qs-main { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 0; margin-bottom: 10px; }
.qs-item { text-align: center; }
.qs-lbl { font-family:'DM Mono', monospace !important; font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color:rgba(255,255,255,0.45) !important; display: block; margin-bottom: 3px; }
.qs-val { font-family:'Playfair Display', serif !important; font-size: 24px; font-weight: 500; color:white !important; display: block; }
.qs-val.accent { color:#d4a017 !important; }
.qs-arrow { font-size: 16px; color:rgba(255,255,255,0.2) !important; padding: 0 6px; font-family:'DM Mono', monospace !important; }
.qs-sentence { font-family:'DM Mono', monospace !important; font-size: 11px; color:rgba(255,255,255,0.5) !important; text-align: center; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.08); letter-spacing: 0.03em; line-height: 1.6; }
.qs-sentence strong { color:rgba(255,255,255,0.85) !important; font-weight: 500; }

.engine-box { background: white; border-left: 3px solid var(--accent); padding: 14px 16px; margin-bottom: 20px; font-family:'DM Mono', monospace !important; font-size: 11px; }
.engine-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-bottom: 10px; }
.engine-step { background: var(--paper-dark); padding: 4px 9px; font-size: 10px; color:var(--ink-secondary) !important; }
.engine-step.hi { background: var(--accent); color:white !important; }
.engine-arrow { color:var(--ink-tertiary) !important; font-size: 11px; }
.engine-values { display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; background: var(--rule); }
.ev-cell { background: var(--paper); padding: 8px 10px; }
.ev-lbl { font-size: 9px; color:var(--ink-tertiary) !important; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 2px; }
.ev-val { font-size: 14px; font-weight: 500; color:var(--ink) !important; }
.ev-val.gold { color:var(--gold) !important; }
.ev-val.accent { color:var(--accent) !important; font-size: 16px; }

.metrics-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 1px; background: var(--rule-strong); border: 1px solid var(--rule-strong); margin-bottom: 22px; }
.metric-cell { background: var(--paper); padding: 14px 16px; }
.metric-cell.ac { background: var(--accent); }
.metric-label { font-family:'DM Mono', monospace !important; font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color:var(--ink-tertiary) !important; margin-bottom: 3px; }
.metric-cell.ac .metric-label { color:rgba(255,255,255,0.55) !important; }
.metric-value { font-family:'Playfair Display', serif !important; font-size: 24px; font-weight: 500; color:var(--ink) !important; line-height: 1; }
.metric-cell.ac .metric-value { color:white !important; }
.metric-sub { font-size: 10px; color:var(--ink-tertiary) !important; margin-top: 3px; font-family:'DM Mono', monospace !important; }
.metric-cell.ac .metric-sub { color:rgba(255,255,255,0.45) !important; }

.chart-title { font-family:'Playfair Display', serif !important; font-size: 14px; font-weight: 500; margin-bottom: 3px; }
.chart-sub { font-size: 11px; color:var(--ink-tertiary) !important; font-family:'DM Mono', monospace !important; margin-bottom: 10px; }
.legend-row { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 10px; font-size: 11px; color:var(--ink-tertiary) !important; }
.legend-item { display: flex; align-items: center; gap: 5px; }
.legend-swatch { width: 12px; height: 3px; display: inline-block; }

.comp-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-bottom: 20px; }
.comp-table th { font-family:'DM Mono', monospace !important; font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color:var(--ink-tertiary) !important; padding: 7px 10px; text-align: left; border-bottom: 2px solid var(--ink); }
.comp-table td { padding: 9px 10px; border-bottom: 1px solid var(--rule); color:var(--ink-secondary) !important; }
.comp-table tr.iul-row td { background: rgba(26,58,92,0.05); font-weight: 500; color:var(--ink) !important; }
.comp-table tr.iul-row td:first-child { border-left: 3px solid var(--accent); }
.comp-table td.num { font-family:'DM Mono', monospace !important; text-align: right; }
.comp-table td.pos { color:var(--green) !important; font-family:'DM Mono', monospace !important; text-align: right; }
.comp-table td.neg { color:var(--red) !important; font-family:'DM Mono', monospace !important; text-align: right; }

.spectrum-wrap { margin-bottom: 20px; }
.spectrum-bar { position: relative; height: 7px; background: linear-gradient(to right, #2a6a9c, #1a5c3a, #b8860b, #c4501a, #8c2a2a); margin: 14px 0 6px; }
.spectrum-marker { position: absolute; top: -6px; transform: translateX(-50%); width: 18px; height: 18px; background: white; border: 2px solid var(--ink); border-radius: 50%; transition: left 0.3s ease; }
.spectrum-iul-label { position: absolute; bottom: -20px; transform: translateX(-50%); font-family:'DM Mono', monospace !important; font-size: 9px; color:var(--ink) !important; white-space: nowrap; transition: left 0.3s ease; }
.spectrum-labels { display: flex; justify-content: space-between; font-family:'DM Mono', monospace !important; font-size: 9px; color:var(--ink-tertiary) !important; margin-top: 28px; }

.era-tabs { display: flex; border-bottom: 1px solid var(--rule-strong); margin-bottom: 12px; }
.era-tab { padding: 7px 14px; font-family:'DM Mono', monospace !important; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; border: none; background: none; color:var(--ink-tertiary) !important; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: all 0.15s; }
.era-tab.active { color:var(--ink) !important; border-bottom-color:var(--ink) !important; }
.full-rule { border: none; border-top: 1px solid var(--rule-strong); margin: 24px 0; }

.footnote-strip { border-top: 1px solid var(--rule-strong); padding: 18px 24px; margin-top: 28px; display: grid; grid-template-columns: 1fr; gap: 20px; }
.footnote-item { font-size: 11px; color:var(--ink-tertiary) !important; line-height: 1.6; }
.footnote-item strong { color:var(--ink-secondary) !important; font-weight: 500; display: block; margin-bottom: 2px; font-family:'DM Mono', monospace !important; font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; }

@media (max-width: 860px) {
  .iul-framework-wrap .masthead { padding: 20px; grid-template-columns: 1fr; }
  .iul-framework-wrap .market-page { padding: 0 20px 48px; }
  .iul-framework-wrap .two-col { grid-template-columns: 1fr; }
  .iul-framework-wrap .sidebar { border-right: none; border-bottom: 1px solid var(--rule-strong); padding: 20px 0; }
  .iul-framework-wrap .main-panel { padding: 20px 0; }
  .iul-framework-wrap .metrics-grid { grid-template-columns: 1fr 1fr; }
  .iul-framework-wrap .footnote-strip { grid-template-columns: 1fr; }
  .iul-framework-wrap .engine-values { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1300px) {
  .iul-framework-wrap .masthead { padding: 28px 0 20px; }
  .iul-framework-wrap .market-page { padding: 0 0 64px; }
}

.iul-framework-wrap,
.iul-framework-wrap * {
  font-family: 'DM Sans', sans-serif !important;
}
.iul-framework-wrap [style*="Playfair"],
.iul-framework-wrap [style*="Playfair"] *,
.iul-framework-wrap .masthead-title,
.iul-framework-wrap .masthead-title em,
.iul-framework-wrap .delta-value,
.iul-framework-wrap .qs-val,
.iul-framework-wrap .metric-value,
.iul-framework-wrap .chart-title {
  font-family: 'Playfair Display', serif !important;
}
.iul-framework-wrap [style*="DM Mono"],
.iul-framework-wrap [style*="DM Mono"] *,
.iul-framework-wrap .masthead-label,
.iul-framework-wrap .masthead-meta,
.iul-framework-wrap .section-label,
.iul-framework-wrap .slider-val,
.iul-framework-wrap .scale-labels,
.iul-framework-wrap .derived-box,
.iul-framework-wrap .delta-label,
.iul-framework-wrap .qs-lbl,
.iul-framework-wrap .qs-arrow,
.iul-framework-wrap .qs-sentence,
.iul-framework-wrap .qs-sentence strong,
.iul-framework-wrap .engine-box,
.iul-framework-wrap .metric-label,
.iul-framework-wrap .metric-sub,
.iul-framework-wrap .chart-sub,
.iul-framework-wrap .comp-table th,
.iul-framework-wrap .comp-table td.num,
.iul-framework-wrap .comp-table td.pos,
.iul-framework-wrap .comp-table td.neg,
.iul-framework-wrap .spectrum-iul-label,
.iul-framework-wrap .spectrum-labels,
.iul-framework-wrap .era-tab,
.iul-framework-wrap .footnote-item strong {
  font-family: 'DM Mono', monospace !important;
}

.iul-framework-wrap [data-iul-load].is-loading { position: relative !important; }
.iul-framework-wrap .iul-load-veil {
  position: absolute !important; inset: 0; z-index: 3; display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.72); border-radius: inherit;
}
.iul-framework-wrap .iul-load-veil::before {
  content: ''; width: 22px; height: 22px; border: 2px solid rgba(26,58,92,0.25); border-top-color: #1a3a5c;
  border-radius: 50%; animation: iul-spin .7s linear infinite;
}
@keyframes iul-spin { to { transform: rotate(360deg); } }
@media print { .iul-framework-wrap .iul-load-veil { display: none !important; } }

.iul-framework-wrap .reg-grid { grid-template-columns: 1fr 1fr; }
.iul-framework-wrap .tradeoff-grid { grid-template-columns: 1fr 1fr 1fr; }
.iul-framework-wrap .rate-env-grid { grid-template-columns: 1fr 1fr 1fr; }
.iul-framework-wrap .dist-buckets { grid-template-columns: 1fr 1fr 1fr; }
.iul-framework-wrap .h-scroll { max-width: 100%; }

@media screen and (max-width: 860px) {
  .iul-framework-wrap { overflow-wrap: break-word; }
  .iul-framework-wrap .masthead-meta { text-align: left; }
  .iul-framework-wrap .two-col,
  .iul-framework-wrap .sidebar,
  .iul-framework-wrap .main-panel,
  .iul-framework-wrap .market-page,
  .iul-framework-wrap .h-scroll { min-width: 0; max-width: 100%; }
  .iul-framework-wrap .disclosure { padding-left: 0 !important; padding-right: 0 !important; }
  .iul-framework-wrap .slider-name { min-width: 0; }
  .iul-framework-wrap canvas { display: block; max-width: 100% !important; }
  .iul-framework-wrap .spectrum-wrap { padding: 0 10px; }
  .iul-framework-wrap .scenario-grid > * { min-width: 0; }
}
@media screen and (max-width: 860px) {
  .iul-framework-wrap .tradeoff-grid,
  .iul-framework-wrap .dist-buckets { grid-template-columns: 1fr; }
  .iul-framework-wrap .qs-main { grid-template-columns: 1fr; justify-items: center; gap: 8px; }
  .iul-framework-wrap .qs-item { width: 100%; }
  .iul-framework-wrap .qs-arrow { padding: 0; line-height: 1; }
  .iul-framework-wrap .h-scroll { min-width: 0; max-width: 100%; }
  .iul-framework-wrap .comp-table { display: block; width: 100%; min-width: 0; }
  .iul-framework-wrap .comp-table thead { display: none; }
  .iul-framework-wrap .comp-table tbody,
  .iul-framework-wrap .comp-table tr { display: block; width: auto; }
  .iul-framework-wrap .comp-table tr { border: 1px solid var(--rule-strong); padding: 10px 12px; margin-bottom: 8px; background: var(--paper); }
  .iul-framework-wrap .comp-table tr.iul-row { border-left: 3px solid var(--accent); background: rgba(26,58,92,0.05); }
  .iul-framework-wrap .comp-table tr.iul-row td { background: transparent; }
  .iul-framework-wrap .comp-table tr.iul-row td:first-child { border-left: none; }
  .iul-framework-wrap .comp-table td { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px; width: auto; border: none; padding: 4px 0; text-align: right; }
  .iul-framework-wrap .comp-table td::before { font-family: 'DM Mono', monospace !important; font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-tertiary) !important; text-align: left; flex: 0 1 auto; }
  .iul-framework-wrap .comp-table td:nth-child(1)::before { content: none; }
  .iul-framework-wrap .comp-table td:nth-child(1) { font-size: 14px; font-weight: 600; color: var(--ink) !important; padding-bottom: 6px; }
  .iul-framework-wrap .comp-table td:nth-child(2)::before { content: "Expected return"; }
  .iul-framework-wrap .comp-table td:nth-child(3)::before { content: "Conservative mkt (4%)"; }
  .iul-framework-wrap .comp-table td:nth-child(4)::before { content: "Optimistic mkt (15%)"; }
  .iul-framework-wrap .comp-table td:nth-child(5) { display: block; text-align: left; padding-top: 6px; }
  .iul-framework-wrap .comp-table td:nth-child(5)::before { content: "Key characteristic"; display: block; margin-bottom: 3px; }
}
@media screen and (max-width: 640px) {
  .iul-framework-wrap .rate-env-grid { grid-template-columns: 1fr; }
  .iul-framework-wrap .scenario-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .iul-framework-wrap .scenario-btn { min-height: 44px; }
  .iul-framework-wrap .sidebar label { min-height: 44px; }
  .iul-framework-wrap input[type="checkbox"] { width: 18px; height: 18px; flex-shrink: 0; }
  .iul-framework-wrap input[type=range] { height: 44px !important; }
  .iul-framework-wrap input[type=range]::-webkit-slider-thumb { width: 22px !important; height: 22px !important; margin-top: -9.5px !important; }
  .iul-framework-wrap input[type=range]::-moz-range-thumb { width: 22px !important; height: 22px !important; }
  .iul-framework-wrap .slider-row { gap: 8px; }
  .iul-framework-wrap .slider-name { flex: 1; }
  .iul-framework-wrap .slider-val { flex-shrink: 0; }
  .iul-framework-wrap .section-label { letter-spacing: 0.08em; }
  .iul-framework-wrap .quick-strip { padding: 14px 12px; }
}
@media screen and (max-width: 520px) {
  .iul-framework-wrap .reg-grid { grid-template-columns: 1fr; }
  .iul-framework-wrap .market-page { padding: 0 16px 40px; }
  .iul-framework-wrap .masthead { padding: 16px 16px 14px; }
  .iul-framework-wrap .masthead-title { font-size: 22px; }
}
@media screen and (max-width: 380px) {
  .iul-framework-wrap .market-page { padding: 0 12px 32px; }
}

@media screen and (max-width: 860px) {
  .iul-framework-wrap { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  .iul-framework-wrap .masthead-outer,
  .iul-framework-wrap .masthead,
  .iul-framework-wrap .market-page,
  .iul-framework-wrap .two-col,
  .iul-framework-wrap .sidebar,
  .iul-framework-wrap .main-panel,
  .iul-framework-wrap .intro-panel,
  .iul-framework-wrap .quick-strip,
  .iul-framework-wrap .disclosure,
  .iul-framework-wrap .footnote-strip,
  .iul-framework-wrap .h-scroll,
  .iul-framework-wrap .spectrum-wrap,
  .iul-framework-wrap .dist-buckets,
  .iul-framework-wrap button,
  .iul-framework-wrap input,
  .iul-framework-wrap canvas,
  .iul-framework-wrap table { max-width: 100% !important; min-width: 0 !important; }
  .iul-framework-wrap .masthead { grid-template-columns: 1fr !important; padding: 16px 16px 14px !important; }
  .iul-framework-wrap .masthead-title,
  .iul-framework-wrap .masthead-meta,
  .iul-framework-wrap .section-label,
  .iul-framework-wrap .qs-lbl,
  .iul-framework-wrap .qs-sentence,
  .iul-framework-wrap .s-name,
  .iul-framework-wrap button { white-space: normal !important; overflow-wrap: anywhere; }
  .iul-framework-wrap .market-page { padding: 0 16px 40px !important; }
  .iul-framework-wrap .two-col { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; }
  .iul-framework-wrap .sidebar,
  .iul-framework-wrap .main-panel { padding: 20px 0 !important; }
  .iul-framework-wrap .scenario-btn { min-height: 44px; }
  .iul-framework-wrap input[type=range] { height: 44px !important; }
  .iul-framework-wrap input[type=range]::-webkit-slider-thumb { width: 22px !important; height: 22px !important; margin-top: -9.5px !important; }
  .iul-framework-wrap input[type=range]::-moz-range-thumb { width: 22px !important; height: 22px !important; }
  .iul-framework-wrap .quick-strip { padding: 16px 20px !important; }
  .iul-framework-wrap .qs-main { grid-template-columns: 1fr !important; justify-items: center; gap: 8px; }
  .iul-framework-wrap .qs-item { width: 100%; min-width: 0; }
  .iul-framework-wrap .tradeoff-grid,
  .iul-framework-wrap .dist-buckets,
  .iul-framework-wrap .reg-grid,
  .iul-framework-wrap .rate-env-grid,
  .iul-framework-wrap .scenario-grid { grid-template-columns: 1fr !important; }
  .iul-framework-wrap .disclosure { padding: 16px 0 24px !important; }
  .iul-framework-wrap .footnote-strip { padding: 20px 0 !important; }
  .iul-framework-wrap .slider-group { padding-right: 2px; }
  .iul-framework-wrap .main-panel div[style*="height:"] { max-width: 100% !important; overflow: hidden; }
  .iul-framework-wrap canvas { display: block; width: 100% !important; max-width: 100% !important; }
  .iul-framework-wrap .spectrum-wrap { padding: 8px 12px 4px; }
  .iul-framework-wrap .spectrum-labels {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px 6px;
    margin-top: 18px !important;
    font-size: 11px !important;
    text-align: center;
    line-height: 1.35;
  }
  .iul-framework-wrap .spectrum-labels span,
  .iul-framework-wrap .spectrum-iul-label { white-space: normal !important; overflow-wrap: break-word; }
  .iul-framework-wrap .spectrum-iul-label { max-width: 4.5rem; text-align: center; line-height: 1.2; }
  .iul-framework-wrap .comp-table td { min-width: 0; overflow-wrap: anywhere; }
}

@media screen and (max-width: 860px) {
  .iul-framework-wrap .masthead-title { font-size: 24px !important; line-height: 1.25; }
  .iul-framework-wrap .masthead-meta { font-size: 13px !important; letter-spacing: 0.02em !important; line-height: 1.55 !important; text-align: left; }
  .iul-framework-wrap .section-label { font-size: 12px !important; letter-spacing: 0.06em !important; line-height: 1.45; }
  .iul-framework-wrap .chart-title { font-size: 18px !important; line-height: 1.3; }
  .iul-framework-wrap .chart-sub,
  .iul-framework-wrap .qs-lbl,
  .iul-framework-wrap .scale-labels,
  .iul-framework-wrap .footnote-item,
  .iul-framework-wrap .footnote-item strong { font-size: 13px !important; letter-spacing: 0.02em !important; line-height: 1.5; }
  .iul-framework-wrap .qs-val { font-size: 28px !important; }
  .iul-framework-wrap .s-name { font-size: 15px !important; white-space: normal !important; }
  .iul-framework-wrap .scenario-btn { min-height: 48px; padding: 12px 14px; }
  .iul-framework-wrap .slider-row { flex-wrap: wrap; gap: 4px 10px; }
  .iul-framework-wrap .slider-name { flex: 1 1 10rem; white-space: normal !important; font-size: 14px !important; line-height: 1.4; }
  .iul-framework-wrap .slider-val { font-size: 18px !important; }
  .iul-framework-wrap .sidebar label { font-size: 15px !important; line-height: 1.4; }
  .iul-framework-wrap [style*="font-size:8px"],
  .iul-framework-wrap [style*="font-size:9px"],
  .iul-framework-wrap [style*="font-size:10px"],
  .iul-framework-wrap [style*="font-size:11px"] { font-size: 14px !important; line-height: 1.55 !important; }
  .iul-framework-wrap [style*="letter-spacing:0.1em"],
  .iul-framework-wrap [style*="letter-spacing:0.12em"],
  .iul-framework-wrap [style*="letter-spacing:0.14em"],
  .iul-framework-wrap [style*="letter-spacing:0.16em"] { letter-spacing: 0.04em !important; }
  .iul-framework-wrap .comp-table td::before { font-size: 12px !important; letter-spacing: 0.04em !important; }
  .iul-framework-wrap .comp-table td:nth-child(1) { font-size: 16px !important; }
  .iul-framework-wrap .spectrum-labels {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px 4px;
    margin-top: 22px !important;
    font-size: 11px !important;
    text-align: center;
    line-height: 1.3;
  }
  .iul-framework-wrap .spectrum-labels span { white-space: normal !important; overflow-wrap: anywhere; }
  .iul-framework-wrap .spectrum-iul-label { font-size: 11px !important; white-space: normal !important; max-width: 72px; text-align: center; line-height: 1.2; }
  .iul-framework-wrap .legend-row { font-size: 13px !important; gap: 8px 14px; }
  .iul-framework-wrap .intro-panel,
  .iul-framework-wrap .quick-strip,
  .iul-framework-wrap .disclosure { overflow-wrap: anywhere; }
}

@media screen and (min-width: 861px) and (max-width: 1100px) {
  .iul-framework-wrap .two-col { grid-template-columns: minmax(0, 1fr) !important; }
  .iul-framework-wrap .sidebar { border-right: none; border-bottom: 1px solid var(--rule-strong); padding: 24px 0 !important; }
  .iul-framework-wrap .main-panel { padding: 24px 0 !important; }
  .iul-framework-wrap .scenario-grid,
  .iul-framework-wrap .rate-env-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .iul-framework-wrap .scenario-btn { min-height: 44px; }
  .iul-framework-wrap .scenario-btn,
  .iul-framework-wrap .s-name { white-space: normal; overflow-wrap: anywhere; }
}
@media screen and (min-width: 861px) and (max-width: 1299px) {
  .iul-framework-wrap .masthead { padding-left: 32px !important; padding-right: 32px !important; }
  .iul-framework-wrap .market-page { padding-left: 32px !important; padding-right: 32px !important; }
  .iul-framework-wrap .disclosure { padding-left: 0 !important; padding-right: 0 !important; }
  .iul-framework-wrap .comp-table th,
  .iul-framework-wrap .comp-table td { overflow-wrap: break-word; }
  .iul-framework-wrap .qs-lbl,
  .iul-framework-wrap .spectrum-labels span { overflow-wrap: anywhere; }
}
@media screen and (min-width: 1600px) {
  .iul-framework-wrap .masthead,
  .iul-framework-wrap .market-page { max-width: 1440px; }
}
