| |
| |
| |
|
|
| :root { |
| |
| --bg-base: hsl(222, 25%, 8%); |
| --bg-card: hsla(222, 20%, 12%, 0.7); |
| --bg-card-hover: hsla(222, 20%, 15%, 0.8); |
| --border-glow: hsla(230, 80%, 65%, 0.15); |
| --border-glow-focus: hsla(230, 80%, 65%, 0.4); |
| |
| |
| --accent-indigo: hsl(235, 85%, 65%); |
| --accent-indigo-glow: hsla(235, 85%, 65%, 0.35); |
| --accent-violet: hsl(265, 85%, 65%); |
| --accent-violet-glow: hsla(265, 85%, 65%, 0.25); |
| --accent-amber: hsl(35, 95%, 55%); |
| --accent-amber-glow: hsla(35, 95%, 55%, 0.25); |
| --accent-mint: hsl(155, 85%, 50%); |
| --accent-rose: hsl(345, 85%, 60%); |
| |
| |
| --text-primary: hsl(210, 20%, 95%); |
| --text-secondary: hsl(210, 10%, 75%); |
| --text-muted: hsl(210, 10%, 55%); |
| |
| |
| --font-heading: 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; |
| --font-body: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; |
| --font-mono: 'Fira Code', monospace; |
| --border-radius-lg: 16px; |
| --border-radius-md: 10px; |
| --border-radius-sm: 6px; |
| --shadow-premium: 0 8px 32px 0 rgba(0, 0, 0, 0.5); |
| --transition-smooth: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); |
| } |
|
|
| |
| * { |
| box-sizing: border-box; |
| margin: 0; |
| padding: 0; |
| } |
|
|
| body { |
| background-color: var(--bg-base); |
| background-image: |
| radial-gradient(at 10% 20%, hsla(235, 85%, 50%, 0.05) 0px, transparent 50%), |
| radial-gradient(at 90% 80%, hsla(265, 85%, 50%, 0.05) 0px, transparent 50%); |
| color: var(--text-primary); |
| font-family: var(--font-body); |
| min-height: 100vh; |
| padding: 20px; |
| overflow-x: hidden; |
| } |
|
|
| |
| .card { |
| background: var(--bg-card); |
| backdrop-filter: blur(12px); |
| -webkit-backdrop-filter: blur(12px); |
| border: 1px solid var(--border-glow); |
| border-radius: var(--border-radius-lg); |
| box-shadow: var(--shadow-premium); |
| transition: var(--transition-smooth); |
| } |
|
|
| .card:hover { |
| border-color: hsla(230, 80%, 65%, 0.25); |
| box-shadow: 0 12px 40px 0 rgba(0, 0, 0, 0.6); |
| } |
|
|
| |
| ::-webkit-scrollbar { |
| width: 6px; |
| height: 6px; |
| } |
| ::-webkit-scrollbar-track { |
| background: transparent; |
| } |
| ::-webkit-scrollbar-thumb { |
| background: var(--text-muted); |
| border-radius: 3px; |
| } |
| ::-webkit-scrollbar-thumb:hover { |
| background: var(--text-secondary); |
| } |
|
|
| |
| .app-container { |
| max-width: 1400px; |
| margin: 0 auto; |
| display: flex; |
| flex-direction: column; |
| gap: 20px; |
| } |
|
|
| |
| .app-header { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| padding: 10px 5px; |
| border-bottom: 1px solid var(--border-glow); |
| } |
|
|
| .logo-area { |
| display: flex; |
| align-items: center; |
| gap: 12px; |
| } |
|
|
| .logo-icon { |
| font-size: 2rem; |
| color: var(--accent-indigo); |
| text-shadow: 0 0 15px var(--accent-indigo-glow); |
| animation: rotatePulse 4s infinite ease-in-out; |
| } |
|
|
| h1 { |
| font-family: var(--font-heading); |
| font-size: 1.6rem; |
| font-weight: 800; |
| letter-spacing: -0.5px; |
| } |
|
|
| .accent-text { |
| background: linear-gradient(135deg, var(--accent-indigo), var(--accent-violet)); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| } |
|
|
| |
| .status-badge { |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| font-size: 0.85rem; |
| background: var(--bg-card); |
| border: 1px solid var(--border-glow); |
| padding: 6px 14px; |
| border-radius: 30px; |
| color: var(--text-secondary); |
| font-weight: 500; |
| } |
|
|
| .indicator { |
| width: 8px; |
| height: 8px; |
| background-color: var(--accent-rose); |
| border-radius: 50%; |
| box-shadow: 0 0 8px var(--accent-rose); |
| } |
|
|
| .status-badge.cuda-active .indicator { |
| background-color: var(--accent-mint); |
| box-shadow: 0 0 10px var(--accent-mint); |
| animation: pulseGlow 1.5s infinite alternate; |
| } |
|
|
| .status-badge.cpu-active .indicator { |
| background-color: var(--accent-amber); |
| box-shadow: 0 0 10px var(--accent-amber); |
| animation: pulseGlow 1.5s infinite alternate; |
| } |
|
|
| |
| .main-layout { |
| display: grid; |
| grid-template-columns: 350px 1fr; |
| gap: 20px; |
| } |
|
|
| |
| .sidebar { |
| padding: 24px; |
| display: flex; |
| flex-direction: column; |
| gap: 24px; |
| height: fit-content; |
| } |
|
|
| h2 { |
| font-family: var(--font-heading); |
| font-size: 1.15rem; |
| font-weight: 700; |
| text-transform: uppercase; |
| letter-spacing: 0.5px; |
| color: var(--text-primary); |
| border-left: 3px solid var(--accent-indigo); |
| padding-left: 10px; |
| margin-bottom: 4px; |
| } |
|
|
| .control-group { |
| display: flex; |
| flex-direction: column; |
| gap: 10px; |
| } |
|
|
| .group-label { |
| font-size: 0.85rem; |
| font-weight: 600; |
| color: var(--text-secondary); |
| text-transform: uppercase; |
| letter-spacing: 0.5px; |
| } |
|
|
| .help-text { |
| font-size: 0.75rem; |
| color: var(--text-muted); |
| line-height: 1.35; |
| } |
|
|
| |
| .radio-toggle { |
| display: grid; |
| grid-template-columns: 1fr 1fr; |
| background: hsla(222, 20%, 6%, 0.5); |
| border: 1px solid var(--border-glow); |
| padding: 4px; |
| border-radius: var(--border-radius-md); |
| } |
|
|
| .radio-toggle input[type="radio"] { |
| display: none; |
| } |
|
|
| .toggle-btn { |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| padding: 8px 4px; |
| font-size: 0.8rem; |
| font-weight: 600; |
| color: var(--text-muted); |
| border-radius: var(--border-radius-sm); |
| cursor: pointer; |
| text-align: center; |
| transition: var(--transition-smooth); |
| } |
|
|
| .radio-toggle input[type="radio"]:checked + .toggle-btn { |
| background: var(--accent-indigo); |
| color: var(--text-primary); |
| box-shadow: 0 0 12px var(--accent-indigo-glow); |
| } |
|
|
| |
| .slider-header { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| } |
|
|
| .slider-value { |
| font-family: var(--font-mono); |
| font-size: 0.9rem; |
| color: var(--accent-indigo); |
| font-weight: 600; |
| } |
|
|
| .styled-range { |
| -webkit-appearance: none; |
| width: 100%; |
| height: 6px; |
| background: hsla(222, 20%, 6%, 0.8); |
| border-radius: 3px; |
| outline: none; |
| border: 1px solid var(--border-glow); |
| } |
|
|
| .styled-range::-webkit-slider-thumb { |
| -webkit-appearance: none; |
| appearance: none; |
| width: 16px; |
| height: 16px; |
| border-radius: 50%; |
| background: var(--accent-indigo); |
| cursor: pointer; |
| box-shadow: 0 0 10px var(--accent-indigo-glow); |
| border: 2px solid var(--text-primary); |
| transition: var(--transition-smooth); |
| } |
|
|
| .styled-range::-webkit-slider-thumb:hover { |
| transform: scale(1.2); |
| box-shadow: 0 0 15px var(--accent-indigo); |
| } |
|
|
| .range-labels { |
| display: flex; |
| justify-content: space-between; |
| font-size: 0.7rem; |
| color: var(--text-muted); |
| font-weight: 500; |
| } |
|
|
| |
| .head-header { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| } |
|
|
| .head-actions { |
| display: flex; |
| gap: 8px; |
| } |
|
|
| .text-btn { |
| background: none; |
| border: none; |
| color: var(--text-muted); |
| font-size: 0.7rem; |
| font-weight: 600; |
| cursor: pointer; |
| text-transform: uppercase; |
| transition: var(--transition-smooth); |
| } |
|
|
| .text-btn:hover { |
| color: var(--accent-indigo); |
| } |
|
|
| .head-grid { |
| display: grid; |
| grid-template-columns: repeat(7, 1fr); |
| gap: 6px; |
| } |
|
|
| .head-check-container { |
| position: relative; |
| display: block; |
| } |
|
|
| .head-check-container input { |
| position: absolute; |
| opacity: 0; |
| cursor: pointer; |
| height: 0; |
| width: 0; |
| } |
|
|
| .head-tile { |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| height: 32px; |
| border: 1px solid var(--border-glow); |
| border-radius: var(--border-radius-sm); |
| background: hsla(222, 20%, 6%, 0.4); |
| font-family: var(--font-mono); |
| font-size: 0.75rem; |
| color: var(--text-muted); |
| cursor: pointer; |
| user-select: none; |
| transition: var(--transition-smooth); |
| } |
|
|
| .head-check-container input:checked ~ .head-tile { |
| border-color: var(--accent-violet); |
| background: hsla(265, 85%, 65%, 0.15); |
| color: var(--accent-violet); |
| box-shadow: 0 0 8px var(--accent-violet-glow); |
| font-weight: 600; |
| } |
|
|
| .head-check-container input:checked ~ .head-tile:hover { |
| box-shadow: 0 0 12px var(--accent-violet); |
| } |
|
|
| .head-tile:hover { |
| border-color: var(--text-secondary); |
| color: var(--text-primary); |
| } |
|
|
| |
| .panel-divider { |
| border-top: 1px solid var(--border-glow); |
| padding-top: 20px; |
| gap: 16px; |
| } |
|
|
| .control-subgroup { |
| display: flex; |
| flex-direction: column; |
| gap: 8px; |
| } |
|
|
| .control-subgroup label { |
| font-size: 0.75rem; |
| font-weight: 600; |
| color: var(--text-secondary); |
| } |
|
|
| |
| .workspace { |
| display: flex; |
| flex-direction: column; |
| gap: 20px; |
| } |
|
|
| |
| .tab-container { |
| display: flex; |
| gap: 10px; |
| } |
|
|
| .tab-btn { |
| background: var(--bg-card); |
| border: 1px solid var(--border-glow); |
| border-radius: 30px; |
| color: var(--text-muted); |
| font-family: var(--font-heading); |
| font-size: 0.85rem; |
| font-weight: 600; |
| padding: 10px 22px; |
| cursor: pointer; |
| transition: var(--transition-smooth); |
| box-shadow: var(--shadow-premium); |
| } |
|
|
| .tab-btn:hover { |
| color: var(--text-primary); |
| border-color: var(--border-glow-focus); |
| } |
|
|
| .tab-btn.active { |
| background: var(--accent-indigo); |
| color: var(--text-primary); |
| border-color: var(--accent-indigo); |
| box-shadow: 0 0 15px var(--accent-indigo-glow); |
| } |
|
|
| |
| .view-content { |
| min-height: 480px; |
| padding: 24px; |
| position: relative; |
| } |
|
|
| .view-panel { |
| display: none; |
| flex-direction: column; |
| gap: 20px; |
| height: 100%; |
| } |
|
|
| .view-panel.active { |
| display: flex; |
| } |
|
|
| .panel-header { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| border-bottom: 1px solid var(--border-glow); |
| padding-bottom: 12px; |
| } |
|
|
| .panel-header h3 { |
| font-family: var(--font-heading); |
| font-size: 1.1rem; |
| font-weight: 600; |
| } |
|
|
| .panel-subtitle { |
| font-size: 0.8rem; |
| color: var(--text-muted); |
| } |
|
|
| .legend { |
| display: flex; |
| align-items: center; |
| gap: 10px; |
| font-size: 0.75rem; |
| color: var(--text-muted); |
| font-weight: 500; |
| } |
|
|
| .gradient-bar { |
| width: 120px; |
| height: 10px; |
| background: linear-gradient(90deg, hsla(265, 80%, 20%, 0.1), var(--accent-indigo), var(--accent-amber)); |
| border-radius: 5px; |
| border: 1px solid var(--border-glow); |
| } |
|
|
| |
| .heatmap-axes-container { |
| display: flex; |
| margin-top: 15px; |
| overflow: auto; |
| padding-bottom: 10px; |
| } |
|
|
| .y-axis-labels { |
| display: grid; |
| gap: 2px; |
| padding-top: 3px; |
| padding-right: 12px; |
| min-width: 80px; |
| text-align: right; |
| } |
|
|
| .y-axis-labels div, .x-axis-labels div { |
| font-family: var(--font-mono); |
| font-size: 0.72rem; |
| font-weight: 500; |
| color: var(--text-secondary); |
| white-space: nowrap; |
| text-overflow: ellipsis; |
| overflow: hidden; |
| } |
|
|
| .heatmap-grid-area { |
| display: flex; |
| flex-direction: column; |
| flex-grow: 1; |
| } |
|
|
| .heatmap-grid { |
| display: grid; |
| gap: 2px; |
| background: hsla(222, 20%, 6%, 0.5); |
| border: 1px solid var(--border-glow); |
| padding: 3px; |
| border-radius: var(--border-radius-md); |
| width: fit-content; |
| } |
|
|
| .heatmap-cell { |
| aspect-ratio: 1 / 1; |
| border-radius: 3px; |
| cursor: pointer; |
| transition: transform 0.15s ease-out; |
| } |
|
|
| .heatmap-cell:hover { |
| transform: scale(1.15); |
| box-shadow: 0 0 10px rgba(255, 255, 255, 0.4); |
| z-index: 10; |
| } |
|
|
| .x-axis-labels { |
| display: grid; |
| gap: 2px; |
| padding-left: 3px; |
| padding-right: 3px; |
| margin-top: 10px; |
| height: 80px; |
| width: fit-content; |
| } |
|
|
| .x-axis-labels div { |
| width: 32px; |
| text-align: left; |
| transform: rotate(45deg); |
| transform-origin: top left; |
| margin-left: 16px; |
| overflow: visible; |
| text-overflow: unset; |
| white-space: nowrap; |
| } |
|
|
| .heatmap-tooltip { |
| text-align: center; |
| background: hsla(222, 25%, 6%, 0.85); |
| border: 1px solid var(--border-glow); |
| border-radius: var(--border-radius-sm); |
| padding: 10px; |
| font-size: 0.8rem; |
| color: var(--text-secondary); |
| font-family: var(--font-mono); |
| } |
|
|
| .heatmap-tooltip strong { |
| color: var(--accent-amber); |
| } |
|
|
| |
| .connections-wrapper { |
| display: flex; |
| justify-content: space-between; |
| align-items: stretch; |
| height: auto; |
| min-height: 380px; |
| margin-top: 10px; |
| position: relative; |
| padding-bottom: 10px; |
| } |
|
|
| .tokens-column { |
| display: flex; |
| flex-direction: column; |
| justify-content: space-between; |
| gap: 6px; |
| width: 140px; |
| z-index: 10; |
| } |
|
|
| .token-node { |
| font-family: var(--font-mono); |
| font-size: 0.78rem; |
| padding: 6px 12px; |
| background: var(--bg-card); |
| border: 1px solid var(--border-glow); |
| border-radius: var(--border-radius-sm); |
| text-align: center; |
| cursor: pointer; |
| white-space: nowrap; |
| text-overflow: ellipsis; |
| overflow: hidden; |
| flex-shrink: 0; |
| min-height: 28px; |
| transition: var(--transition-smooth); |
| } |
|
|
| .token-node:hover, .token-node.hovered { |
| border-color: var(--accent-indigo); |
| background: hsla(235, 85%, 65%, 0.12); |
| color: var(--text-primary); |
| box-shadow: 0 0 10px var(--accent-indigo-glow); |
| transform: scale(1.05); |
| } |
|
|
| .token-node.dimmed { |
| opacity: 0.35; |
| border-color: transparent; |
| } |
|
|
| .svg-container { |
| position: absolute; |
| left: 140px; |
| right: 140px; |
| top: 0; |
| bottom: 0; |
| pointer-events: none; |
| } |
|
|
| svg path { |
| fill: none; |
| stroke-linecap: round; |
| transition: stroke 0.2s ease, stroke-width 0.2s ease, opacity 0.2s ease; |
| } |
|
|
| |
| .playground-console { |
| padding: 20px 24px; |
| display: flex; |
| flex-direction: column; |
| gap: 15px; |
| } |
|
|
| .console-input-row { |
| display: flex; |
| gap: 14px; |
| } |
|
|
| .input-container { |
| flex-grow: 1; |
| position: relative; |
| } |
|
|
| .input-container input { |
| width: 100%; |
| background: hsla(222, 20%, 6%, 0.8); |
| border: 1px solid var(--border-glow); |
| border-radius: var(--border-radius-md); |
| padding: 14px 20px; |
| color: var(--text-primary); |
| font-family: var(--font-body); |
| font-size: 0.9rem; |
| outline: none; |
| transition: var(--transition-smooth); |
| } |
|
|
| .input-container input:focus { |
| border-color: var(--accent-indigo); |
| box-shadow: 0 0 12px var(--accent-indigo-glow); |
| } |
|
|
| .glowing-btn { |
| background: linear-gradient(135deg, var(--accent-indigo), var(--accent-violet)); |
| color: var(--text-primary); |
| border: none; |
| border-radius: var(--border-radius-md); |
| font-family: var(--font-heading); |
| font-size: 0.9rem; |
| font-weight: 600; |
| padding: 0 30px; |
| cursor: pointer; |
| box-shadow: 0 0 15px var(--accent-indigo-glow); |
| transition: var(--transition-smooth); |
| } |
|
|
| .glowing-btn:hover { |
| box-shadow: 0 0 22px var(--accent-indigo); |
| transform: translateY(-1px); |
| } |
|
|
| .glowing-btn:active { |
| transform: translateY(1px); |
| } |
|
|
| .presets-row { |
| display: flex; |
| align-items: center; |
| gap: 10px; |
| flex-wrap: wrap; |
| } |
|
|
| .presets-label { |
| font-size: 0.78rem; |
| font-weight: 700; |
| color: var(--text-muted); |
| text-transform: uppercase; |
| } |
|
|
| .preset-btn { |
| background: var(--bg-card); |
| border: 1px solid var(--border-glow); |
| border-radius: 30px; |
| color: var(--text-secondary); |
| font-size: 0.75rem; |
| padding: 6px 14px; |
| cursor: pointer; |
| transition: var(--transition-smooth); |
| } |
|
|
| .preset-btn:hover { |
| color: var(--text-primary); |
| border-color: var(--border-glow-focus); |
| background: var(--bg-card-hover); |
| } |
|
|
| .console-log-box { |
| border-top: 1px solid var(--border-glow); |
| padding-top: 12px; |
| } |
|
|
| .console-log { |
| background: hsla(222, 20%, 4%, 0.6); |
| border: 1px solid var(--border-glow); |
| border-radius: var(--border-radius-sm); |
| padding: 10px 14px; |
| font-family: var(--font-mono); |
| font-size: 0.7rem; |
| color: var(--text-secondary); |
| height: 70px; |
| overflow-y: auto; |
| display: flex; |
| flex-direction: column; |
| gap: 4px; |
| } |
|
|
| .console-log div { |
| line-height: 1.4; |
| } |
|
|
| .console-log .log-success { color: var(--accent-mint); } |
| .console-log .log-warning { color: var(--accent-amber); } |
| .console-log .log-error { color: var(--accent-rose); } |
|
|
| |
| .d3-tree-wrapper { |
| width: 100%; |
| height: 400px; |
| overflow: auto; |
| background: hsla(222, 20%, 4%, 0.4); |
| border-radius: var(--border-radius-lg); |
| border: 1px solid var(--border-glow); |
| position: relative; |
| } |
|
|
| #d3-tree-canvas { |
| width: 100%; |
| height: 100%; |
| min-width: 600px; |
| } |
|
|
| .node circle { |
| fill: var(--bg-card); |
| stroke: var(--accent-indigo); |
| stroke-width: 2.5px; |
| cursor: pointer; |
| transition: var(--transition-smooth); |
| } |
|
|
| .node.leaf circle { |
| stroke: var(--accent-violet); |
| } |
|
|
| .node circle:hover { |
| fill: var(--accent-indigo-glow); |
| transform: scale(1.15); |
| } |
|
|
| .node text { |
| font-family: var(--font-mono); |
| font-size: 0.78rem; |
| fill: var(--text-secondary); |
| font-weight: 500; |
| pointer-events: none; |
| } |
|
|
| .node:hover text { |
| fill: var(--text-primary); |
| font-weight: 600; |
| } |
|
|
| .link { |
| fill: none; |
| stroke: var(--border-glow); |
| stroke-opacity: 0.6; |
| stroke-linecap: round; |
| transition: var(--transition-smooth); |
| } |
|
|
| .link.high-probability { |
| stroke: var(--accent-indigo); |
| stroke-opacity: 0.85; |
| } |
|
|
| |
| .multihead-wrapper { |
| display: grid; |
| grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); |
| gap: 16px; |
| max-height: 480px; |
| overflow-y: auto; |
| padding-right: 5px; |
| } |
|
|
| .multihead-card { |
| padding: 12px; |
| background: var(--bg-card); |
| border: 1px solid var(--border-glow); |
| border-radius: var(--border-radius-md); |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| gap: 10px; |
| cursor: pointer; |
| transition: var(--transition-smooth); |
| } |
|
|
| .multihead-card:hover { |
| border-color: var(--accent-indigo); |
| transform: translateY(-2px); |
| box-shadow: 0 4px 15px rgba(0,0,0,0.4); |
| } |
|
|
| .multihead-card.active-head { |
| border-color: var(--accent-violet); |
| box-shadow: 0 0 10px var(--accent-violet-glow); |
| background: hsla(265, 85%, 65%, 0.05); |
| } |
|
|
| .multihead-title { |
| font-family: var(--font-heading); |
| font-size: 0.8rem; |
| font-weight: 600; |
| color: var(--text-primary); |
| } |
|
|
| .multihead-mini-grid { |
| display: grid; |
| gap: 1px; |
| padding: 2px; |
| background: rgba(0,0,0,0.3); |
| border-radius: 4px; |
| } |
|
|
| .mini-cell { |
| width: 6px; |
| height: 6px; |
| border-radius: 1px; |
| } |
|
|
| |
| .math-drawer { |
| position: fixed; |
| top: 0; |
| right: 0; |
| bottom: 0; |
| width: 420px; |
| background: var(--bg-card); |
| backdrop-filter: blur(25px); |
| -webkit-backdrop-filter: blur(25px); |
| border-left: 1px solid var(--border-glow); |
| box-shadow: -10px 0 40px rgba(0, 0, 0, 0.7); |
| z-index: 1000; |
| display: flex; |
| flex-direction: column; |
| transform: translateX(105%); |
| transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); |
| } |
|
|
| .math-drawer.open { |
| transform: translateX(0); |
| } |
|
|
| .drawer-header { |
| padding: 24px; |
| border-bottom: 1px solid var(--border-glow); |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| } |
|
|
| .drawer-header h3 { |
| font-family: var(--font-heading); |
| font-size: 1.15rem; |
| font-weight: 700; |
| color: var(--text-primary); |
| } |
|
|
| .close-drawer-btn { |
| background: none; |
| border: none; |
| color: var(--text-muted); |
| font-size: 1.8rem; |
| cursor: pointer; |
| transition: var(--transition-smooth); |
| } |
|
|
| .close-drawer-btn:hover { |
| color: var(--accent-rose); |
| transform: scale(1.1); |
| } |
|
|
| .drawer-body { |
| padding: 24px; |
| overflow-y: auto; |
| display: flex; |
| flex-direction: column; |
| gap: 20px; |
| } |
|
|
| .math-section { |
| display: flex; |
| flex-direction: column; |
| gap: 8px; |
| background: hsla(222, 20%, 6%, 0.4); |
| padding: 14px; |
| border-radius: var(--border-radius-md); |
| border: 1px solid var(--border-glow); |
| } |
|
|
| .math-section h4 { |
| font-family: var(--font-heading); |
| font-size: 0.85rem; |
| font-weight: 700; |
| text-transform: uppercase; |
| color: var(--text-secondary); |
| letter-spacing: 0.5px; |
| } |
|
|
| .math-formula { |
| font-family: var(--font-mono); |
| font-size: 0.85rem; |
| color: var(--accent-amber); |
| background: rgba(0,0,0,0.3); |
| padding: 10px; |
| border-radius: var(--border-radius-sm); |
| text-align: center; |
| } |
|
|
| .vector-block { |
| display: flex; |
| flex-direction: column; |
| gap: 4px; |
| font-family: var(--font-mono); |
| font-size: 0.72rem; |
| color: var(--text-secondary); |
| max-height: 120px; |
| overflow-y: auto; |
| } |
|
|
| .vector-block span { |
| padding: 2px 6px; |
| border-bottom: 1px dashed rgba(255,255,255,0.05); |
| } |
|
|
| |
| @keyframes rotatePulse { |
| 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } |
| 50% { transform: scale(1.1) rotate(180deg); opacity: 1; } |
| 100% { transform: scale(1) rotate(360deg); opacity: 0.8; } |
| } |
|
|
| @keyframes pulseGlow { |
| from { transform: scale(0.9); opacity: 0.6; box-shadow: 0 0 4px currentColor; } |
| to { transform: scale(1.1); opacity: 1; box-shadow: 0 0 12px currentColor; } |
| } |
|
|
| @keyframes flowPulse { |
| from { opacity: 0.4; transform: translateX(-3px); } |
| to { opacity: 1; transform: translateX(3px); } |
| } |
|
|
| |
| @media (max-width: 1100px) { |
| .main-layout { |
| grid-template-columns: 1fr; |
| } |
| } |
|
|