/* =================================================================
   tools/stl-unordered.css
   Auto-extracted from math.css (2026-05-11).
   Loaded via config/js-manifest.php → templates/partials/head-styles.php.
   ================================================================= */

/* ============================================================================
 * STL Unordered — redesign (unordered_set / unordered_map on hash table)
 * Все стили под локальным префиксом .math-ds-unord-*; node-modifier классы
 * (.seq-landing, .seq-found, .seq-targeting, .seq-just-copied, .seq-leaving)
 * переиспользуем по имени, но скоплены через .math-ds-unord-buckets чтобы не
 * пересекаться с stl-sequence cells / stl-associative nodes.
 * ds-advanced:hash-table продолжает использовать generic .math-ds-buckets/.math-ds-bucket
 * (не меняли).
 * ========================================================================= */

.math-ds-unord-panel {
    --unord-grad-a: #06b6d4;
    --unord-grad-b: #0891b2;
    --unord-grad-found-a: #34d399;
    --unord-grad-found-b: #059669;
    --unord-grad-targeting-a: #fb7185;
    --unord-grad-targeting-b: #e11d48;
    --unord-grad-rehash-a: #f59e0b;
    --unord-grad-rehash-b: #d97706;
    --unord-bucket-h: 48px;
    --unord-bucket-gap: 6px;
    --unord-ease: cubic-bezier(.4,0,.2,1);
    --unord-tween: 0.55s;
}
/* --unord-tween is set inline by JS (MathDsCore.applySpeed), baseline 0.55s @ ×1.0. */

.math-ds-unord-panel.is-busy .math-ds-actions,
.math-ds-unord-panel.is-busy #unordRandomBtn,
.math-ds-unord-panel.is-busy .math-ds-unord-type-segment,
.math-ds-unord-panel.is-busy #unordBuckets {
    pointer-events: none;
    opacity: 0.55;
}

/* Type segment with subtitle */
.math-ds-unord-type-segment .math-mode-segment-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 8px 16px;
    line-height: 1.15;
}
.math-ds-unord-type-segment .unord-seg-title {
    font-weight: 600;
    font-size: 14px;
    font-family: ui-monospace, "SF Mono", monospace;
}
.math-ds-unord-type-segment .unord-seg-sub {
    font-size: 11px;
    opacity: 0.75;
    font-weight: 500;
}

/* Info card per container type */
.math-ds-unord-info-wrap { margin: 14px 0 4px; }
.math-ds-unord-info {
    display: none;
    background: linear-gradient(180deg, rgba(6,182,212,0.07), rgba(8,145,178,0.03));
    border: 1px solid rgba(6,182,212,0.22);
    border-radius: 10px;
    padding: 14px 16px;
}
.math-ds-unord-info.active { display: block; }

