/* --- Use Cases / Anwendungsszenarien Section --- */ .use-cases-section { padding: clamp(3.5rem, 6.5vh, 5rem) 0; position: relative; border-bottom: 0; } .use-cases-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 2rem; margin-top: 1rem; } /* Sub-heading that separates the use-case scenarios from the feature tiles so the two card types read as intentional groups (and gives the "Features" nav link a real target). */ .section-subheading { text-align: center; font-size: 1.55rem; font-weight: 800; letter-spacing: -0.03em; margin: 3.25rem 0 1.5rem; scroll-margin-top: 96px; } .use-cases-feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } @media (max-width: 900px) { .use-cases-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } } @media (max-width: 600px) { .use-cases-feature-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; } } .use-case-card { background: oklch(0.27 0.035 130 / 0.4); border: 1px solid var(--glass-border); border-radius: 16px; padding: 1.2rem 1.6rem 1.7rem 1.6rem; text-align: left; transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: flex; flex-direction: column; gap: 0.8rem; position: relative; overflow: hidden; } .use-case-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, transparent, var(--card-accent-border, var(--accent)), transparent); opacity: 0; transition: opacity 0.3s ease; } .use-case-card:nth-child(1) { --card-accent-border: oklch(0.68 0.13 150); } .use-case-card:nth-child(2) { --card-accent-border: oklch(0.62 0.14 45); } .use-case-card:nth-child(3) { --card-accent-border: oklch(0.75 0.10 150); } /* Use-case cards are static content, not links — no hover lift so they don't read as clickable. The top accent bar (::before) stays visible instead. */ .use-case-card::before { opacity: 1; } .use-case-image { display: block; width: 100%; max-width: 272px; height: 150px; object-fit: contain; border-radius: 8px; margin: 0 auto 0 auto; } .cta-github-mascot { display: block; width: 100%; max-width: 250px; height: auto; margin: 1.5rem auto; } /* Shared framing so the section mascots read as one set even though the underlying illustrations differ slightly in style (a consistent, soft ground shadow — true art-direction alignment needs the assets themselves redrawn). */ .compat-mascot, .features-questions-mascot, .comparison-mascot, .selfhost-mascot { filter: drop-shadow(0 6px 14px oklch(0.15 0.02 145 / 0.22)); } .features-questions-mascot { display: block; width: 100%; max-width: 185px; height: auto; margin: -1rem auto 0.4rem auto; } .comparison-mascot { display: block; width: 100%; max-width: 195px; height: auto; margin: -1.4rem auto 0.4rem auto; } .use-case-icon { font-size: 1.6rem; margin-right: 0.6rem; display: inline-block; vertical-align: middle; filter: drop-shadow(0 2px 8px rgba(0,0,0,0.2)); } .use-case-card h3 { font-size: 1.25rem; font-weight: 700; margin: 0; color: white; } .use-case-card p { font-size: 0.9rem; line-height: 1.6; color: var(--text-muted); margin: 0; } /* --- Comparison Section --- */ .comparison-section { padding: clamp(3.5rem, 6.5vh, 5rem) 0; background: transparent; border-bottom: 0; } .comparison-table-wrapper { overflow-x: auto; background: oklch(0.27 0.035 130 / 0.35); border: 1px solid var(--glass-border); border-radius: 16px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); margin-top: 1rem; } .comparison-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 0.95rem; } .comparison-table th, .comparison-table td { padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.06); } .comparison-table th { background: oklch(0.20 0.025 140 / 0.6); font-weight: 700; color: white; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 0.08em; } .comparison-table th.highlight, .comparison-table td.highlight { background: oklch(0.68 0.13 150 / 0.08); } .comparison-table tbody tr:hover { background: rgba(255, 255, 255, 0.02); } .comparison-table tbody tr:last-child td { border-bottom: none; } .feat-name { display: flex; flex-direction: column; gap: 0.25rem; } .feat-name strong { color: white; font-weight: 600; } .feat-desc { font-size: 0.8rem; color: var(--text-muted); } .check { color: oklch(0.68 0.13 150); font-weight: 700; } .cross { color: oklch(0.68 0.17 25); font-weight: 600; opacity: 1; } @media (max-width: 768px) { .comparison-table th, .comparison-table td { padding: 1rem; font-size: 0.85rem; } } /* On phones the 3-column table is turned into stacked cards so there is no horizontal scrolling — one card per feature, KoalaSync above Teleparty. */ @media (max-width: 600px) { .comparison-table-wrapper { overflow-x: visible; background: transparent; border: none; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; margin-top: 0; } .comparison-table { display: block; font-size: 0.95rem; } /* Visually hide the header row but keep it for screen readers. */ .comparison-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .comparison-table tbody, .comparison-table tr, .comparison-table td { display: block; width: 100%; } .comparison-table tbody tr { background: oklch(0.27 0.035 130 / 0.35); border: 1px solid var(--glass-border); border-radius: 14px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18); margin-bottom: 1rem; overflow: hidden; } .comparison-table tbody tr:last-child { margin-bottom: 0; } .comparison-table td { padding: 0.85rem 1.1rem; border-bottom: 1px solid rgba(255, 255, 255, 0.06); } .comparison-table tbody tr td:last-child { border-bottom: none; } /* Feature name acts as the card header. */ .comparison-table td.feat-name { background: oklch(0.20 0.025 140 / 0.55); padding: 0.9rem 1.1rem; } /* Room is back on the card, so show the description again. */ .feat-desc { display: block; margin-top: 0.15rem; } /* Label each value cell with the product it belongs to. */ .comparison-table td.check, .comparison-table td.cross { display: flex; align-items: baseline; gap: 0.4rem; } .comparison-table td.check::before, .comparison-table td.cross::before { flex: 0 0 5.5rem; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); opacity: 0.85; } .comparison-table td.check::before, .comparison-table td.cross::before { content: attr(data-label); } /* Keep the KoalaSync row subtly highlighted, like on desktop. */ .comparison-table td.check.highlight { background: oklch(0.68 0.13 150 / 0.08); } } @media (max-width: 600px) { html.theme-light .comparison-section { background: transparent; } html.theme-light .comparison-table tbody tr { background: #ffffff; border-color: oklch(0.20 0.025 140 / 0.1); box-shadow: 0 8px 20px oklch(0.20 0.025 140 / 0.08); } html.theme-light .comparison-table tbody tr:hover { background: #ffffff; } html.theme-light .comparison-table td { border-bottom-color: oklch(0.20 0.025 140 / 0.08); } html.theme-light .comparison-table td.feat-name { background: #ffffff; } html.theme-light .comparison-table td.check.highlight { background: oklch(0.52 0.12 150 / 0.07); } } /* --- Footnotes & Source Links --- */ .source-link { color: var(--accent); text-decoration: none; font-size: 0.72rem; font-weight: 700; margin-left: 0.25rem; display: inline-flex; align-items: center; vertical-align: super; opacity: 0.82; transition: opacity 0.2s ease, color 0.2s ease, transform 0.2s ease; } .source-link:hover { opacity: 1; color: oklch(0.75 0.10 150); transform: translateY(-1px); } .table-footnotes { padding: 0.8rem 1.25rem; background: oklch(0.20 0.025 140 / 0.45); border-top: 1px solid rgba(255, 255, 255, 0.05); font-size: 0.72rem; color: var(--text-muted); line-height: 1.5; opacity: 0.65; transition: opacity 0.2s ease; } /* Link from the comparison table to the fuller guides/alternatives hub */ .comparison-guides-link { text-align: center; margin: 2rem 0 0; } .comparison-guides-link a { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--accent); text-decoration: none; font-weight: 600; font-size: 0.95rem; transition: gap 0.2s ease, opacity 0.2s ease; } .comparison-guides-link a:hover { gap: 0.7rem; opacity: 0.85; } .table-footnotes:hover { opacity: 0.95; } .table-footnotes p { margin: 0; display: flex; align-items: baseline; gap: 0.4rem; } .table-footnotes p:not(:last-child) { margin-bottom: 0.4rem; } .table-footnotes a { color: var(--accent); text-decoration: none; font-weight: 500; transition: color 0.2s ease, text-decoration 0.2s ease; } .table-footnotes a:hover { color: oklch(0.75 0.10 150); text-decoration: underline; } .table-footnotes sup { font-weight: 700; color: var(--accent); } @media (max-width: 768px) { .table-footnotes { padding: 0.75rem 1rem; font-size: 0.68rem; } }