2026-01-27 16:21:58 +00:00
|
|
|
---
|
|
|
|
|
import PublicLayout from '../layouts/PublicLayout.astro';
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
<PublicLayout title="Features" description="Explore Likwid's governance capabilities: advanced voting methods, liquid delegation, structured deliberation, and transparent moderation.">
|
|
|
|
|
<article class="features-page">
|
|
|
|
|
<header class="page-header">
|
|
|
|
|
<h1>Features</h1>
|
|
|
|
|
<p class="lead">
|
|
|
|
|
A comprehensive governance toolkit designed for complex, distributed organizations.
|
|
|
|
|
</p>
|
|
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
<!-- Voting Methods Section -->
|
|
|
|
|
<section class="feature-section">
|
|
|
|
|
<div class="section-header">
|
|
|
|
|
<h2>Advanced Voting Methods</h2>
|
|
|
|
|
<p>
|
|
|
|
|
Different decisions require different methods. Likwid supports multiple voting systems,
|
|
|
|
|
each implemented as a plugin that communities can enable based on their needs.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="voting-methods">
|
|
|
|
|
<div class="method-card">
|
|
|
|
|
<div class="method-header">
|
|
|
|
|
<h3>Schulze Method</h3>
|
|
|
|
|
<span class="method-tag">Condorcet-consistent</span>
|
|
|
|
|
</div>
|
|
|
|
|
<p>
|
|
|
|
|
Finds the option that would beat every other option in a head-to-head comparison.
|
|
|
|
|
Ideal for elections and decisions where finding a true consensus winner matters.
|
|
|
|
|
</p>
|
|
|
|
|
<div class="method-details">
|
|
|
|
|
<strong>Best for:</strong> Elections, selecting from many candidates, finding compromise options
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="method-card">
|
|
|
|
|
<div class="method-header">
|
|
|
|
|
<h3>STAR Voting</h3>
|
|
|
|
|
<span class="method-tag">Score + Runoff</span>
|
|
|
|
|
</div>
|
|
|
|
|
<p>
|
|
|
|
|
Score Then Automatic Runoff. Voters rate each option 0-5, then the top two
|
|
|
|
|
advance to an instant runoff. Balances preference intensity with broad support.
|
|
|
|
|
</p>
|
|
|
|
|
<div class="method-details">
|
|
|
|
|
<strong>Best for:</strong> Decisions where both passion and consensus matter
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="method-card">
|
|
|
|
|
<div class="method-header">
|
|
|
|
|
<h3>Quadratic Voting</h3>
|
|
|
|
|
<span class="method-tag">Intensity-weighted</span>
|
|
|
|
|
</div>
|
|
|
|
|
<p>
|
|
|
|
|
Voters spend "voice credits" on options they care about. The cost increases
|
|
|
|
|
quadratically, so expressing strong preference costs more. Reveals preference intensity.
|
|
|
|
|
</p>
|
|
|
|
|
<div class="method-details">
|
|
|
|
|
<strong>Best for:</strong> Budget allocation, prioritization, decisions where some care more than others
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="method-card">
|
|
|
|
|
<div class="method-header">
|
|
|
|
|
<h3>Ranked Choice</h3>
|
|
|
|
|
<span class="method-tag">Instant Runoff</span>
|
|
|
|
|
</div>
|
|
|
|
|
<p>
|
|
|
|
|
Voters rank options in order of preference. If no option has a majority,
|
|
|
|
|
the lowest-ranked is eliminated and votes transfer. Continues until a winner emerges.
|
|
|
|
|
</p>
|
|
|
|
|
<div class="method-details">
|
|
|
|
|
<strong>Best for:</strong> Single-winner elections with multiple candidates
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="method-card">
|
|
|
|
|
<div class="method-header">
|
|
|
|
|
<h3>Approval Voting</h3>
|
|
|
|
|
<span class="method-tag">Simple multi-select</span>
|
|
|
|
|
</div>
|
|
|
|
|
<p>
|
|
|
|
|
Voters approve or disapprove each option. The option with the most approvals wins.
|
|
|
|
|
Simple, resistant to strategic voting, good for quick decisions.
|
|
|
|
|
</p>
|
|
|
|
|
<div class="method-details">
|
|
|
|
|
<strong>Best for:</strong> Simple decisions, scheduling, selecting multiple winners
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<!-- Delegation Section -->
|
|
|
|
|
<section class="feature-section alt-bg">
|
|
|
|
|
<div class="section-header">
|
|
|
|
|
<h2>Liquid Delegation</h2>
|
|
|
|
|
<p>
|
|
|
|
|
Not everyone can participate in every decision. Liquid delegation lets members
|
|
|
|
|
delegate their voice while retaining control.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="feature-grid">
|
|
|
|
|
<div class="feature-item">
|
2026-01-28 23:47:14 +00:00
|
|
|
<h4>Scoped Delegation</h4>
|
2026-01-27 16:21:58 +00:00
|
|
|
<p>
|
2026-01-28 23:47:14 +00:00
|
|
|
Delegate your voice globally or within a specific community to people you trust.
|
|
|
|
|
You can always vote directly and override your delegation.
|
2026-01-27 16:21:58 +00:00
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Transitive Chains</h4>
|
|
|
|
|
<p>
|
|
|
|
|
Your delegate can further delegate to their trusted experts, creating chains
|
|
|
|
|
of trust. Cycle detection ensures no infinite loops.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Always Revocable</h4>
|
|
|
|
|
<p>
|
|
|
|
|
Override any delegation by voting directly. Revoke delegation at any time.
|
|
|
|
|
Your voice remains under your control.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Transparent Networks</h4>
|
|
|
|
|
<p>
|
|
|
|
|
See delegation relationships (with privacy controls). Understand who influences
|
|
|
|
|
decisions and how trust flows through the community.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<!-- Deliberation Section -->
|
|
|
|
|
<section class="feature-section">
|
|
|
|
|
<div class="section-header">
|
|
|
|
|
<h2>Structured Deliberation</h2>
|
|
|
|
|
<p>
|
|
|
|
|
Good decisions require good discussion. Likwid structures deliberation to ensure
|
|
|
|
|
informed, inclusive, and productive conversations.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="process-visual">
|
|
|
|
|
<div class="process-phase">
|
|
|
|
|
<div class="phase-icon">📖</div>
|
|
|
|
|
<h4>Inform</h4>
|
|
|
|
|
<p>
|
|
|
|
|
Proposals enter an inform phase. Members read the proposal, supporting documents,
|
|
|
|
|
and context before discussion begins. Optional read-time requirements ensure engagement.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="process-arrow">→</div>
|
|
|
|
|
<div class="process-phase">
|
|
|
|
|
<div class="phase-icon">💬</div>
|
|
|
|
|
<h4>Discuss</h4>
|
|
|
|
|
<p>
|
|
|
|
|
Structured discussion with facilitator tools. Comments can be organized,
|
|
|
|
|
constructive input surfaced, and concerns identified. Small group breakouts for complex topics.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="process-arrow">→</div>
|
|
|
|
|
<div class="process-phase">
|
|
|
|
|
<div class="phase-icon">✓</div>
|
|
|
|
|
<h4>Decide</h4>
|
|
|
|
|
<p>
|
|
|
|
|
Voting opens after adequate deliberation. Clear deadlines, reminder notifications,
|
|
|
|
|
and results calculated using the community's chosen method.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="feature-grid" style="margin-top: 2rem;">
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Facilitator Tools</h4>
|
|
|
|
|
<p>Designated facilitators can organize discussions, highlight key points, and manage conversation flow.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Configurable Phases</h4>
|
|
|
|
|
<p>Set minimum and maximum durations for each phase. Extend deadlines when needed.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Notification System</h4>
|
|
|
|
|
<p>Members receive timely notifications about proposals, phase transitions, and voting deadlines.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Amendment Process</h4>
|
|
|
|
|
<p>Proposals can be amended during deliberation based on feedback, with clear change tracking.</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<!-- Moderation Section -->
|
|
|
|
|
<section class="feature-section alt-bg">
|
|
|
|
|
<div class="section-header">
|
|
|
|
|
<h2>Transparent Moderation</h2>
|
|
|
|
|
<p>
|
|
|
|
|
Every community needs moderation. Likwid makes moderation visible, accountable,
|
|
|
|
|
and auditable—building trust through transparency.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="moderation-features">
|
|
|
|
|
<div class="mod-feature">
|
|
|
|
|
<h4>Public Moderation Ledger</h4>
|
|
|
|
|
<p>
|
|
|
|
|
Every moderation action is logged with who took it, what rule was violated,
|
|
|
|
|
what evidence supported the decision, and what content was affected.
|
|
|
|
|
No shadow banning. No hidden removals.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mod-feature">
|
|
|
|
|
<h4>Cryptographic Audit Trail</h4>
|
|
|
|
|
<p>
|
|
|
|
|
The moderation ledger is cryptographically chained. Each entry references
|
|
|
|
|
the previous one, making retroactive alteration detectable. Integrity you can verify.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mod-feature">
|
|
|
|
|
<h4>Rule-Based Actions</h4>
|
|
|
|
|
<p>
|
|
|
|
|
Communities define their moderation rules. Actions reference specific rules,
|
|
|
|
|
creating consistency and enabling appeals based on documented standards.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mod-feature">
|
|
|
|
|
<h4>Separate Identities</h4>
|
|
|
|
|
<p>
|
|
|
|
|
Civic identity (who you are in discussions) and voting identity (how you voted)
|
|
|
|
|
are separated. Participate openly while maintaining ballot secrecy.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<!-- Plugin System Section -->
|
|
|
|
|
<section class="feature-section">
|
|
|
|
|
<div class="section-header">
|
|
|
|
|
<h2>Plugin Architecture</h2>
|
|
|
|
|
<p>
|
|
|
|
|
Likwid is modular by design. Every major component is a plugin that can be
|
|
|
|
|
enabled, disabled, or customized per community.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="plugin-categories">
|
|
|
|
|
<div class="plugin-category">
|
|
|
|
|
<h4>Voting Plugins</h4>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Approval Voting</li>
|
|
|
|
|
<li>Ranked Choice</li>
|
|
|
|
|
<li>Schulze Method</li>
|
|
|
|
|
<li>STAR Voting</li>
|
|
|
|
|
<li>Quadratic Voting</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="plugin-category">
|
|
|
|
|
<h4>Feature Plugins</h4>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>Liquid Delegation</li>
|
|
|
|
|
<li>Structured Deliberation</li>
|
|
|
|
|
<li>Moderation Ledger</li>
|
|
|
|
|
<li>Federation</li>
|
|
|
|
|
<li>Conflict Resolution</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="plugin-category">
|
|
|
|
|
<h4>Integration Plugins</h4>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>GitLab Integration</li>
|
|
|
|
|
<li>Matrix Chat</li>
|
|
|
|
|
<li>Webhook Notifications</li>
|
|
|
|
|
<li>OAuth Providers</li>
|
|
|
|
|
<li>Custom Workflows</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="plugin-note">
|
|
|
|
|
<p>
|
|
|
|
|
Communities enable only the plugins they need. Platform administrators control
|
|
|
|
|
which plugins are available. Third-party plugins extend functionality further.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<!-- Federation Section -->
|
|
|
|
|
<section class="feature-section alt-bg">
|
|
|
|
|
<div class="section-header">
|
|
|
|
|
<h2>Federation</h2>
|
|
|
|
|
<p>
|
|
|
|
|
Connect communities across instances while maintaining autonomy.
|
|
|
|
|
Share decisions, coordinate actions, and build networks of trust.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="feature-grid">
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Cross-Instance Coordination</h4>
|
|
|
|
|
<p>Communities on different Likwid instances can federate, sharing proposals and decisions.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Trust Levels</h4>
|
|
|
|
|
<p>Configure trust levels for federated instances. Control what information is shared and how.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Autonomy Preserved</h4>
|
|
|
|
|
<p>Each community maintains control over its own governance. Federation is cooperative, not hierarchical.</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="feature-item">
|
|
|
|
|
<h4>Network Effects</h4>
|
|
|
|
|
<p>Federated communities can coordinate across geographic or functional boundaries.</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<!-- CTA Section -->
|
|
|
|
|
<section class="features-cta">
|
|
|
|
|
<h2>See It In Action</h2>
|
|
|
|
|
<p>
|
|
|
|
|
The best way to understand Likwid is to experience it. Explore our demo instance
|
|
|
|
|
with pre-populated communities and governance history.
|
|
|
|
|
</p>
|
|
|
|
|
<div class="cta-buttons">
|
2026-01-29 18:05:27 +00:00
|
|
|
<a href="/demo" class="ui-btn ui-btn-primary ui-btn-lg">Explore the Demo</a>
|
|
|
|
|
<a href="/docs" class="ui-btn ui-btn-secondary ui-btn-lg">Read Documentation</a>
|
2026-01-27 16:21:58 +00:00
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
</article>
|
|
|
|
|
</PublicLayout>
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
.features-page {
|
|
|
|
|
max-width: 1000px;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
padding: 0 2rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.page-header {
|
|
|
|
|
text-align: center;
|
|
|
|
|
padding: 3rem 0 4rem;
|
|
|
|
|
border-bottom: 1px solid var(--color-border);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.page-header h1 {
|
|
|
|
|
font-size: 2.5rem;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.lead {
|
|
|
|
|
font-size: 1.25rem;
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
max-width: 600px;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.feature-section {
|
|
|
|
|
padding: 4rem 0;
|
|
|
|
|
border-bottom: 1px solid var(--color-border);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.feature-section.alt-bg {
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
margin: 0 -2rem;
|
|
|
|
|
padding: 4rem 2rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.section-header {
|
|
|
|
|
text-align: center;
|
|
|
|
|
margin-bottom: 3rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.section-header h2 {
|
|
|
|
|
font-size: 2rem;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.section-header p {
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
max-width: 600px;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
font-size: 1.125rem;
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Voting Methods */
|
|
|
|
|
.voting-methods {
|
|
|
|
|
display: grid;
|
|
|
|
|
gap: 1.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.method-card {
|
|
|
|
|
background: var(--color-surface);
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
border-radius: var(--radius-lg);
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.method-header {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
gap: 1rem;
|
|
|
|
|
margin-bottom: 0.75rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.method-header h3 {
|
|
|
|
|
font-size: 1.25rem;
|
|
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.method-tag {
|
|
|
|
|
font-size: 0.75rem;
|
|
|
|
|
padding: 0.25rem 0.75rem;
|
|
|
|
|
background: var(--color-primary-muted);
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
border-radius: 999px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.method-card p {
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.method-details {
|
|
|
|
|
font-size: 0.875rem;
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
padding-top: 0.75rem;
|
|
|
|
|
border-top: 1px solid var(--color-border);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.method-details strong {
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Feature Grid */
|
|
|
|
|
.feature-grid {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(2, 1fr);
|
|
|
|
|
gap: 1.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
.feature-grid {
|
|
|
|
|
grid-template-columns: 1fr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.feature-item {
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
background: var(--color-surface);
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.feature-item h4 {
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
margin-bottom: 0.5rem;
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.feature-item p {
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
font-size: 0.9375rem;
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Process Visual */
|
|
|
|
|
.process-visual {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
gap: 1rem;
|
|
|
|
|
margin-bottom: 2rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.process-phase {
|
|
|
|
|
flex: 1;
|
|
|
|
|
max-width: 280px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
background: var(--color-surface);
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
border-radius: var(--radius-lg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.phase-icon {
|
|
|
|
|
font-size: 2rem;
|
|
|
|
|
margin-bottom: 0.75rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.process-phase h4 {
|
|
|
|
|
font-size: 1.125rem;
|
|
|
|
|
margin-bottom: 0.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.process-phase p {
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
font-size: 0.875rem;
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.process-arrow {
|
|
|
|
|
font-size: 1.5rem;
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
padding-top: 2.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
.process-visual {
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.process-arrow {
|
|
|
|
|
transform: rotate(90deg);
|
|
|
|
|
padding: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.process-phase {
|
|
|
|
|
max-width: 100%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Moderation Features */
|
|
|
|
|
.moderation-features {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(2, 1fr);
|
|
|
|
|
gap: 1.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
.moderation-features {
|
|
|
|
|
grid-template-columns: 1fr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.mod-feature {
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
background: var(--color-surface);
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
border-left: 3px solid var(--color-success);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.mod-feature h4 {
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
margin-bottom: 0.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.mod-feature p {
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
font-size: 0.9375rem;
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Plugin Categories */
|
|
|
|
|
.plugin-categories {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(3, 1fr);
|
|
|
|
|
gap: 1.5rem;
|
|
|
|
|
margin-bottom: 2rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
.plugin-categories {
|
|
|
|
|
grid-template-columns: 1fr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.plugin-category {
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
background: var(--color-surface);
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.plugin-category h4 {
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.plugin-category ul {
|
|
|
|
|
list-style: none;
|
|
|
|
|
padding: 0;
|
|
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.plugin-category li {
|
|
|
|
|
padding: 0.375rem 0;
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
font-size: 0.9375rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.plugin-note {
|
|
|
|
|
text-align: center;
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.plugin-note p {
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
font-size: 0.9375rem;
|
|
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* CTA Section */
|
|
|
|
|
.features-cta {
|
|
|
|
|
text-align: center;
|
|
|
|
|
padding: 4rem 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.features-cta h2 {
|
|
|
|
|
font-size: 2rem;
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.features-cta p {
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
max-width: 500px;
|
|
|
|
|
margin: 0 auto 2rem;
|
|
|
|
|
font-size: 1.125rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.cta-buttons {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 1rem;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
}
|
|
|
|
|
</style>
|