Download styles.css from smlflg/HarnessEcosystem: direct link, hf CLI and curl.
- Browser
- Download file 33 kB
-
https://huggingface.co/smlflg/HarnessEcosystem/resolve/main/styles.css
- Command line
-
hf download hf://smlflg/HarnessEcosystem/styles.css
-
curl -L -o styles.css https://huggingface.co/smlflg/HarnessEcosystem/resolve/main/styles.css
33 kB
| :root { | |
| --bg: #07111d; | |
| --bg-soft: #0d1827; | |
| --panel: rgba(12, 23, 38, 0.84); | |
| --panel-strong: rgba(17, 31, 49, 0.94); | |
| --line: rgba(151, 184, 214, 0.17); | |
| --text: #edf3fb; | |
| --muted: #97aac0; | |
| --gold: #f0cf8e; | |
| --teal: #77dfd0; | |
| --green: #91e5a5; | |
| --amber: #f4c16e; | |
| --red: #f08f88; | |
| --shadow: 0 24px 60px rgba(0, 0, 0, 0.34); | |
| --radius: 24px; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| html { | |
| scroll-behavior: smooth; | |
| } | |
| body { | |
| margin: 0; | |
| color: var(--text); | |
| background: | |
| radial-gradient(circle at top left, rgba(47, 120, 173, 0.2), transparent 32%), | |
| radial-gradient(circle at top right, rgba(240, 207, 142, 0.12), transparent 28%), | |
| linear-gradient(180deg, #08111d 0%, #07111d 44%, #0a1522 100%); | |
| font-family: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif; | |
| } | |
| body::before { | |
| content: ""; | |
| position: fixed; | |
| inset: 0; | |
| pointer-events: none; | |
| background-image: | |
| linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px), | |
| linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px); | |
| background-size: 48px 48px; | |
| mask-image: linear-gradient(180deg, black 35%, transparent 100%); | |
| z-index: 0; | |
| } | |
| .page-shell { | |
| width: min(1200px, calc(100vw - 32px)); | |
| margin: 0 auto; | |
| padding: 36px 0 80px; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* --- HERO --- */ | |
| .hero { | |
| display: grid; | |
| grid-template-columns: 1.5fr 0.9fr; | |
| gap: 24px; | |
| align-items: stretch; | |
| margin-bottom: 40px; | |
| } | |
| .hero-copy, | |
| .hero-panel, | |
| .panel, | |
| .card, | |
| .cluster-card, | |
| .evidence-card, | |
| .harness-card, | |
| .law-card, | |
| .antipattern-card, | |
| .diagram-card { | |
| border: 1px solid var(--line); | |
| background: var(--panel); | |
| box-shadow: var(--shadow); | |
| backdrop-filter: blur(18px); | |
| } | |
| .hero-copy { | |
| border-radius: 28px; | |
| padding: 36px; | |
| min-height: 320px; | |
| } | |
| .hero-panel, | |
| .panel { | |
| border-radius: var(--radius); | |
| padding: 24px; | |
| } | |
| .eyebrow, | |
| .kicker { | |
| margin: 0 0 10px; | |
| color: var(--teal); | |
| font-size: 0.82rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.18em; | |
| } | |
| h1, | |
| h2, | |
| h3 { | |
| font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif; | |
| font-weight: 600; | |
| letter-spacing: -0.03em; | |
| } | |
| h1 { | |
| font-size: clamp(2.6rem, 6vw, 5rem); | |
| line-height: 0.95; | |
| margin: 0 0 18px; | |
| max-width: 14ch; | |
| } | |
| h2 { | |
| margin: 0; | |
| font-size: clamp(1.8rem, 3vw, 2.7rem); | |
| } | |
| h3 { | |
| margin-top: 0; | |
| font-size: 1.25rem; | |
| } | |
| .lede { | |
| color: var(--muted); | |
| font-size: 1.08rem; | |
| line-height: 1.7; | |
| max-width: 58ch; | |
| margin: 0; | |
| } | |
| .summary-stat { | |
| display: flex; | |
| align-items: baseline; | |
| justify-content: space-between; | |
| padding: 16px 0; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| .summary-stat:last-child { | |
| border-bottom: 0; | |
| padding-bottom: 0; | |
| } | |
| .summary-stat strong { | |
| font-size: 1.8rem; | |
| font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; | |
| } | |
| .summary-stat span { | |
| color: var(--muted); | |
| } | |
| /* --- SECTIONS --- */ | |
| .section { | |
| margin-top: 48px; | |
| } | |
| .section-heading { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 20px; | |
| align-items: end; | |
| margin-bottom: 18px; | |
| } | |
| /* --- CARDS --- */ | |
| .cards { | |
| display: grid; | |
| gap: 18px; | |
| } | |
| .cards.two { | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| } | |
| .cards.three { | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| } | |
| .cards.four { | |
| grid-template-columns: repeat(4, minmax(0, 1fr)); | |
| } | |
| .card, | |
| .cluster-card, | |
| .evidence-card, | |
| .harness-card, | |
| .law-card, | |
| .antipattern-card, | |
| .diagram-card { | |
| border-radius: 22px; | |
| padding: 22px; | |
| } | |
| .card .label, | |
| .cluster-card .label, | |
| .harness-card .label { | |
| color: var(--muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.14em; | |
| font-size: 0.74rem; | |
| margin-bottom: 12px; | |
| } | |
| .metric { | |
| font-size: 2.4rem; | |
| font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; | |
| margin: 0 0 8px; | |
| } | |
| .supporting { | |
| color: var(--muted); | |
| line-height: 1.65; | |
| margin: 0; | |
| } | |
| .split { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 18px; | |
| margin-top: 18px; | |
| } | |
| /* --- STYLE-FIT MATRIX --- */ | |
| .matrix-wrap { | |
| overflow-x: auto; | |
| border-radius: var(--radius); | |
| border: 1px solid var(--line); | |
| background: var(--panel); | |
| backdrop-filter: blur(18px); | |
| box-shadow: var(--shadow); | |
| } | |
| .matrix-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| min-width: 540px; | |
| } | |
| .matrix-table th, | |
| .matrix-table td { | |
| padding: 14px 16px; | |
| border-bottom: 1px solid var(--line); | |
| font-size: 0.9rem; | |
| vertical-align: middle; | |
| } | |
| .matrix-table th { | |
| font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| letter-spacing: -0.01em; | |
| color: var(--text); | |
| border-bottom: 2px solid var(--line); | |
| } | |
| .matrix-table th:first-child, | |
| .matrix-table td:first-child { | |
| color: var(--text); | |
| font-weight: 500; | |
| text-align: left; | |
| } | |
| .matrix-table td:not(:first-child) { | |
| text-align: center; | |
| } | |
| .matrix-table tr:last-child td { | |
| border-bottom: 0; | |
| } | |
| .fit-badge { | |
| display: inline-block; | |
| padding: 4px 10px; | |
| border-radius: 999px; | |
| font-size: 0.76rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| } | |
| .fit-PERFEKT { background: rgba(145, 229, 165, 0.15); color: var(--green); border: 1px solid rgba(145, 229, 165, 0.3); } | |
| .fit-GUT { background: rgba(119, 223, 208, 0.12); color: var(--teal); border: 1px solid rgba(119, 223, 208, 0.25); } | |
| .fit-OKAY { background: rgba(240, 207, 142, 0.12); color: var(--amber); border: 1px solid rgba(240, 207, 142, 0.25); } | |
| .fit-MITTEL { background: rgba(151, 170, 192, 0.08); color: var(--muted); border: 1px solid rgba(151, 170, 192, 0.18); } | |
| .fit-SCHLECHT { background: rgba(240, 143, 136, 0.10); color: var(--red); border: 1px solid rgba(240, 143, 136, 0.22); } | |
| .fit-GEFAEHRLICH { | |
| background: rgba(240, 80, 70, 0.15); | |
| color: #ff6b62; | |
| border: 1px solid rgba(240, 80, 70, 0.35); | |
| animation: pulse-red 2s ease-in-out infinite; | |
| } | |
| @keyframes pulse-red { | |
| 0%, 100% { box-shadow: none; } | |
| 50% { box-shadow: 0 0 8px rgba(240, 80, 70, 0.5); } | |
| } | |
| /* --- HARNESS CARDS --- */ | |
| .harness-card { | |
| cursor: pointer; | |
| transition: transform 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .harness-card:hover { | |
| transform: translateY(-3px); | |
| box-shadow: 0 32px 80px rgba(0, 0, 0, 0.44); | |
| } | |
| .harness-header { | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: space-between; | |
| gap: 12px; | |
| margin-bottom: 14px; | |
| } | |
| .harness-status { | |
| display: inline-block; | |
| padding: 4px 10px; | |
| border-radius: 999px; | |
| font-size: 0.74rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.12em; | |
| white-space: nowrap; | |
| flex-shrink: 0; | |
| } | |
| .status-aktiv { | |
| background: rgba(119, 223, 208, 0.12); | |
| color: var(--teal); | |
| border: 1px solid rgba(119, 223, 208, 0.28); | |
| } | |
| .status-pending { | |
| background: rgba(151, 170, 192, 0.08); | |
| color: var(--muted); | |
| border: 1px solid rgba(151, 170, 192, 0.18); | |
| } | |
| .harness-color-bar { | |
| width: 4px; | |
| border-radius: 999px; | |
| flex-shrink: 0; | |
| align-self: stretch; | |
| } | |
| .color-teal { background: var(--teal); } | |
| .color-gold { background: var(--gold); } | |
| .color-green { background: var(--green); } | |
| .color-amber { background: var(--amber); } | |
| .color-red { background: var(--red); } | |
| .color-muted { background: var(--muted); } | |
| .harness-body { | |
| display: flex; | |
| gap: 14px; | |
| } | |
| .harness-content { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .harness-details { | |
| max-height: 0; | |
| overflow: hidden; | |
| transition: max-height 0.4s ease, opacity 0.4s ease; | |
| opacity: 0; | |
| } | |
| .harness-card.expanded .harness-details { | |
| max-height: 600px; | |
| opacity: 1; | |
| } | |
| .harness-expand-hint { | |
| margin-top: 14px; | |
| font-size: 0.8rem; | |
| color: var(--muted); | |
| text-align: center; | |
| letter-spacing: 0.06em; | |
| } | |
| .harness-card.expanded .harness-expand-hint { | |
| display: none; | |
| } | |
| .harness-stats-row { | |
| display: flex; | |
| gap: 18px; | |
| flex-wrap: wrap; | |
| margin-top: 16px; | |
| padding-top: 16px; | |
| border-top: 1px solid var(--line); | |
| } | |
| .harness-stat { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| } | |
| .harness-stat .stat-label { | |
| color: var(--muted); | |
| font-size: 0.74rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.12em; | |
| } | |
| .harness-stat .stat-value { | |
| font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; | |
| font-size: 1.2rem; | |
| } | |
| .harness-strengths, | |
| .harness-weaknesses { | |
| margin-top: 14px; | |
| } | |
| .harness-strengths h4, | |
| .harness-weaknesses h4 { | |
| font-size: 0.8rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.14em; | |
| color: var(--muted); | |
| margin: 0 0 8px; | |
| font-weight: 500; | |
| font-family: inherit; | |
| } | |
| .bullet-list { | |
| margin: 0; | |
| padding-left: 18px; | |
| color: var(--muted); | |
| line-height: 1.65; | |
| } | |
| .arch-link { | |
| display: inline-block; | |
| margin-top: 12px; | |
| padding: 7px 14px; | |
| border-radius: 999px; | |
| border: 1px solid var(--line); | |
| color: var(--teal); | |
| font-size: 0.82rem; | |
| text-decoration: none; | |
| transition: background 0.2s ease, border-color 0.2s ease; | |
| } | |
| .arch-link:hover { | |
| background: rgba(119, 223, 208, 0.08); | |
| border-color: rgba(119, 223, 208, 0.3); | |
| } | |
| .placeholder-note { | |
| color: var(--muted); | |
| font-size: 0.92rem; | |
| line-height: 1.6; | |
| font-style: italic; | |
| padding-top: 6px; | |
| } | |
| /* --- ARCHITECTURE DIAGRAMS --- */ | |
| .diagram-card { | |
| border-radius: 22px; | |
| padding: 22px; | |
| text-decoration: none; | |
| color: inherit; | |
| display: block; | |
| transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; | |
| } | |
| .diagram-card:hover { | |
| transform: translateY(-3px); | |
| box-shadow: 0 32px 80px rgba(0, 0, 0, 0.44); | |
| background: rgba(17, 31, 49, 0.94); | |
| } | |
| .diagram-card .label { | |
| color: var(--muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.14em; | |
| font-size: 0.74rem; | |
| margin-bottom: 8px; | |
| } | |
| .diagram-card h3 { | |
| margin: 0 0 8px; | |
| font-size: 1.15rem; | |
| } | |
| .diagram-card .supporting { | |
| font-size: 0.88rem; | |
| } | |
| /* --- LAWS --- */ | |
| .law-card { | |
| border-radius: 22px; | |
| padding: 22px; | |
| display: flex; | |
| gap: 16px; | |
| border-left-width: 3px; | |
| border-left-style: solid; | |
| } | |
| .law-card.law-teal { border-left-color: var(--teal); } | |
| .law-card.law-green { border-left-color: var(--green); } | |
| .law-card.law-gold { border-left-color: var(--gold); } | |
| .law-card.law-amber { border-left-color: var(--amber); } | |
| .law-card.law-red { border-left-color: var(--red); } | |
| .law-card.law-muted { border-left-color: var(--muted); } | |
| .law-number { | |
| font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; | |
| font-size: 2rem; | |
| line-height: 1; | |
| color: var(--muted); | |
| opacity: 0.5; | |
| flex-shrink: 0; | |
| width: 2.4rem; | |
| text-align: right; | |
| } | |
| .law-content { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .law-content h3 { | |
| margin: 0 0 8px; | |
| font-size: 1.1rem; | |
| } | |
| .law-beweis { | |
| margin-top: 10px; | |
| padding-top: 10px; | |
| border-top: 1px solid var(--line); | |
| color: var(--muted); | |
| font-size: 0.84rem; | |
| } | |
| .law-beweis::before { | |
| content: "Beweis: "; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| font-size: 0.74rem; | |
| color: var(--muted); | |
| opacity: 0.7; | |
| } | |
| /* --- ANTI-PATTERNS --- */ | |
| .antipattern-card { | |
| border-radius: 22px; | |
| padding: 22px; | |
| background: rgba(240, 143, 136, 0.05); | |
| border: 1px solid rgba(240, 143, 136, 0.15); | |
| } | |
| .antipattern-card .severity { | |
| display: inline-block; | |
| padding: 3px 8px; | |
| border-radius: 999px; | |
| font-size: 0.72rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| margin-bottom: 10px; | |
| } | |
| .severity-kritisch { | |
| background: rgba(240, 80, 70, 0.2); | |
| color: #ff6b62; | |
| border: 1px solid rgba(240, 80, 70, 0.35); | |
| } | |
| .severity-hoch { | |
| background: rgba(240, 143, 136, 0.15); | |
| color: var(--red); | |
| border: 1px solid rgba(240, 143, 136, 0.28); | |
| } | |
| .severity-mittel { | |
| background: rgba(244, 193, 110, 0.1); | |
| color: var(--amber); | |
| border: 1px solid rgba(244, 193, 110, 0.22); | |
| } | |
| .antipattern-folge { | |
| margin-top: 10px; | |
| font-size: 0.84rem; | |
| color: var(--muted); | |
| padding-top: 10px; | |
| border-top: 1px solid rgba(240, 143, 136, 0.12); | |
| } | |
| .antipattern-folge::before { | |
| content: "Folge: "; | |
| font-size: 0.72rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| font-weight: 600; | |
| color: var(--red); | |
| } | |
| /* --- WAVE MODE --- */ | |
| .wave-phases { | |
| display: grid; | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| gap: 0; | |
| margin-top: 18px; | |
| border-radius: var(--radius); | |
| overflow: hidden; | |
| border: 1px solid var(--line); | |
| box-shadow: var(--shadow); | |
| } | |
| .wave-phase { | |
| padding: 28px; | |
| background: var(--panel); | |
| backdrop-filter: blur(18px); | |
| position: relative; | |
| } | |
| .wave-phase:not(:last-child) { | |
| border-right: 1px solid var(--line); | |
| } | |
| .wave-phase-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 14px; | |
| margin-bottom: 16px; | |
| } | |
| .wave-phase-number { | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| flex-shrink: 0; | |
| } | |
| .phase-teal { background: rgba(119, 223, 208, 0.15); color: var(--teal); border: 1px solid rgba(119, 223, 208, 0.3); } | |
| .phase-gold { background: rgba(240, 207, 142, 0.15); color: var(--gold); border: 1px solid rgba(240, 207, 142, 0.3); } | |
| .phase-green { background: rgba(145, 229, 165, 0.15); color: var(--green); border: 1px solid rgba(145, 229, 165, 0.3); } | |
| .wave-phase h3 { | |
| margin: 0; | |
| font-size: 1.3rem; | |
| } | |
| .wave-phase .supporting { | |
| margin-bottom: 16px; | |
| } | |
| .wave-steps { | |
| display: grid; | |
| gap: 8px; | |
| margin: 0; | |
| padding: 0; | |
| list-style: none; | |
| } | |
| .wave-steps li { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| font-size: 0.88rem; | |
| color: var(--muted); | |
| } | |
| .wave-steps li::before { | |
| content: ""; | |
| width: 6px; | |
| height: 6px; | |
| border-radius: 50%; | |
| background: var(--line); | |
| flex-shrink: 0; | |
| } | |
| .wave-arrow { | |
| position: absolute; | |
| right: -14px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| width: 28px; | |
| height: 28px; | |
| border-radius: 50%; | |
| background: var(--bg-soft); | |
| border: 1px solid var(--line); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: var(--muted); | |
| font-size: 0.9rem; | |
| z-index: 2; | |
| } | |
| .wave-checkpoints { | |
| margin-top: 18px; | |
| padding: 20px 24px; | |
| border-radius: var(--radius); | |
| border: 1px solid var(--line); | |
| background: var(--panel); | |
| backdrop-filter: blur(18px); | |
| display: flex; | |
| gap: 24px; | |
| flex-wrap: wrap; | |
| } | |
| .wave-checkpoint { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| color: var(--muted); | |
| font-size: 0.88rem; | |
| } | |
| .checkpoint-dot { | |
| width: 8px; | |
| height: 8px; | |
| border-radius: 50%; | |
| background: var(--teal); | |
| flex-shrink: 0; | |
| } | |
| /* --- COSTS --- */ | |
| .cost-table-wrap { | |
| border-radius: var(--radius); | |
| overflow: hidden; | |
| border: 1px solid var(--line); | |
| background: var(--panel); | |
| backdrop-filter: blur(18px); | |
| box-shadow: var(--shadow); | |
| margin-bottom: 18px; | |
| } | |
| table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| } | |
| th, | |
| td { | |
| text-align: left; | |
| padding: 14px 16px; | |
| border-bottom: 1px solid var(--line); | |
| vertical-align: top; | |
| color: var(--muted); | |
| line-height: 1.65; | |
| } | |
| th { | |
| color: var(--text); | |
| font-size: 0.84rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.12em; | |
| font-weight: 600; | |
| } | |
| td:first-child { | |
| color: var(--text); | |
| font-weight: 500; | |
| } | |
| tr:last-child td { | |
| border-bottom: 0; | |
| } | |
| .cost-bar-wrap { | |
| height: 8px; | |
| border-radius: 999px; | |
| background: rgba(255, 255, 255, 0.06); | |
| overflow: hidden; | |
| margin-top: 6px; | |
| } | |
| .cost-bar { | |
| height: 100%; | |
| border-radius: 999px; | |
| background: linear-gradient(90deg, var(--teal), var(--green)); | |
| } | |
| .cost-bar.low { | |
| background: linear-gradient(90deg, var(--green), #6fde84); | |
| } | |
| .cost-bar.mid { | |
| background: linear-gradient(90deg, var(--amber), var(--gold)); | |
| } | |
| .cost-bar.high { | |
| background: linear-gradient(90deg, var(--red), #e05f58); | |
| } | |
| /* --- PILL --- */ | |
| .pill-row { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| margin-top: 12px; | |
| } | |
| .pill { | |
| padding: 7px 10px; | |
| border-radius: 999px; | |
| background: rgba(255, 255, 255, 0.06); | |
| color: var(--text); | |
| font-size: 0.86rem; | |
| } | |
| /* --- TUTORIAL (inside expanded harness cards) --- */ | |
| .tutorial-section { | |
| margin-top: 18px; | |
| padding-top: 18px; | |
| border-top: 1px solid var(--line); | |
| display: flex; | |
| flex-direction: column; | |
| gap: 18px; | |
| } | |
| .tutorial-block { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| } | |
| .tutorial-heading { | |
| margin: 0; | |
| font-size: 0.78rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.16em; | |
| color: var(--teal); | |
| font-weight: 600; | |
| font-family: inherit; | |
| } | |
| .tutorial-steps { | |
| margin: 0; | |
| padding-left: 20px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .tutorial-steps li { | |
| font-size: 0.88rem; | |
| color: var(--muted); | |
| line-height: 1.5; | |
| } | |
| /* ADHS Patterns Grid */ | |
| .adhs-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 10px; | |
| } | |
| .adhs-card { | |
| background: rgba(255, 255, 255, 0.03); | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| border-radius: 12px; | |
| padding: 12px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .adhs-card-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 7px; | |
| } | |
| .adhs-emoji { | |
| font-size: 1rem; | |
| } | |
| .adhs-label { | |
| font-size: 0.75rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| color: var(--gold); | |
| font-weight: 600; | |
| } | |
| .adhs-text { | |
| font-size: 0.82rem; | |
| color: var(--muted); | |
| line-height: 1.55; | |
| margin: 0; | |
| } | |
| /* Wellenmodus */ | |
| .wellenmodus-grid { | |
| display: grid; | |
| grid-template-columns: auto 1fr; | |
| gap: 12px; | |
| align-items: start; | |
| } | |
| .wm-role { | |
| background: rgba(119, 223, 208, 0.1); | |
| border: 1px solid rgba(119, 223, 208, 0.2); | |
| color: var(--teal); | |
| border-radius: 999px; | |
| padding: 6px 14px; | |
| font-size: 0.82rem; | |
| font-weight: 600; | |
| white-space: nowrap; | |
| } | |
| .wm-meta { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| } | |
| .wm-entry, | |
| .wm-exit { | |
| font-size: 0.84rem; | |
| color: var(--muted); | |
| margin: 0; | |
| line-height: 1.5; | |
| } | |
| /* Handoff Grid */ | |
| .handoff-grid { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .handoff-card { | |
| display: grid; | |
| grid-template-columns: auto 1fr; | |
| gap: 10px; | |
| align-items: start; | |
| padding: 10px 12px; | |
| background: rgba(255, 255, 255, 0.02); | |
| border: 1px solid rgba(255, 255, 255, 0.05); | |
| border-radius: 10px; | |
| } | |
| .handoff-target { | |
| font-size: 0.75rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| color: var(--green); | |
| font-weight: 600; | |
| white-space: nowrap; | |
| } | |
| .handoff-hint { | |
| font-size: 0.82rem; | |
| color: var(--muted); | |
| margin: 0; | |
| line-height: 1.5; | |
| } | |
| /* --- ROUTER --- */ | |
| .router-section { | |
| margin-top: 40px; | |
| } | |
| .router-input-wrap { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 14px; | |
| border-radius: var(--radius); | |
| border: 1px solid var(--line); | |
| background: var(--panel); | |
| box-shadow: var(--shadow); | |
| backdrop-filter: blur(18px); | |
| padding: 24px; | |
| } | |
| #routerInput { | |
| width: 100%; | |
| min-height: 80px; | |
| padding: 14px 16px; | |
| border-radius: 14px; | |
| border: 1px solid var(--line); | |
| background: rgba(255, 255, 255, 0.04); | |
| color: var(--text); | |
| font-family: inherit; | |
| font-size: 0.95rem; | |
| line-height: 1.6; | |
| resize: vertical; | |
| outline: none; | |
| transition: border-color 0.2s ease; | |
| } | |
| #routerInput:focus { | |
| border-color: rgba(119, 223, 208, 0.4); | |
| } | |
| #routerInput::placeholder { | |
| color: var(--muted); | |
| opacity: 0.7; | |
| } | |
| .router-tags { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| } | |
| .router-tag { | |
| padding: 6px 12px; | |
| border-radius: 999px; | |
| border: 1px solid var(--line); | |
| background: rgba(255, 255, 255, 0.04); | |
| color: var(--muted); | |
| font-size: 0.82rem; | |
| cursor: pointer; | |
| transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease; | |
| } | |
| .router-tag:hover { | |
| background: rgba(119, 223, 208, 0.08); | |
| border-color: rgba(119, 223, 208, 0.3); | |
| color: var(--text); | |
| } | |
| .router-btn { | |
| align-self: flex-start; | |
| padding: 10px 20px; | |
| border-radius: 999px; | |
| border: none; | |
| background: linear-gradient(135deg, var(--teal), #5bc4b6); | |
| color: #07111d; | |
| font-family: inherit; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: opacity 0.2s ease, transform 0.2s ease; | |
| } | |
| .router-btn:hover { | |
| opacity: 0.88; | |
| transform: translateY(-1px); | |
| } | |
| .router-result { | |
| margin-top: 18px; | |
| animation: fadeIn 0.3s ease; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translateY(6px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .router-card { | |
| border-radius: 20px; | |
| padding: 22px 24px; | |
| background: var(--panel); | |
| backdrop-filter: blur(18px); | |
| border: 1px solid var(--line); | |
| box-shadow: var(--shadow); | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| } | |
| .router-wave-badge { | |
| display: inline-block; | |
| padding: 4px 10px; | |
| border-radius: 999px; | |
| font-size: 0.72rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.12em; | |
| background: rgba(119, 223, 208, 0.1); | |
| color: var(--teal); | |
| border: 1px solid rgba(119, 223, 208, 0.2); | |
| align-self: flex-start; | |
| } | |
| .router-harness-name { | |
| margin: 0; | |
| font-size: 1.4rem; | |
| letter-spacing: -0.02em; | |
| } | |
| .router-reason { | |
| color: var(--muted); | |
| font-size: 0.92rem; | |
| line-height: 1.65; | |
| margin: 0; | |
| } | |
| .router-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 16px; | |
| margin-top: 4px; | |
| } | |
| .router-link { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| padding: 7px 14px; | |
| border-radius: 999px; | |
| border: 1px solid var(--line); | |
| color: var(--teal); | |
| font-size: 0.82rem; | |
| text-decoration: none; | |
| transition: background 0.2s ease, border-color 0.2s ease; | |
| } | |
| .router-link:hover { | |
| background: rgba(119, 223, 208, 0.08); | |
| border-color: rgba(119, 223, 208, 0.3); | |
| } | |
| .router-cost { | |
| font-size: 0.82rem; | |
| color: var(--muted); | |
| } | |
| .border-teal { border-left: 3px solid var(--teal); } | |
| .border-gold { border-left: 3px solid var(--gold); } | |
| .border-green { border-left: 3px solid var(--green); } | |
| .border-amber { border-left: 3px solid var(--amber); } | |
| .hidden { display: none; } | |
| /* --- UTILITY --- */ | |
| .muted { | |
| color: var(--muted); | |
| } | |
| .subnote { | |
| color: var(--muted); | |
| font-size: 0.86rem; | |
| margin-top: 10px; | |
| line-height: 1.65; | |
| } | |
| /* --- RESPONSIVE --- */ | |
| @media (max-width: 980px) { | |
| .hero, | |
| .split, | |
| .cards.two, | |
| .cards.three, | |
| .cards.four { | |
| grid-template-columns: 1fr; | |
| } | |
| .wave-phases { | |
| grid-template-columns: 1fr; | |
| } | |
| .wave-phase:not(:last-child) { | |
| border-right: none; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| .wave-arrow { | |
| display: none; | |
| } | |
| } | |
| @media (max-width: 640px) { | |
| .page-shell { | |
| width: min(100vw - 20px, 1200px); | |
| padding-top: 18px; | |
| } | |
| .hero-copy, | |
| .hero-panel, | |
| .panel, | |
| .card, | |
| .cluster-card, | |
| .harness-card, | |
| .law-card, | |
| .antipattern-card, | |
| .diagram-card { | |
| padding: 18px; | |
| } | |
| h1 { | |
| font-size: clamp(2rem, 8vw, 3rem); | |
| } | |
| } | |
| /* ───────────────────────────────────────────── | |
| TUTORIAL PAGE (SPA hash-routed) | |
| ───────────────────────────────────────────── */ | |
| .site-nav { | |
| display: flex; | |
| align-items: center; | |
| gap: 24px; | |
| padding: 16px 0; | |
| margin-bottom: 24px; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| .nav-brand { | |
| font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| color: var(--text); | |
| text-decoration: none; | |
| letter-spacing: -0.02em; | |
| } | |
| .nav-links { | |
| display: flex; | |
| gap: 4px; | |
| } | |
| .nav-link { | |
| padding: 7px 14px; | |
| border-radius: 999px; | |
| font-size: 0.84rem; | |
| color: var(--muted); | |
| text-decoration: none; | |
| transition: background 0.2s ease, color 0.2s ease; | |
| } | |
| .nav-link:hover { | |
| background: rgba(255, 255, 255, 0.05); | |
| color: var(--text); | |
| } | |
| .nav-link.active { | |
| background: rgba(119, 223, 208, 0.12); | |
| color: var(--teal); | |
| border: 1px solid rgba(119, 223, 208, 0.2); | |
| } | |
| /* Tutorial Page */ | |
| .tutorial-page { | |
| max-width: 860px; | |
| margin: 0 auto; | |
| padding-bottom: 80px; | |
| } | |
| .tutorial-topbar { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 32px; | |
| padding-bottom: 16px; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| .tutorial-back { | |
| color: var(--muted); | |
| font-size: 0.88rem; | |
| text-decoration: none; | |
| transition: color 0.2s ease; | |
| } | |
| .tutorial-back:hover { | |
| color: var(--teal); | |
| } | |
| .tutorial-nav { | |
| display: flex; | |
| gap: 16px; | |
| } | |
| .tutorial-prev, | |
| .tutorial-next { | |
| font-size: 0.82rem; | |
| color: var(--muted); | |
| text-decoration: none; | |
| transition: color 0.2s ease; | |
| } | |
| .tutorial-prev:hover, | |
| .tutorial-next:hover { | |
| color: var(--teal); | |
| } | |
| /* Hero */ | |
| .tutorial-hero { | |
| margin-bottom: 40px; | |
| } | |
| .tutorial-hero-badge { | |
| display: inline-block; | |
| padding: 5px 12px; | |
| border-radius: 999px; | |
| font-size: 0.74rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.12em; | |
| margin-bottom: 14px; | |
| } | |
| .tutorial-hero-badge.color-teal { | |
| background: rgba(119, 223, 208, 0.12); | |
| color: var(--teal); | |
| border: 1px solid rgba(119, 223, 208, 0.25); | |
| } | |
| .tutorial-hero-badge.color-gold { | |
| background: rgba(240, 207, 142, 0.12); | |
| color: var(--gold); | |
| border: 1px solid rgba(240, 207, 142, 0.25); | |
| } | |
| .tutorial-hero-badge.color-green { | |
| background: rgba(145, 229, 165, 0.12); | |
| color: var(--green); | |
| border: 1px solid rgba(145, 229, 165, 0.25); | |
| } | |
| .tutorial-hero-badge.color-amber { | |
| background: rgba(244, 193, 110, 0.12); | |
| color: var(--amber); | |
| border: 1px solid rgba(244, 193, 110, 0.25); | |
| } | |
| .tutorial-title { | |
| font-size: clamp(2.4rem, 5vw, 3.5rem); | |
| margin: 0 0 12px; | |
| letter-spacing: -0.03em; | |
| } | |
| .tutorial-tagline { | |
| font-size: 1.1rem; | |
| color: var(--muted); | |
| margin: 0 0 18px; | |
| max-width: 55ch; | |
| } | |
| .tutorial-stats { | |
| display: flex; | |
| gap: 24px; | |
| flex-wrap: wrap; | |
| } | |
| .t-stat { | |
| font-size: 0.88rem; | |
| color: var(--muted); | |
| } | |
| .t-stat strong { | |
| font-family: "Iowan Old Style", Georgia, serif; | |
| font-size: 1.1rem; | |
| color: var(--text); | |
| margin-right: 4px; | |
| } | |
| /* Tabs */ | |
| .tutorial-tabs { | |
| display: flex; | |
| gap: 4px; | |
| border-bottom: 1px solid var(--line); | |
| margin-bottom: 28px; | |
| } | |
| .t-tab { | |
| padding: 10px 18px; | |
| background: none; | |
| border: none; | |
| color: var(--muted); | |
| font-size: 0.88rem; | |
| cursor: pointer; | |
| transition: color 0.2s ease; | |
| border-bottom: 2px solid transparent; | |
| margin-bottom: -1px; | |
| } | |
| .t-tab:hover { | |
| color: var(--text); | |
| } | |
| .t-tab.active { | |
| color: var(--teal); | |
| border-bottom-color: var(--teal); | |
| } | |
| /* Tab Content */ | |
| .t-tabcontent { | |
| display: none; | |
| } | |
| .t-tabcontent.active { | |
| display: block; | |
| animation: fadeIn 0.25s ease; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translateY(4px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .t-section { | |
| margin-bottom: 32px; | |
| } | |
| .t-section h2 { | |
| font-size: 1.5rem; | |
| margin: 0 0 16px; | |
| } | |
| .t-section h3 { | |
| font-size: 1.1rem; | |
| margin: 0 0 12px; | |
| color: var(--muted); | |
| } | |
| /* Steps */ | |
| .t-steps { | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 12px; | |
| } | |
| .t-steps li { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 14px; | |
| padding: 14px 16px; | |
| background: var(--panel); | |
| border: 1px solid var(--line); | |
| border-radius: 14px; | |
| } | |
| .t-step-num { | |
| width: 28px; | |
| height: 28px; | |
| border-radius: 50%; | |
| background: rgba(119, 223, 208, 0.12); | |
| color: var(--teal); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-family: "Iowan Old Style", Georgia, serif; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| flex-shrink: 0; | |
| } | |
| .t-step-text { | |
| font-size: 0.92rem; | |
| color: var(--muted); | |
| line-height: 1.55; | |
| padding-top: 3px; | |
| } | |
| /* Welleneinsatz */ | |
| .t-welleneinsatz { | |
| display: grid; | |
| grid-template-columns: auto 1fr; | |
| gap: 16px; | |
| padding: 18px; | |
| background: var(--panel); | |
| border: 1px solid var(--line); | |
| border-radius: 16px; | |
| align-items: start; | |
| } | |
| .t-welleneinsatz-badge { | |
| padding: 8px 14px; | |
| border-radius: 999px; | |
| background: rgba(119, 223, 208, 0.1); | |
| border: 1px solid rgba(119, 223, 208, 0.2); | |
| color: var(--teal); | |
| font-size: 0.82rem; | |
| font-weight: 600; | |
| white-space: nowrap; | |
| } | |
| .t-welleneinsatz-meta { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .t-welleneinsatz-meta p { | |
| font-size: 0.88rem; | |
| color: var(--muted); | |
| margin: 0; | |
| line-height: 1.5; | |
| } | |
| .t-welleneinsatz-meta strong { | |
| color: var(--text); | |
| } | |
| /* Handoff */ | |
| .t-handoff { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| } | |
| .t-handoff-card { | |
| padding: 14px 16px; | |
| background: rgba(145, 229, 165, 0.04); | |
| border: 1px solid rgba(145, 229, 165, 0.12); | |
| border-radius: 12px; | |
| display: grid; | |
| grid-template-columns: auto 1fr; | |
| gap: 12px; | |
| align-items: start; | |
| } | |
| .t-handoff-target { | |
| font-size: 0.75rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| color: var(--green); | |
| font-weight: 600; | |
| padding: 4px 10px; | |
| background: rgba(145, 229, 165, 0.08); | |
| border-radius: 999px; | |
| white-space: nowrap; | |
| } | |
| .t-handoff-card p { | |
| font-size: 0.88rem; | |
| color: var(--muted); | |
| margin: 0; | |
| line-height: 1.5; | |
| } | |
| /* Diagramm iframe */ | |
| .t-diagramm { | |
| border-radius: 16px; | |
| overflow: hidden; | |
| border: 1px solid var(--line); | |
| background: var(--panel); | |
| } | |
| .t-iframe { | |
| width: 100%; | |
| height: 500px; | |
| border: none; | |
| display: block; | |
| } | |
| /* Annotations */ | |
| .t-annotations { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 12px; | |
| } | |
| .t-annotation { | |
| padding: 14px; | |
| background: var(--panel); | |
| border: 1px solid var(--line); | |
| border-radius: 12px; | |
| } | |
| .t-ann-badge { | |
| display: inline-block; | |
| font-size: 0.76rem; | |
| font-weight: 600; | |
| color: var(--gold); | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| margin-bottom: 8px; | |
| } | |
| .t-annotation p { | |
| font-size: 0.84rem; | |
| color: var(--muted); | |
| margin: 0; | |
| line-height: 1.5; | |
| } | |
| /* ADHS Cards */ | |
| .t-adhs-card { | |
| background: rgba(240, 207, 142, 0.04); | |
| border: 1px solid rgba(240, 207, 142, 0.12); | |
| border-radius: 16px; | |
| padding: 20px 22px; | |
| } | |
| .t-adhs-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| margin-bottom: 12px; | |
| } | |
| .t-adhs-icon { | |
| font-size: 1.3rem; | |
| } | |
| .t-adhs-header h3 { | |
| font-size: 1rem; | |
| margin: 0; | |
| color: var(--gold); | |
| } | |
| .t-adhs-card p { | |
| font-size: 0.9rem; | |
| color: var(--muted); | |
| line-height: 1.65; | |
| margin: 0; | |
| } | |
| /* Config */ | |
| .t-configtable { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1px; | |
| border-radius: 12px; | |
| overflow: hidden; | |
| border: 1px solid var(--line); | |
| } | |
| .t-configrow { | |
| display: grid; | |
| grid-template-columns: auto auto 1fr auto; | |
| gap: 12px; | |
| padding: 12px 14px; | |
| background: var(--panel); | |
| align-items: center; | |
| font-size: 0.85rem; | |
| } | |
| .t-configkey { | |
| font-family: "Courier New", monospace; | |
| color: var(--teal); | |
| } | |
| .t-configtype { | |
| font-size: 0.72rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| color: var(--muted); | |
| padding: 2px 7px; | |
| background: rgba(255, 255, 255, 0.04); | |
| border-radius: 4px; | |
| } | |
| .t-configdesc { | |
| color: var(--muted); | |
| } | |
| .t-configdefault { | |
| font-size: 0.78rem; | |
| color: var(--gold); | |
| font-style: italic; | |
| } | |
| /* Hooks */ | |
| .t-hooks { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| } | |
| .t-hook { | |
| padding: 14px 16px; | |
| background: var(--panel); | |
| border: 1px solid var(--line); | |
| border-radius: 12px; | |
| } | |
| .t-hook-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| margin-bottom: 8px; | |
| } | |
| .t-hook-header code { | |
| font-family: "Courier New", monospace; | |
| color: var(--teal); | |
| font-size: 0.88rem; | |
| } | |
| .t-hook-badge { | |
| font-size: 0.68rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.1em; | |
| padding: 2px 7px; | |
| border-radius: 999px; | |
| background: rgba(240, 143, 136, 0.12); | |
| color: var(--red); | |
| } | |
| .t-hook p { | |
| font-size: 0.84rem; | |
| color: var(--muted); | |
| margin: 0; | |
| line-height: 1.5; | |
| } | |
| /* FAQ */ | |
| .t-faq { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .t-faq-item { | |
| background: var(--panel); | |
| border: 1px solid var(--line); | |
| border-radius: 12px; | |
| overflow: hidden; | |
| } | |
| .t-faq-item summary { | |
| padding: 14px 16px; | |
| font-size: 0.92rem; | |
| font-weight: 500; | |
| cursor: pointer; | |
| list-style: none; | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .t-faq-item summary::-webkit-details-marker { display: none; } | |
| .t-faq-item summary::after { | |
| content: "+"; | |
| font-size: 1.2rem; | |
| color: var(--muted); | |
| transition: transform 0.2s ease; | |
| } | |
| .t-faq-item[open] summary::after { | |
| transform: rotate(45deg); | |
| } | |
| .t-faq-item p { | |
| padding: 0 16px 14px; | |
| font-size: 0.88rem; | |
| color: var(--muted); | |
| line-height: 1.6; | |
| margin: 0; | |
| } | |
| .t-muted { | |
| color: var(--muted); | |
| font-size: 0.9rem; | |
| font-style: italic; | |
| } | |
| /* Level Badges */ | |
| .t-level-badge { | |
| display: inline-block; | |
| font-size: 0.7rem; | |
| font-weight: 700; | |
| letter-spacing: 0.08em; | |
| text-transform: uppercase; | |
| padding: 3px 10px; | |
| border-radius: 4px; | |
| background: rgba(119, 223, 208, 0.12); | |
| color: var(--teal); | |
| border: 1px solid rgba(119, 223, 208, 0.3); | |
| margin-bottom: 8px; | |
| } | |
| .t-level-badge.level3 { | |
| background: rgba(240, 207, 142, 0.12); | |
| color: var(--gold); | |
| border-color: rgba(240, 207, 142, 0.3); | |
| } | |
| .t-level-badge.level4 { | |
| background: rgba(145, 229, 165, 0.12); | |
| color: var(--green); | |
| border-color: rgba(145, 229, 165, 0.3); | |
| } | |
| /* Responsive Tutorial */ | |
| @media (max-width: 640px) { | |
| .nav-links { display: none; } | |
| .t-annotations { grid-template-columns: 1fr; } | |
| .t-configrow { grid-template-columns: 1fr 1fr; } | |
| .t-configdesc { display: none; } | |
| .t-iframe { height: 300px; } | |
| } | |