:root { --background: #070b14; --panel: #0f1726; --panel-light: #151f31; --border: #263449; --text: #f3f6fb; --muted: #93a4bb; --accent: #67a6ff; --accent-soft: rgba(103, 166, 255, 0.12); } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; background: var(--background); color: var(--text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } button, input { font: inherit; } button { color: inherit; } .site-header { display: flex; align-items: center; justify-content: space-between; min-height: 72px; padding: 14px 28px; border-bottom: 1px solid var(--border); background: rgba(7, 11, 20, 0.94); } .brand h1 { margin: 0; font-size: 21px; } .brand p { margin: 4px 0 0; color: var(--muted); font-size: 13px; } .model-badge { padding: 8px 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--panel); color: var(--muted); cursor: default; font-size: 13px; user-select: none; } .explorer { display: grid; grid-template-columns: 220px 260px minmax(0, 1fr); min-height: calc(100vh - 72px); } .sidebar, .channel-panel { border-right: 1px solid var(--border); background: var(--panel); } .sidebar { padding: 24px 14px; } .section-label { margin: 0 10px 15px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; } .layer-list { display: grid; gap: 5px; } .layer-button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 11px 12px; border: 1px solid transparent; border-radius: 8px; background: transparent; cursor: pointer; text-align: left; } .layer-button:hover, .layer-button.active { border-color: var(--border); background: var(--accent-soft); } .layer-button.active { color: var(--accent); } .layer-count { color: var(--muted); font-size: 11px; } .channel-panel { padding: 24px 16px; } .channel-heading { margin: 0 0 14px; font-size: 17px; } .channel-search { width: 100%; margin-bottom: 16px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px; outline: none; background: #080e19; color: var(--text); } .channel-search:focus { border-color: var(--accent); } .channel-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; max-height: calc(100vh - 190px); overflow-y: auto; padding-right: 4px; } .channel-button { padding: 8px 4px; border: 1px solid var(--border); border-radius: 6px; background: #0a111e; color: var(--muted); cursor: pointer; font-family: ui-monospace, monospace; font-size: 11px; } .channel-button:hover, .channel-button.active { border-color: var(--accent); background: var(--accent-soft); color: var(--text); } .content { min-width: 0; padding: 26px; } .neuron-header { margin-bottom: 22px; } .neuron-header h2 { margin: 0; font-size: 25px; } .neuron-header p { margin: 6px 0 0; color: var(--muted); } .neuron-layout { display: grid; grid-template-columns: minmax(280px, 0.8fr) minmax(420px, 1.2fr); gap: 24px; align-items: start; } .activation-panel { position: sticky; top: 24px; padding: 18px; border: 1px solid var(--border); border-radius: 12px; background: var(--panel); } .panel-title { margin: 0 0 14px; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; } .image-frame { display: grid; place-items: center; aspect-ratio: 1; overflow: hidden; border-radius: 9px; background: #050810; } .image-frame img { display: block; width: 100%; height: 100%; object-fit: contain; } .placeholder { color: var(--muted); text-align: center; } .examples-panel { min-width: 0; } .examples-heading { margin: 0 0 14px; font-size: 18px; } .example-placeholder { padding: 36px; border: 1px dashed var(--border); border-radius: 12px; color: var(--muted); text-align: center; } @media (max-width: 1000px) { .explorer { grid-template-columns: 190px 230px minmax(0, 1fr); } .neuron-layout { grid-template-columns: 1fr; } .activation-panel { position: static; } } @media (max-width: 760px) { .site-header { align-items: flex-start; gap: 12px; padding: 14px 18px; } .model-badge { display: none; } .explorer { display: block; } .sidebar, .channel-panel { border-right: 0; border-bottom: 1px solid var(--border); } .channel-grid { max-height: 220px; grid-template-columns: repeat(6, 1fr); } .content { padding: 20px 16px; } } .example-card { margin-bottom: 18px; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--panel); } .example-header { display: flex; justify-content: space-between; gap: 14px; margin-bottom: 14px; color: var(--muted); font-size: 13px; } .example-header strong { color: var(--text); } .example-images { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .example-images figure { min-width: 0; margin: 0; } .example-images figcaption { margin-bottom: 7px; color: var(--muted); font-size: 12px; } .example-images img { display: block; width: 100%; aspect-ratio: 1; border-radius: 8px; background: #050810; object-fit: contain; } .example-source { margin: 12px 0 0; color: var(--muted); font-family: ui-monospace, monospace; font-size: 11px; } .missing-image { display: grid; place-items: center; aspect-ratio: 1; margin: 0; border: 1px dashed var(--border); border-radius: 8px; color: var(--muted); } @media (max-width: 520px) { .example-images { grid-template-columns: 1fr; } } .enlargeable-image { cursor: zoom-in; } .enlargeable-image:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; } .image-modal[hidden] { display: none; } .image-modal { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 30px; background: rgba(2, 6, 15, 0.94); backdrop-filter: blur(8px); } .modal-content { display: grid; gap: 14px; width: min(1100px, 100%); max-height: calc(100vh - 60px); } .modal-content img { display: block; max-width: 100%; max-height: calc(100vh - 125px); margin: auto; border-radius: 10px; object-fit: contain; } .modal-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; color: var(--muted); } .modal-footer p { margin: 0; } .modal-footer a { color: var(--accent); text-decoration: none; white-space: nowrap; } .modal-close { position: fixed; top: 20px; right: 24px; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: 50%; background: var(--panel); color: var(--text); cursor: pointer; font-size: 30px; line-height: 1; } .modal-close:hover { border-color: var(--accent); } body.modal-open { overflow: hidden; } @media (max-width: 600px) { .image-modal { padding: 18px; } .modal-footer { align-items: flex-start; flex-direction: column; gap: 7px; } } .neuron-navigation { display: flex; gap: 9px; margin-top: 15px; } .neuron-navigation button { padding: 9px 13px; border: 1px solid var(--border); border-radius: 8px; background: var(--panel); color: var(--text); cursor: pointer; } .neuron-navigation button:hover:not(:disabled) { border-color: var(--accent); background: var(--accent-soft); } .neuron-navigation button:disabled { cursor: not-allowed; opacity: 0.4; } @media (max-width: 760px) { .sidebar { padding: 16px 12px 10px; overflow: hidden; } .sidebar .section-label { margin: 0 4px 10px; } .layer-list { display: flex; gap: 8px; overflow-x: auto; padding: 0 2px 10px; scrollbar-width: thin; } .layer-button { flex: 0 0 auto; width: auto; min-width: 118px; } .channel-panel { padding: 16px 14px; } .channel-grid { grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); max-height: 210px; } .content { padding: 22px 14px; } .neuron-layout { grid-template-columns: 1fr; } .activation-panel { width: min(100%, 560px); margin: 0 auto; } .examples-panel { margin-top: 6px; } .neuron-navigation { flex-wrap: wrap; } } @media (max-width: 520px) { .site-header { min-height: 64px; } .brand h1 { font-size: 18px; } .brand p { font-size: 12px; } .neuron-header h2 { font-size: 22px; } .channel-grid { grid-template-columns: repeat(4, 1fr); } .activation-panel { padding: 12px; } .example-card { padding: 12px; } .example-header { align-items: flex-start; flex-direction: column; gap: 4px; } } .skeleton { position: relative; overflow: hidden; background: #162033; } .skeleton::after { position: absolute; inset: 0; content: ""; transform: translateX(-100%); background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.07), transparent ); animation: skeleton-shimmer 1.4s infinite; } .activation-skeleton { width: 100%; height: 100%; } .skeleton-card { pointer-events: none; } .skeleton-line { width: 42%; height: 13px; margin-bottom: 15px; border-radius: 5px; } .skeleton-image { aspect-ratio: 1; border-radius: 8px; } .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; margin: -1px; padding: 0; border: 0; clip: rect(0, 0, 0, 0); white-space: nowrap; } @keyframes skeleton-shimmer { to { transform: translateX(100%); } } @media (prefers-reduced-motion: reduce) { .skeleton::after { animation: none; } } .retry-button { display: block; margin: 14px auto 0; padding: 9px 14px; border: 1px solid var(--accent); border-radius: 8px; background: var(--accent-soft); color: var(--text); cursor: pointer; } .retry-button:hover { background: rgba(103, 166, 255, 0.22); } .retry-button:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; } .header-actions { display: flex; align-items: center; gap: 10px; } .about-button { padding: 8px 13px; border: 1px solid var(--border); border-radius: 999px; background: transparent; color: var(--muted); cursor: pointer; font-size: 13px; } .about-button:hover { border-color: var(--accent); color: var(--text); } .about-dialog { width: min(620px, calc(100% - 32px)); max-height: calc(100vh - 50px); overflow-y: auto; padding: 30px; border: 1px solid var(--border); border-radius: 14px; background: var(--panel); color: var(--text); } .about-dialog::backdrop { background: rgba(2, 6, 15, 0.85); backdrop-filter: blur(5px); } .about-dialog h2 { margin: 0 40px 18px 0; } .about-dialog h3 { margin: 22px 0 7px; color: var(--accent); font-size: 15px; } .about-dialog p { color: var(--muted); line-height: 1.65; } .about-dialog .about-note { padding: 13px; border-left: 3px solid var(--accent); background: var(--accent-soft); } .about-close { position: absolute; top: 16px; right: 18px; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 28px; } .dataset-link { display: inline-block; margin-top: 8px; color: var(--accent); text-decoration: none; } @media (max-width: 520px) { .about-dialog { padding: 24px 20px; } .model-badge { display: none; } } .examples-title-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; } .examples-title-row .examples-heading { margin: 0; } .display-controls { display: flex; gap: 5px; } .display-controls button { padding: 6px 10px; border: 1px solid var(--border); background: var(--panel); color: var(--muted); cursor: pointer; font-size: 12px; } .display-controls button:first-child { border-radius: 7px 0 0 7px; } .display-controls button:last-child { border-radius: 0 7px 7px 0; } .display-controls button.active { border-color: var(--accent); background: var(--accent-soft); color: var(--text); } .examples-panel[data-display-mode="full"] .crop-example { display: none; } .examples-panel[data-display-mode="crop"] .full-example { display: none; } .examples-panel[data-display-mode="full"] .example-images, .examples-panel[data-display-mode="crop"] .example-images { grid-template-columns: 1fr; } @media (max-width: 560px) { .examples-title-row { align-items: flex-start; flex-direction: column; } } button:focus-visible, a:focus-visible, [role="button"]:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; } .layer-button:focus-visible, .channel-button:focus-visible { position: relative; z-index: 1; } .site-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 28px; border-top: 1px solid var(--border); background: var(--panel); color: var(--muted); font-size: 12px; } .site-footer p { margin: 0; } .site-footer nav { display: flex; gap: 16px; } .site-footer a { color: var(--accent); text-decoration: none; } .site-footer a:hover { text-decoration: underline; } @media (max-width: 600px) { .site-footer { align-items: flex-start; flex-direction: column; padding: 16px; } }