*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0f;--bg-panel:#0d0d14;--bg-cell:#111118;--border:#1e1e28;--border-light:#2a2a36;--text:#c8c8d0;--text-bright:#e0e0e8;--text-dim:#666;--text-muted:#444;--amber:#f59e0b;--amber-dim:#f59e0b14;--amber-border:#f59e0b33;--amber-glow:#f59e0b26;--purple:#7c3aed;--purple-bright:#a78bfa;--purple-dim:#7c3aed14;--purple-border:#7c3aed33;--purple-glow:#7c3aed26;--green:#22c55e;--green-dim:#22c55e1a;--green-border:#22c55e4d;--td:.25s}@media (prefers-reduced-motion:reduce){:root{--td:0s}}body{background:var(--bg);color:var(--text);min-height:100vh;padding:20px 24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.mono{font-family:SF Mono,Fira Code,Cascadia Code,JetBrains Mono,Consolas,monospace}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.top-bar{text-align:center;margin-bottom:6px}.top-bar a{color:var(--text-dim);font-size:13px;text-decoration:none}.top-bar a:hover{color:var(--text)}.header{text-align:center;border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:16px}.header h1{color:var(--text-bright);letter-spacing:-.5px;margin-bottom:4px;font-size:24px;font-weight:700}.header p{color:var(--text-dim);font-size:14px}.input-area{text-align:center;max-width:480px;margin:0 auto 20px}.input-field{background:var(--bg-cell);border:1px solid var(--border-light);width:100%;color:var(--text-bright);text-align:center;border-radius:8px;outline:none;padding:10px 16px;font-family:SF Mono,monospace;font-size:15px;transition:border-color .2s}.input-field:focus{border-color:var(--purple)}.controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-bottom:24px;display:flex}.btn{border:1px solid var(--border-light);background:var(--bg-cell);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px 18px;font-size:13px;transition:all .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--border)}.btn:disabled{opacity:.35;cursor:default}.btn-race{background:var(--purple-dim);border-color:var(--purple);color:var(--purple-bright);padding:8px 28px;font-weight:600}.btn-race:hover:not(:disabled){background:var(--purple-glow)}.speed-group{align-items:center;gap:4px;margin-left:12px;display:flex}.speed-label{color:var(--text-muted);margin-right:4px;font-size:11px}.speed-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;min-width:32px;min-height:32px;padding:5px 9px;font-size:12px;transition:all .15s}.speed-btn:hover{color:var(--text);border-color:var(--border-light)}.speed-btn.active{color:var(--purple-bright);border-color:var(--purple);background:var(--purple-dim)}.race-layout{grid-template-columns:1fr 80px 1fr;align-items:start;gap:16px;max-width:1200px;margin:0 auto;display:grid}.algo-panel{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;padding:18px;transition:border-color .5s;position:relative;overflow:hidden}.algo-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.algo-name{font-size:15px;font-weight:600}.sha256-name{color:var(--amber)}.blake3-name{color:var(--purple-bright)}.round-badge{border:1px solid var(--border);background:var(--bg-cell);color:var(--text-dim);border-radius:20px;padding:3px 10px;font-size:11px}.round-badge .mono{color:var(--text-bright)}.phase-badge{color:var(--text-muted);margin-left:6px;font-size:11px}.phase-column{color:var(--purple-bright)}.phase-diagonal{color:#60a5fa}.progress-track{background:#1a1a22;border-radius:2px;height:3px;margin-bottom:14px;overflow:hidden}.progress-fill{height:100%;transition:width var(--td) ease-out;border-radius:2px;width:0%}.sha256-panel .progress-fill{background:var(--amber)}.blake3-panel .progress-fill{background:var(--purple)}.state-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:10px}.registers{grid-template-columns:1fr 1fr;gap:4px;margin-bottom:12px;display:grid}.register{background:var(--bg-cell);border:1px solid var(--border);transition:border-color var(--td), background-color var(--td), box-shadow var(--td);border-radius:5px;align-items:center;gap:6px;padding:6px 10px;display:flex}.register.changed{border-color:var(--amber-border);background:var(--amber-dim);box-shadow:inset 0 0 12px var(--amber-glow)}.register.source{background:#f59e0b08;border-color:#f59e0b1a}.reg-name{color:var(--text-dim);flex-shrink:0;width:10px;font-family:SF Mono,monospace;font-size:11px}.reg-value{color:var(--text-bright);letter-spacing:.5px;transition:color var(--td);font-size:13px}.register.changed .reg-value{color:var(--amber)}.matrix{grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:12px;display:grid}.matrix-cell{background:var(--bg-cell);border:1px solid var(--border);text-align:center;color:var(--text-bright);letter-spacing:.2px;transition:border-color var(--td), background-color var(--td), color var(--td), box-shadow var(--td);border-radius:5px;padding:8px 2px;font-size:11px}.matrix-cell.changed{border-color:var(--purple-border);background:var(--purple-dim);color:var(--purple-bright);box-shadow:inset 0 0 12px var(--purple-glow)}.matrix-cell.source{background:#7c3aed08;border-color:#7c3aed1a}.annotation{background:var(--bg-cell);border-left:3px solid var(--border);color:var(--text);border-radius:5px;min-height:40px;padding:8px 12px;font-size:11px;line-height:1.6}.sha256-panel .annotation{border-left-color:var(--amber-border)}.blake3-panel .annotation{border-left-color:var(--purple-border)}.op-name{font-family:SF Mono,monospace;font-weight:600}.op-name.sha{color:var(--amber)}.op-name.blake{color:var(--purple-bright)}.op-flow{margin-right:12px;display:inline-block}.op-result{color:var(--text-dim);margin-right:12px;display:inline-block}.op-result .mono{color:var(--text-bright);font-size:11px}.op-hint{color:var(--text-dim)}.done-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;z-index:10;background:#0a0a0fd9;flex-direction:column;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.done-overlay.visible{opacity:1;pointer-events:auto}.done-text{letter-spacing:4px;margin-bottom:8px;font-size:28px;font-weight:800}.sha256-panel .done-text{color:var(--amber)}.blake3-panel .done-text{color:var(--green)}.done-hash{color:var(--text-dim);font-size:12px}.towers{justify-content:center;gap:8px;padding-top:10px;display:flex}.tower-column{flex-direction:column;align-items:center;gap:4px;display:flex}.tower-label{letter-spacing:.5px;text-transform:uppercase;margin-bottom:2px;font-size:10px;font-weight:600}.sha-label{color:var(--amber)}.blake-label{color:var(--purple-bright)}.tower{flex-direction:column-reverse;gap:1px;width:28px;display:flex}.tower-block{width:100%;height:4px;transition:background-color var(--td), box-shadow var(--td);border-radius:1px}.tower-block-sha{background:#1a1a22}.tower-block-blake{background:#1a1a22}.insight-bar{background:var(--bg-panel);border:1px solid var(--border);max-width:1200px;color:var(--text-dim);text-align:center;border-radius:8px;margin:20px auto 0;padding:12px 20px;font-size:13px;line-height:1.5}.insight-bar em{color:var(--text-bright);font-style:normal}.keyboard-hint{text-align:center;max-width:1200px;color:var(--text-muted);margin:10px auto 0;font-size:11px}.keyboard-hint kbd{background:var(--bg-cell);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-family:inherit;font-size:11px}.scaling-section{max-width:1200px;margin:0 auto;padding-top:20px}.scaling-divider{background:var(--border);height:1px;margin:40px 0 32px}.scaling-title{text-align:center;color:var(--text-bright);letter-spacing:-.3px;margin-bottom:6px;font-size:20px;font-weight:700}.scaling-subtitle{text-align:center;color:var(--text-dim);max-width:540px;margin-bottom:28px;margin-left:auto;margin-right:auto;font-size:13px;line-height:1.5}.size-slider-area{text-align:center;max-width:480px;margin:0 auto 28px}.size-slider-area input[type=range]{-webkit-appearance:none;appearance:none;background:var(--bg-cell);border:1px solid var(--border);cursor:pointer;border-radius:3px;outline:none;width:100%;height:6px}.size-slider-area input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--purple);border:2px solid var(--purple-bright);cursor:grab;border-radius:50%;width:20px;height:20px;transition:transform .15s}.size-slider-area input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.size-slider-area input[type=range]::-webkit-slider-thumb:active{cursor:grabbing}.size-slider-area input[type=range]::-moz-range-thumb{background:var(--purple);border:2px solid var(--purple-bright);cursor:grab;border-radius:50%;width:20px;height:20px}.size-labels{color:var(--text-muted);justify-content:space-between;margin-top:8px;font-size:10px;display:flex}.size-display{color:var(--text-bright);letter-spacing:-.5px;margin-top:10px;font-size:28px;font-weight:700}.core-selector{justify-content:center;align-items:center;gap:6px;margin-bottom:20px;display:flex}.core-btn small{opacity:.5;margin-top:1px;font-size:8px;font-weight:400;line-height:1;display:block}.scaling-layout{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;display:grid}.scaling-panel{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;padding:16px}.scaling-panel-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.block-count-badge{border:1px solid var(--border);background:var(--bg-cell);color:var(--text-dim);border-radius:20px;padding:3px 10px;font-family:SF Mono,monospace;font-size:12px}.grid-container{margin-bottom:10px}.block-grid{border-radius:6px;width:100%;height:200px;display:block}.scale-stats{color:var(--text-dim);text-align:center;font-size:12px;line-height:1.4}.scale-stats em{color:var(--text-bright);font-style:normal;font-weight:600}.timeline-area{align-items:center;gap:16px;margin-bottom:16px;display:flex}.timeline-tracks{flex-direction:column;flex:1;gap:6px;display:flex}.timeline-row{align-items:center;gap:10px;display:flex}.timeline-label{text-align:right;flex-shrink:0;width:56px;font-size:11px;font-weight:600}.timeline-track{background:#1a1a22;border-radius:4px;flex:1;height:8px;overflow:hidden}.timeline-fill{border-radius:4px;width:0%;height:100%;transition:width 50ms linear}.timeline-fill-sha{background:var(--amber)}.timeline-fill-blake{background:var(--purple)}.tree-section{max-width:1200px;margin:0 auto}.tree-presets{justify-content:center;align-items:center;gap:6px;margin-bottom:20px;display:flex}.tree-canvas{width:100%;height:260px;display:block}.tree-controls{justify-content:center;margin-bottom:16px;display:flex}@keyframes finishPulse{0%{transform:scale(1)}50%{transform:scale(1.008)}to{transform:scale(1)}}.algo-panel.finish-pulse{border-color:var(--green-border);animation:.4s ease-out finishPulse}.tower-block-sha.completed{background:#f59e0b99}.tower-block-sha.current{background:var(--amber);box-shadow:0 0 8px var(--amber-glow)}.tower-block-blake.completed{background:#7c3aed99}.tower-block-blake.current{background:var(--purple-bright);box-shadow:0 0 8px var(--purple-glow)}@keyframes doneSlam{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.done-overlay.visible .done-text{animation:.4s ease-out doneSlam}.scaling-title,.tree-section .scaling-title{font-size:18px}@media (max-width:900px){.race-layout{grid-template-columns:1fr}.towers{flex-direction:row;order:-1;justify-content:center;margin-bottom:8px}.tower{flex-direction:row;gap:1px;width:auto;height:20px}.tower-block{width:4px;height:100%}}@media (max-width:480px){body{padding:12px}.header h1{font-size:20px}.registers,.matrix,.state-label{display:none}.annotation{font-size:10px}.scaling-layout{grid-template-columns:1fr}.scaling-title{font-size:16px}.size-display{font-size:24px}.block-grid{height:160px}.timeline-area{flex-direction:column}.timeline-area .btn{width:100%}.tree-canvas{height:200px}.tree-controls{margin-bottom:12px}.core-selector{flex-wrap:wrap}}