.math-ds-unord-info .unord-info-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 10px;
}
.math-ds-unord-info .unord-info-icon {
    flex: 0 0 auto;
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--unord-grad-a), var(--unord-grad-b));
    color: #fff;
    border-radius: 8px;
    font-size: 16px;
}
.math-ds-unord-info .unord-info-title {
    font-weight: 600;
    font-size: 14px;
    color: var(--math-text-strong, #1f2937);
}
.math-ds-unord-info .unord-info-sub {
    font-size: 12.5px;
    color: var(--math-text-muted, #6b7280);
    margin-top: 2px;
    line-height: 1.5;
}
.math-ds-unord-info .unord-info-sub code {
    background: rgba(6,182,212,0.12);
    color: #0e7490;
    padding: 1px 6px;
    border-radius: 4px;
    font-family: ui-monospace, monospace;
    font-size: 11.5px;
}
.math-ds-unord-info .unord-info-body {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: center;
}
.math-ds-unord-info .unord-info-list {
    list-style: none;
    margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: 6px;
    font-size: 12.5px;
    color: var(--math-text-muted, #4b5563);
}
.math-ds-unord-info .unord-info-list li { line-height: 1.4; }
.math-ds-unord-info .unord-info-list li strong { color: var(--math-text-strong, #1f2937); font-weight: 600; }

.math-ds-unord-info .unord-info-memory {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    min-width: 220px;
}
.math-ds-unord-info .unord-mini-buckets {
    display: flex; flex-direction: column; gap: 3px;
    width: 100%;
}
.math-ds-unord-info .unord-mini-bucket {
    display: flex; align-items: center; gap: 4px;
    padding: 3px 6px;
    background: rgba(255,255,255,0.55);
    border: 1px solid rgba(6,182,212,0.18);
    border-radius: 6px;
    min-height: 24px;
    font-family: ui-monospace, monospace;
    font-size: 10.5px;
}
.math-ds-unord-info .unord-mini-head {
    color: var(--math-text-muted);
    width: 22px;
    flex-shrink: 0;
}
.math-ds-unord-info .unord-mini-item {
    padding: 1px 6px;
    background: linear-gradient(135deg, var(--unord-grad-a), var(--unord-grad-b));
    color: #fff;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(8,145,178,0.25);
}
.math-ds-unord-info .unord-mini-arrow {
    color: var(--math-text-muted);
    font-size: 10px;
}
.math-ds-unord-info .unord-mini-empty {
    color: var(--math-text-muted);
    opacity: 0.5;
}
.math-ds-unord-info .unord-info-legend {
    font-size: 10.5px;
    color: var(--math-text-muted, #6b7280);
    text-align: center;
}

/* Stats chip bar */
.math-ds-unord-stats {
    display: flex; flex-wrap: wrap; gap: 6px;
    padding: 4px 0 10px;
    align-items: center;
}
.math-ds-unord-stats:empty { display: none; }
.math-ds-unord-stats .unord-chip {
    display: inline-flex; align-items: center; gap: 4px;
    background: var(--math-surface-2, #f3f4f6);
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 999px;
    padding: 3px 10px 3px 8px;
    font-size: 11.5px;
    font-family: ui-monospace, monospace;
    line-height: 1.2;
    white-space: nowrap;
}
.math-ds-unord-stats .unord-chip .chip-k {
    color: var(--math-text-muted, #6b7280);
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.math-ds-unord-stats .unord-chip .chip-v {
    font-weight: 600;
    color: var(--math-text-strong, #111827);
}
.math-ds-unord-stats .unord-chip.unord-chip-accent {
    background: linear-gradient(135deg, rgba(6,182,212,0.15), rgba(8,145,178,0.10));
    border-color: rgba(8,145,178,0.25);
}
.math-ds-unord-stats .unord-chip.unord-chip-accent .chip-v { color: #0e7490; }
.math-ds-unord-stats .unord-chip.unord-chip-warn {
    background: linear-gradient(135deg, rgba(251,113,133,0.15), rgba(225,29,72,0.10));
    border-color: rgba(225,29,72,0.25);
}
.math-ds-unord-stats .unord-chip.unord-chip-warn .chip-v { color: #be123c; }
.math-ds-unord-stats .unord-chip.unord-chip-good {
    background: linear-gradient(135deg, rgba(52,211,153,0.15), rgba(5,150,105,0.10));
    border-color: rgba(5,150,105,0.25);
}
.math-ds-unord-stats .unord-chip.unord-chip-good .chip-v { color: #047857; }
.math-ds-unord-stats .unord-chip.unord-chip-rehash {
    background: linear-gradient(135deg, rgba(245,158,11,0.18), rgba(217,119,6,0.10));
    border-color: rgba(217,119,6,0.28);
}
.math-ds-unord-stats .unord-chip.unord-chip-rehash .chip-v { color: #b45309; }

/* Hash formula card — key → hash → mod → idx + step-by-step breakdown */
.math-ds-unord-hash-formula {
    display: flex; flex-direction: column; gap: 8px;
    padding: 10px 14px;
    margin: 0 0 10px;
    background: linear-gradient(180deg, rgba(6,182,212,0.06), rgba(8,145,178,0.02));
    border: 1px dashed rgba(6,182,212,0.32);
    border-radius: 8px;
    font-family: ui-monospace, monospace;
    font-size: 12px;
    line-height: 1.3;
}
.math-ds-unord-hash-formula[hidden] { display: none; }
.math-ds-unord-hash-formula .hf-row {
    display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
}
.math-ds-unord-hash-formula .hf-row-summary {
    border-bottom: 1px dashed rgba(6,182,212,0.20);
    padding-bottom: 8px;
}
.math-ds-unord-hash-formula .hf-steps {
    font-family: ui-monospace, monospace;
    font-size: 11.5px;
    color: var(--math-text);
    display: flex; flex-direction: column; gap: 4px;
}
.math-ds-unord-hash-formula .hf-steps-label {
    font-weight: 600;
    color: #0e7490;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
}
.math-ds-unord-hash-formula .hf-steps-rows {
    display: flex; flex-direction: column; gap: 3px;
    background: rgba(255,255,255,0.5);
    border: 1px solid rgba(6,182,212,0.12);
    border-radius: 6px;
    padding: 6px 8px;
}
.math-ds-unord-hash-formula .hf-step {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px;
    padding: 1px 0;
    line-height: 1.5;
}
.math-ds-unord-hash-formula .hf-step.hf-step-init {
    color: var(--math-text-muted);
    font-size: 10.5px;
    border-bottom: 1px dashed rgba(0,0,0,0.05);
    padding-bottom: 4px;
    margin-bottom: 2px;
}
.math-ds-unord-hash-formula .hf-step .hf-step-idx {
    color: var(--math-text-muted);
    font-size: 10px;
    font-weight: 600;
    min-width: 22px;
}
.math-ds-unord-hash-formula .hf-step .hf-step-eq,
.math-ds-unord-hash-formula .hf-step .hf-step-op {
    color: var(--math-text-muted);
    font-size: 10.5px;
}
.math-ds-unord-hash-formula .hf-step .hf-step-prev {
    color: #4338ca;
    font-weight: 600;
}
.math-ds-unord-hash-formula .hf-step .hf-step-char {
    background: linear-gradient(135deg, rgba(6,182,212,0.20), rgba(8,145,178,0.10));
    color: #0e7490;
    padding: 1px 6px;
    border-radius: 999px;
    font-size: 11px;
}
.math-ds-unord-hash-formula .hf-step .hf-step-char sub {
    font-size: 8.5px;
    margin-left: 2px;
    opacity: 0.75;
    color: var(--math-text-muted);
}
.math-ds-unord-hash-formula .hf-step .hf-step-h {
    color: #047857;
    font-weight: 700;
}
.math-ds-unord-hash-formula .hf-step.hf-step-more {
    color: var(--math-text-muted);
    font-style: italic;
    font-size: 10.5px;
    margin-top: 2px;
}
.math-ds-unord-hash-formula .hf-mod-line {
    margin-top: 2px;
    padding: 5px 8px;
    background: linear-gradient(135deg, rgba(6,182,212,0.10), rgba(8,145,178,0.04));
    border-radius: 6px;
    font-size: 11.5px;
    color: var(--math-text);
    line-height: 1.55;
    font-family: inherit;
}
.math-ds-unord-hash-formula .hf-mod-line .hf-mod-eq {
    font-family: ui-monospace, monospace;
}
.math-ds-unord-hash-formula .hf-mod-line .hf-mod-eq strong {
    color: #0e7490;
}
.math-ds-unord-hash-formula .hf-bucket-tag {
    display: inline-block;
    background: linear-gradient(135deg, var(--unord-grad-a), var(--unord-grad-b));
    color: #fff;
    padding: 1px 8px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 10.5px;
    font-family: ui-monospace, monospace;
}
.math-ds-unord-hash-formula .hf-int-explain {
    padding: 6px 10px;
    background: rgba(255,255,255,0.5);
    border: 1px solid rgba(6,182,212,0.12);
    border-radius: 6px;
    color: var(--math-text);
    font-size: 12px;
    line-height: 1.55;
    font-family: inherit;
}
.math-ds-unord-hash-formula .hf-int-explain strong {
    color: #0e7490;
    font-family: ui-monospace, monospace;
}
.math-ds-unord-hash-formula .hf-key,
.math-ds-unord-hash-formula .hf-fn,
.math-ds-unord-hash-formula .hf-raw,
.math-ds-unord-hash-formula .hf-mod,
.math-ds-unord-hash-formula .hf-idx {
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(255,255,255,0.65);
    border: 1px solid rgba(0,0,0,.06);
}
.math-ds-unord-hash-formula .hf-key {
    background: linear-gradient(135deg, rgba(6,182,212,0.20), rgba(8,145,178,0.12));
    color: #0e7490;
    font-weight: 600;
    border-color: rgba(8,145,178,0.28);
}
.math-ds-unord-hash-formula .hf-fn { color: var(--math-text-muted); font-size: 11px; }
.math-ds-unord-hash-formula .hf-raw {
    background: linear-gradient(135deg, rgba(99,102,241,0.18), rgba(67,56,202,0.10));
    color: #4338ca;
    font-weight: 600;
    border-color: rgba(67,56,202,0.25);
}
.math-ds-unord-hash-formula .hf-mod { color: var(--math-text-muted); font-size: 11px; }
.math-ds-unord-hash-formula .hf-idx {
    background: linear-gradient(135deg, var(--unord-grad-a), var(--unord-grad-b));
    color: #fff;
    font-weight: 700;
    border-color: transparent;
    box-shadow: 0 1px 4px rgba(8,145,178,.30);
}
.math-ds-unord-hash-formula .hf-arrow,
.math-ds-unord-hash-formula .hf-eq {
    color: var(--math-text-muted);
    font-weight: 500;
    user-select: none;
}

/* Buckets viz container */
.math-ds-unord-viz {
    position: relative;
    overflow: hidden;
    min-height: 200px;
    background: linear-gradient(180deg, rgba(6,182,212,.025), rgba(6,182,212,0));
    border-radius: 10px;
    padding: 12px;
}
.math-ds-unord-buckets-scroll {
    overflow-y: auto;
    overflow-x: hidden;
    max-height: 380px;
    padding: 4px;
    -webkit-overflow-scrolling: touch;
}
.math-ds-unord-buckets {
    display: flex; flex-direction: column;
    gap: var(--unord-bucket-gap);
    position: relative;
}
.math-ds-unord-bucket {
    display: flex; align-items: stretch;
    min-height: var(--unord-bucket-h);
    padding: 4px 6px 4px 4px;
    border-radius: 8px;
    background: rgba(255,255,255,0.55);
    border: 1px solid rgba(6,182,212,0.12);
    transition: background var(--unord-tween) var(--unord-ease),
                border-color var(--unord-tween) var(--unord-ease),
                box-shadow var(--unord-tween) var(--unord-ease);
}
.math-ds-unord-bucket.bkt-empty {
    border-style: dashed;
    border-color: rgba(6,182,212,0.20);
    background: repeating-linear-gradient(45deg,
        rgba(6,182,212,0.03),
        rgba(6,182,212,0.03) 6px,
        transparent 6px,
        transparent 12px);
}
.math-ds-unord-bucket.bkt-hit {
    border-color: var(--unord-grad-a);
    background: linear-gradient(180deg, rgba(6,182,212,0.10), rgba(6,182,212,0.04));
    box-shadow: 0 0 0 2px rgba(6,182,212,0.30), 0 4px 12px rgba(8,145,178,0.20);
    animation: unord-bucket-hit 0.85s var(--unord-ease) both;
}
.math-ds-unord-bucket .bkt-head {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    padding: 0 8px;
    margin-right: 6px;
    background: linear-gradient(135deg, rgba(6,182,212,0.18), rgba(8,145,178,0.10));
    color: #0e7490;
    border-radius: 6px;
    font-family: ui-monospace, monospace;
    font-size: 11px;
    font-weight: 700;
    flex-shrink: 0;
}
.math-ds-unord-bucket.bkt-hit .bkt-head {
    background: linear-gradient(135deg, var(--unord-grad-a), var(--unord-grad-b));
    color: #fff;
}
.math-ds-unord-bucket .bkt-chain {
    display: flex; align-items: center;
    gap: 4px;
    flex-wrap: wrap;
    flex: 1;
    min-height: 36px;
}
.math-ds-unord-bucket .bkt-empty-tag {
    color: var(--math-text-muted);
    opacity: 0.55;
    font-family: ui-monospace, monospace;
    font-size: 12px;
}
.math-ds-unord-bucket .bkt-len {
    align-self: center;
    margin-left: auto;
    padding-left: 6px;
    color: var(--math-text-muted);
    font-family: ui-monospace, monospace;
    font-size: 10.5px;
    opacity: 0.7;
    flex-shrink: 0;
}
.math-ds-unord-bucket .bkt-arrow {
    color: rgba(8,145,178,0.55);
    font-family: ui-monospace, monospace;
    font-size: 13px;
    user-select: none;
}

.unord-chain-item {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    background: linear-gradient(135deg, var(--unord-grad-a), var(--unord-grad-b));
    color: #fff;
    border-radius: 16px;
    font-family: ui-monospace, monospace;
    font-size: 12px;
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(8,145,178,0.30);
    transition: transform var(--unord-tween) var(--unord-ease),
                background var(--unord-tween) var(--unord-ease),
                box-shadow var(--unord-tween) var(--unord-ease);
}
.unord-chain-item .kv-sep {
    margin: 0 2px;
    opacity: 0.7;
}
.unord-chain-item:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(8,145,178,0.35);
}

/* Modifier classes scoped under .math-ds-unord-buckets */
.math-ds-unord-buckets .seq-landing {
    background: linear-gradient(135deg, var(--unord-grad-found-a), var(--unord-grad-found-b)) !important;
    box-shadow: 0 0 0 3px rgba(52,211,153,0.40), 0 3px 10px rgba(5,150,105,0.30) !important;
    animation: unord-item-land 0.7s var(--unord-ease) both;
}
.math-ds-unord-buckets .seq-found {
    background: linear-gradient(135deg, var(--unord-grad-found-a), var(--unord-grad-found-b)) !important;
    box-shadow: 0 0 0 3px rgba(52,211,153,0.45), 0 3px 10px rgba(5,150,105,0.35) !important;
    animation: unord-found-pulse 0.95s var(--unord-ease) both;
}
.math-ds-unord-buckets .seq-targeting {
    background: linear-gradient(135deg, var(--unord-grad-targeting-a), var(--unord-grad-targeting-b)) !important;
    box-shadow: 0 0 0 3px rgba(251,113,133,0.45), 0 3px 10px rgba(225,29,72,0.35) !important;
    animation: unord-target-pulse 0.95s var(--unord-ease) both;
}
.math-ds-unord-buckets .seq-just-copied {
    animation: unord-copied-flash 0.8s var(--unord-ease) both;
}
.math-ds-unord-buckets .seq-leaving {
    animation: unord-item-leave 0.55s var(--unord-ease) both;
    pointer-events: none;
}

/* Rehash banner */
.math-ds-unord-rehash-banner {
    position: relative;
    margin: 0 0 8px;
    padding: 8px 14px;
    text-align: center;
    background: linear-gradient(135deg, var(--unord-grad-rehash-a), var(--unord-grad-rehash-b));
    color: #fff;
    border-radius: 999px;
    font-family: ui-monospace, monospace;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    box-shadow: 0 4px 12px rgba(217,119,6,0.30);
    animation: unord-rehash-banner-fade 1.6s var(--unord-ease) both;
}
.math-ds-unord-rehash-banner .rh-icon { margin-right: 6px; }
.math-ds-unord-buckets.is-rehashing { animation: unord-rehash-shake 0.55s var(--unord-ease) both; }

/* Narrator */
.math-ds-unord-narrator {
    margin-top: 12px;
    padding: 10px 14px;
    border-left: 3px solid var(--unord-grad-b);
    background: linear-gradient(90deg, rgba(6,182,212,0.06), rgba(6,182,212,0));
    border-radius: 0 8px 8px 0;
    font-size: 12.5px;
    color: var(--math-text);
    line-height: 1.5;
}
.math-ds-unord-narrator:empty { display: none; }
.math-ds-unord-narrator .unord-narr-title {
    font-family: ui-monospace, monospace;
    font-weight: 600;
    color: #0e7490;
    margin-bottom: 4px;
    font-size: 12.5px;
}
.math-ds-unord-narrator .unord-narr-body {
    color: var(--math-text);
    margin-bottom: 4px;
    line-height: 1.55;
}
.math-ds-unord-narrator .unord-narr-body strong { color: var(--math-text-strong, #111827); }
.math-ds-unord-narrator .unord-narr-body code {
    background: rgba(6,182,212,0.10);
    color: #0e7490;
    padding: 1px 6px;
    border-radius: 4px;
    font-family: ui-monospace, monospace;
    font-size: 11.5px;
}
.math-ds-unord-narrator .unord-narr-impact {
    font-size: 11.5px;
    color: var(--math-text-muted);
    display: flex; align-items: center; gap: 6px;
}
.math-ds-unord-narrator .unord-narr-impact i { color: #0891b2; }

/* Progress chip */
.math-ds-unord-progress {
    margin: 8px 0 4px;
    padding: 6px 10px;
    background: linear-gradient(180deg, rgba(6,182,212,0.05), rgba(6,182,212,0));
    border: 1px solid rgba(6,182,212,0.18);
    border-radius: 8px;
}
.math-ds-unord-progress[hidden] { display: none; }
.math-ds-unord-progress .unord-progress-head {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 11.5px;
    color: var(--math-text-muted);
    margin-bottom: 4px;
    font-family: ui-monospace, monospace;
}
.math-ds-unord-progress .unord-progress-counter {
    color: #0e7490;
    font-weight: 600;
}
.math-ds-unord-progress .unord-progress-track {
    height: 4px;
    background: rgba(6,182,212,0.12);
    border-radius: 2px;
    overflow: hidden;
}
.math-ds-unord-progress .unord-progress-fill {
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--unord-grad-a), var(--unord-grad-b));
    transition: width 0.3s var(--unord-ease);
    border-radius: 2px;
}

/* Keyframes (scoped to unord) */
@keyframes unord-bucket-hit {
    0%   { box-shadow: 0 0 0 2px rgba(6,182,212,0.20), 0 0 0 rgba(8,145,178,0); }
    50%  { box-shadow: 0 0 0 4px rgba(6,182,212,0.45), 0 6px 18px rgba(8,145,178,0.30); }
    100% { box-shadow: 0 0 0 2px rgba(6,182,212,0.30), 0 4px 12px rgba(8,145,178,0.20); }
}
@keyframes unord-item-land {
    0%   { transform: scale(0.5) translateY(-4px); opacity: 0; }
    60%  { transform: scale(1.12); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
}
@keyframes unord-found-pulse {
    0%, 100% { transform: scale(1); }
    35%      { transform: scale(1.18); }
    70%      { transform: scale(0.98); }
}
@keyframes unord-target-pulse {
    0%, 100% { transform: scale(1); }
    25%      { transform: scale(1.10) rotate(-2deg); }
    50%      { transform: scale(0.95) rotate(2deg); }
    75%      { transform: scale(1.06); }
}
@keyframes unord-copied-flash {
    0%, 100% { box-shadow: 0 1px 3px rgba(8,145,178,0.30); }
    50%      { box-shadow: 0 0 0 4px rgba(245,158,11,0.45), 0 4px 12px rgba(217,119,6,0.30); }
}
@keyframes unord-item-leave {
    0%   { transform: scale(1); opacity: 1; }
    100% { transform: scale(0.4); opacity: 0; }
}
@keyframes unord-rehash-banner-fade {
    0%   { transform: translateY(-6px) scale(0.9); opacity: 0; }
    15%  { transform: translateY(0) scale(1); opacity: 1; }
    80%  { transform: translateY(0) scale(1); opacity: 1; }
    100% { transform: translateY(-2px) scale(0.98); opacity: 0; }
}
@keyframes unord-rehash-shake {
    0%, 100% { transform: translateX(0); }
    20%      { transform: translateX(-3px); }
    40%      { transform: translateX(3px); }
    60%      { transform: translateX(-2px); }
    80%      { transform: translateX(2px); }
}

/* Mobile */
@media (max-width: 640px) {
    .math-ds-unord-info .unord-info-body { grid-template-columns: 1fr; }
    .math-ds-unord-info .unord-info-memory { min-width: 0; width: 100%; }
    .math-ds-unord-stats {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 6px;
        mask-image: linear-gradient(to right, transparent 0, #000 14px, #000 calc(100% - 14px), transparent 100%);
    }
    .math-ds-unord-hash-formula {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        font-size: 11px;
    }
    .math-ds-unord-type-segment .math-mode-segment-btn {
        min-height: 44px;
        padding: 6px 10px;
    }
    .math-ds-unord-type-segment .unord-seg-sub { display: none; }
    .math-ds-unord-bucket { min-height: 42px; padding: 3px 4px; }
    .math-ds-unord-bucket .bkt-head { min-width: 36px; font-size: 10px; padding: 0 6px; }
    .unord-chain-item { padding: 4px 8px; font-size: 11px; }
    .unord-rand-text-long { display: none; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .math-ds-unord-bucket,
    .unord-chain-item,
    .math-ds-unord-buckets .seq-landing,
    .math-ds-unord-buckets .seq-found,
    .math-ds-unord-buckets .seq-targeting,
    .math-ds-unord-buckets .seq-just-copied,
    .math-ds-unord-buckets .seq-leaving,
    .math-ds-unord-rehash-banner,
    .math-ds-unord-buckets.is-rehashing,
    .math-ds-unord-progress .unord-progress-fill {
        animation: none !important;
        transition-duration: 0ms !important;
    }
}

