  /* ── Overline (켤레복소수 등) ── */
  .ovl { text-decoration: overline; }

  /* ── Tooltip Popup ── */
  .tt {
    position: relative;
    color: var(--tip);
    border-bottom: 1px dashed var(--tip);
    cursor: help;
    font-weight: 600;
  }
  .tt .ttp {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    width: 320px;
    background: var(--bg-surface);
    border: 2px solid var(--tip);
    border-radius: var(--radius-md);
    padding: 14px 16px;
    font-size: 13px;
    font-weight: 400;
    color: var(--text-primary);
    line-height: 1.7;
    z-index: 9999;
    box-shadow: 0 8px 30px rgba(0,0,0,0.7);
    transition: opacity 0.2s, visibility 0.2s;
    pointer-events: none;
  }
  .tt .ttp::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 8px solid transparent;
    border-top-color: var(--tip);
  }
  .tt:hover .ttp {
    visibility: visible;
    opacity: 1;
  }
  .tt .ttp strong { color: var(--tip); }
  .tt .ttp .ttp-formula {
    font-family: 'STIX Two Math', Georgia, serif;
    font-size: 15px;
    color: var(--formula-text);
    margin: 6px 0;
    text-align: center;
  }

  /* ── Concept Cards ── */
  .concept-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 28px 36px;
    margin-bottom: 24px;
    transition: border-color 0.3s;
  }
  .concept-card:hover {
    border-color: var(--concept);
  }
  .concept-card h3 {
    font-size: 20px;
    color: var(--concept);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .concept-card h3 .icon {
    font-size: 24px;
  }

  /* ── Visual Diagram Boxes ── */
  .diagram-box {
    background: var(--bg-inset);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 24px;
    margin: 16px 0;
    text-align: center;
  }

  /* ── Flow Charts ── */
  .flow-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 16px 0;
  }
  .flow-box {
    padding: 14px 24px;
    border-radius: var(--radius-md);
    font-weight: 500;
    font-size: 15px;
    text-align: center;
    min-width: 120px;
  }
  .flow-arrow {
    color: var(--concept);
    font-size: 24px;
    font-weight: 700;
  }
  .flow-blue { background: var(--formula-bg); border: 2px solid var(--formula); color: var(--formula-text); }
  .flow-purple { background: var(--concept-bg); border: 2px solid var(--concept); color: var(--concept-text); }
  .flow-green { background: var(--example-bg); border: 2px solid var(--example); color: var(--example-text); }
  .flow-orange { background: var(--tip-bg); border: 2px solid var(--tip); color: var(--tip-text); }
  .flow-red { background: var(--error-bg); border: 2px solid var(--error); color: var(--error-text); }
  .flow-cyan { background: var(--formula-bg); border: 2px solid var(--formula); color: var(--formula-text); }

  /* ── Comparison Tables ── */
  .compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 16px 0;
    border-radius: var(--radius-md);
    overflow: visible;
    border: 1px solid var(--border);
  }
  .compare-table th {
    background: var(--concept-bg);
    color: var(--concept-text);
    padding: 14px 18px;
    text-align: left;
    font-weight: 600;
    font-size: 14px;
  }
  .compare-table td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
    font-size: 14px;
  }
  .compare-table tr:nth-child(even) td { background: var(--bg-surface-alt); }
  .compare-table tr:nth-child(odd) td { background: var(--bg-surface); }
  .compare-table tr:last-child td { border-bottom: none; }

  /* ── Example Boxes ── */
  .example-box {
    background: var(--example-bg);
    border: 1px solid var(--example);
    border-radius: var(--radius-md);
    padding: 20px 24px;
    margin: 16px 0;
    position: relative;
  }
  .example-box::before {
    content: '예시';
    position: absolute;
    top: -10px; left: 16px;
    background: var(--example);
    color: var(--text-white);
    padding: 2px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
  }
  .example-box p { margin-top: 4px; }

  /* ── Warning / Tip Boxes ── */
  .tip-box {
    background: var(--tip-bg);
    border: 1px solid var(--tip);
    border-radius: var(--radius-md);
    padding: 20px 24px;
    margin: 16px 0;
    position: relative;
  }
  .tip-box::before {
    content: '시험 포인트';
    position: absolute;
    top: -10px; left: 16px;
    background: var(--tip);
    color: var(--text-white);
    padding: 2px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
  }

  /* ── Analogy Boxes ── */
  .analogy-box {
    background: var(--concept-bg);
    border: 1px solid var(--concept);
    border-radius: var(--radius-md);
    padding: 20px 24px;
    margin: 16px 0;
    position: relative;
  }
  .analogy-box::before {
    content: '쉬운 비유';
    position: absolute;
    top: -10px; left: 16px;
    background: var(--concept);
    color: var(--text-white);
    padding: 2px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
  }

  /* ── Tree Diagram ── */
  .tree {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    margin: 20px 0;
  }
  .tree-root {
    background: var(--concept);
    color: white;
    padding: 12px 32px;
    border-radius: var(--radius-md);
    font-weight: 700;
    font-size: 16px;
  }
  .tree-connector {
    width: 2px;
    height: 20px;
    background: var(--text-muted);
  }
  .tree-branch {
    display: flex;
    gap: 40px;
    position: relative;
  }
  .tree-branch::before {
    content: '';
    position: absolute;
    top: 0;
    left: 25%;
    right: 25%;
    height: 2px;
    background: var(--text-muted);
  }
  .tree-sub {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
  }
  .tree-sub .tree-connector { height: 16px; }
  .tree-node {
    padding: 10px 20px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
    text-align: center;
    min-width: 100px;
  }
  .tree-leaf-row {
    display: flex;
    gap: 12px;
    margin-top: 8px;
  }
  .tree-leaf {
    padding: 8px 14px;
    border-radius: var(--radius-sm);
    font-size: 12px;
    text-align: center;
  }

  /* ── Visual Bar / Histogram ── */
  .bar-chart {
    display: flex;
    align-items: flex-end;
    gap: 6px;
    height: 180px;
    padding: 0 20px;
    margin: 20px 0;
    border-bottom: 2px solid var(--text-muted);
    position: relative;
  }
  .bar-chart .bar-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
  }
  .bar-chart .bar {
    width: 100%;
    max-width: 60px;
    border-radius: 6px 6px 0 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 4px;
    font-size: 12px;
    font-weight: 700;
    color: white;
    transition: all 0.3s;
  }
  .bar-chart .bar:hover {
    filter: brightness(1.3);
    transform: scaleY(1.05);
    transform-origin: bottom;
  }
  .bar-chart .bar-label {
    margin-top: 8px;
    font-size: 12px;
    color: var(--text-secondary);
    text-align: center;
  }

  /* ── Dot Plot ── */
  .dot-plot {
    position: relative;
    height: 80px;
    margin: 20px 0;
    border-bottom: 2px solid var(--text-muted);
  }
  .dot-plot .dot {
    width: 14px; height: 14px;
    background: var(--concept);
    border-radius: 50%;
    position: absolute;
    transition: all 0.3s;
  }
  .dot-plot .dot:hover {
    transform: scale(1.5);
    background: var(--concept-text);
  }
  .dot-plot .axis-label {
    position: absolute;
    bottom: -22px;
    font-size: 11px;
    color: var(--text-secondary);
    transform: translateX(-50%);
  }

  /* ── Seesaw Animation ── */
  .seesaw-container {
    position: relative;
    height: 140px;
    margin: 20px 0;
  }
  .seesaw-board {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    width: 400px;
    height: 6px;
    background: var(--concept);
    border-radius: 3px;
  }
  .seesaw-pivot {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    width: 0; height: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-bottom: 22px solid var(--concept-dark);
  }
  .seesaw-dot {
    position: absolute;
    bottom: 42px;
    width: 16px; height: 16px;
    border-radius: 50%;
    background: var(--example);
    transform: translateX(-50%);
  }
  .seesaw-mean {
    position: absolute;
    bottom: 42px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px; height: 20px;
    background: var(--error);
  }
  .seesaw-mean-label {
    position: absolute;
    bottom: 65px;
    left: 50%;
    transform: translateX(-50%);
    color: var(--error);
    font-size: 12px;
    font-weight: 700;
  }

  /* ── Distribution Shapes ── */
  .dist-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 16px 0;
  }
  .dist-card {
    background: var(--bg-inset);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 16px;
    text-align: center;
  }
  .dist-card h4 {
    color: var(--concept-text);
    margin-bottom: 8px;
    font-size: 14px;
  }
  .dist-card svg {
    width: 100%;
    height: 80px;
  }
  .dist-card p {
    color: var(--text-secondary);
    font-size: 12px;
    margin-top: 6px;
  }

  /* ── Formula Box ── */
  .formula-box {
    background: var(--border-subtle);
    border: 2px solid var(--formula);
    border-radius: 14px;
    padding: 24px;
    margin: 16px 0;
    text-align: center;
  }
  .formula-box .formula {
    font-size: 22px;
    color: var(--formula-text);
    font-weight: 700;
    margin: 8px 0;
    font-family: 'Georgia', serif;
  }
  .formula-box .formula-desc {
    color: var(--text-secondary);
    font-size: 13px;
  }

  /* ── Step-by-step calc ── */
  .calc-steps {
    margin: 16px 0;
  }
  .calc-step {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
  }
  .calc-step-num {
    background: var(--formula);
    color: white;
    width: 28px; height: 28px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 13px;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 2px;
  }
  .calc-step-content {
    flex: 1;
  }
  .calc-step-content .math {
    font-family: 'Georgia', serif;
    color: var(--formula-text);
    font-size: 16px;
    margin: 4px 0;
  }

  /* ── Interactive Outlier Demo ── */
  .outlier-demo {
    background: var(--bg-inset);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 24px;
    margin: 16px 0;
  }
  .outlier-demo .controls {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
    flex-wrap: wrap;
  }
  .outlier-demo label {
    color: var(--text-secondary);
    font-size: 14px;
  }
  .outlier-demo input[type="range"] {
    width: 200px;
    accent-color: var(--concept);
  }
  .outlier-demo .result {
    font-size: 18px;
    color: var(--text-white);
    font-weight: 700;
  }
  .outlier-demo .result span {
    color: var(--error);
  }

  /* ── CV comparison ── */
  .cv-compare {
    display: flex;
    gap: 24px;
    margin: 16px 0;
  }
  .cv-card {
    flex: 1;
    background: var(--bg-inset);
    border-radius: var(--radius-md);
    padding: 20px;
    text-align: center;
    border: 2px solid var(--border);
    transition: border-color 0.3s;
  }
  .cv-card:hover { border-color: var(--concept); }
  .cv-card h4 { color: var(--concept-text); margin-bottom: 12px; }
  .cv-card .big-num {
    font-size: 36px;
    font-weight: 900;
    margin: 8px 0;
  }
  .cv-card .detail {
    color: var(--text-secondary);
    font-size: 13px;
  }

  /* ── Summary Card ── */
  .summary-card {
    background: var(--bg-inset);
    border: 2px solid var(--concept);
    border-radius: var(--radius-lg);
    padding: 28px;
    margin: 32px 0;
  }
  .summary-card h3 {
    color: var(--concept);
    font-size: 18px;
    margin-bottom: 16px;
  }
  .summary-card ul {
    list-style: none;
    padding: 0;
  }
  .summary-card li {
    padding: 6px 0;
    padding-left: 24px;
    position: relative;
    font-size: 14px;
  }
  .summary-card li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--example);
    font-weight: 700;
  }

  /* ── Spreadsheet visual ── */
  .spreadsheet {
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--border);
    margin: 16px 0;
  }
  .spreadsheet-header {
    display: grid;
    background: var(--concept-bg);
  }
  .spreadsheet-row {
    display: grid;
  }
  .spreadsheet-row:nth-child(even) { background: var(--bg-surface-alt); }
  .spreadsheet-row:nth-child(odd) { background: var(--bg-surface); }
  .spreadsheet-cell {
    padding: 10px 14px;
    font-size: 13px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }
  .spreadsheet-cell:last-child { border-right: none; }
  .spreadsheet-cell.header {
    color: var(--concept-text);
    font-weight: 600;
    font-size: 12px;
  }
  .spreadsheet-cell.row-head {
    color: var(--concept);
    font-weight: 600;
  }
  .spreadsheet-cell.highlight {
    background: rgba(139, 92, 246, 0.15);
  }

  /* ── Annotation arrows ── */
  .annotation {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 6px 0;
  }
  .annotation .arrow {
    color: var(--concept);
    font-size: 18px;
  }
  .annotation .text {
    color: var(--concept-text);
    font-size: 14px;
  }
