.project-content{background-color:var(--p-bg);color:var(--p-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip;--spot-color: var(--p-accent-start)}.project-content :focus-visible{outline-color:var(--p-accent-start)}.project-content ::selection{background:color-mix(in srgb,var(--p-accent-start) 35%,transparent);color:var(--p-text)}.project-content .p-hero{position:relative;text-align:center;padding:96px 24px 56px;max-width:800px;margin:0 auto}.project-content .p-hero:after{content:"";position:absolute;inset:0 -30vw;background-image:linear-gradient(color-mix(in srgb,var(--p-text) 5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--p-text) 5%,transparent) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse 60% 70% at 50% 30%,black 10%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse 60% 70% at 50% 30%,black 10%,transparent 80%);pointer-events:none}.project-content .p-hero>*{position:relative;z-index:1}.project-content .p-hero__icon{width:128px;height:128px;margin:0 auto 28px;border-radius:24px;filter:drop-shadow(0 12px 32px rgba(0,0,0,.5))}.project-content .p-hero__name{font-family:JetBrains Mono,SF Mono,monospace;font-size:15px;font-weight:500;text-transform:lowercase;letter-spacing:.02em;color:var(--p-accent-end);margin-bottom:18px}.project-content .p-hero__name:before{content:"~/";color:var(--p-text-secondary)}.project-content .p-hero h2{font-family:JetBrains Mono,SF Mono,monospace;font-size:clamp(28px,4.6vw,44px);font-weight:700;letter-spacing:-.03em;line-height:1.2;margin-bottom:20px;color:var(--p-text)}.project-content .p-hero h2:after{content:"▌";margin-left:.12em;color:var(--p-accent-start);animation:p-cursor-blink 1.1s steps(1) infinite}@keyframes p-cursor-blink{50%{opacity:0}}.project-content .p-hero p{font-size:18px;color:var(--p-text-secondary);margin-bottom:40px;max-width:620px;margin-left:auto;margin-right:auto;line-height:1.6}.project-content .cta-button{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;background:transparent;border:1px solid color-mix(in srgb,var(--p-accent-start) 60%,var(--p-border));border-radius:6px;font-family:JetBrains Mono,SF Mono,monospace;font-size:15px;font-weight:500;color:var(--p-text);text-decoration:none;cursor:pointer;transition:background .25s var(--ease-out),color .25s var(--ease-out),border-color .25s var(--ease-out),box-shadow .25s var(--ease-out)}.project-content .cta-button:before{content:"[";color:var(--p-accent-start)}.project-content .cta-button:after{content:"]";color:var(--p-accent-start)}.project-content .cta-button:hover{background:var(--p-accent-start);border-color:var(--p-accent-start);color:#fff;box-shadow:0 0 28px color-mix(in srgb,var(--p-accent-start) 40%,transparent)}.project-content .cta-button:hover:before,.project-content .cta-button:hover:after{color:#fff}.project-content .cta-button svg{width:20px;height:20px}.project-content .coming-soon{display:inline-flex;padding:14px 26px;background:var(--p-bg-card);border:1px dashed var(--p-border);border-radius:6px;font-family:JetBrains Mono,SF Mono,monospace;font-size:15px;font-weight:500;color:var(--p-text-secondary)}.project-content .cta-badge{display:block;margin-top:16px;font-family:JetBrains Mono,SF Mono,monospace;font-size:12px;letter-spacing:.04em;color:var(--p-text-secondary)}.project-content .donate-button{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:9px 18px;background:transparent;border:1px solid var(--p-border);border-radius:6px;font-family:JetBrains Mono,SF Mono,monospace;font-size:13px;font-weight:500;color:var(--p-text-secondary);text-decoration:none;cursor:pointer;transition:border-color .25s var(--ease-out),color .25s var(--ease-out),background .25s var(--ease-out)}.project-content .donate-button svg{width:16px;height:16px;color:#ec4899}.project-content .donate-button:hover{color:var(--p-text);border-color:color-mix(in srgb,#ec4899 60%,var(--p-border));background:color-mix(in srgb,#ec4899 8%,transparent)}.project-content .highlight-divider{width:64px;height:1px;background:var(--p-accent-start);margin:0 auto;opacity:.5}.project-content .highlight{max-width:800px;margin:0 auto;padding:72px 24px;text-align:center}.project-content .highlight-label{display:inline-block;font-family:JetBrains Mono,SF Mono,monospace;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:var(--p-accent-end);margin-bottom:14px}.project-content .highlight-label:before{content:"// ";color:var(--p-text-secondary);letter-spacing:0}.project-content .highlight h3{font-family:JetBrains Mono,SF Mono,monospace;font-size:clamp(22px,3.4vw,30px);font-weight:700;letter-spacing:-.025em;line-height:1.25;margin-bottom:16px}.project-content .highlight p{font-size:17px;color:var(--p-text-secondary);max-width:560px;margin:0 auto;line-height:1.6}.project-content .highlight-screenshot-img{width:100%;max-width:800px;margin:2.5rem auto 0;border:1px solid var(--p-border);border-radius:10px;display:block}.project-content .highlight-screenshot{max-width:720px;margin:32px auto 0;height:320px;border:1px dashed var(--p-border);border-radius:8px;background:color-mix(in srgb,var(--p-bg-card) 60%,transparent);display:flex;align-items:center;justify-content:center;color:var(--p-text-secondary);font-family:JetBrains Mono,SF Mono,monospace;font-size:13px}.project-content .category-group{max-width:800px;margin:0 auto;padding:56px 24px 0;text-align:center}.project-content .category-label{display:inline-flex;align-items:center;gap:10px;font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--p-text-secondary);padding:6px 16px;background:color-mix(in srgb,var(--p-bg-card) 75%,transparent);border:1px solid var(--p-border);border-radius:4px}.project-content .category-label:before{content:"##";color:var(--p-accent-start);letter-spacing:0}.project-content .protocols{max-width:720px;margin:0 auto;padding:60px 24px;text-align:center}.project-content .protocols-list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.project-content .protocol-tag{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;background:var(--p-bg-card);border:1px solid var(--p-border);border-radius:6px;font-family:JetBrains Mono,SF Mono,monospace;font-size:13px;font-weight:500;color:var(--p-text);transition:border-color .25s var(--ease-out),background .25s var(--ease-out),box-shadow .25s var(--ease-out)}.project-content .protocol-tag:hover{border-color:color-mix(in srgb,var(--p-accent-start) 55%,var(--p-border));background:var(--p-bg-card-hover);box-shadow:0 0 16px color-mix(in srgb,var(--p-accent-start) 15%,transparent)}.project-content .protocol-tag svg{width:18px;height:18px;color:var(--p-accent-end)}.project-content .features{max-width:1080px;margin:0 auto;padding:72px 24px 88px}.project-content .features h3{text-align:center;font-family:JetBrains Mono,SF Mono,monospace;font-size:clamp(22px,3.4vw,30px);font-weight:700;letter-spacing:-.025em;margin-bottom:48px}.project-content .features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.project-content .features-grid--4col{grid-template-columns:repeat(4,1fr)}.project-content .feature-card{position:relative;overflow:hidden;background:var(--p-bg-card);border:1px solid var(--p-border);border-radius:8px;padding:26px 22px;transition:background .3s var(--ease-out),border-color .3s var(--ease-out),box-shadow .3s var(--ease-out)}.project-content .feature-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--p-accent-start);opacity:0;transition:opacity .3s var(--ease-out)}.project-content .feature-card:hover{background:var(--p-bg-card-hover);border-color:color-mix(in srgb,var(--p-accent-start) 40%,var(--p-border))}.project-content .feature-card:hover:before{opacity:.8}.project-content .feature-icon{margin-bottom:14px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:6px;color:var(--p-accent-end);background:transparent;border:1px solid color-mix(in srgb,var(--p-accent-start) 35%,var(--p-border));transition:background .3s var(--ease-out),color .3s var(--ease-out)}.project-content .feature-card:hover .feature-icon{background:color-mix(in srgb,var(--p-accent-start) 14%,transparent)}.project-content .feature-icon svg{width:22px;height:22px}.project-content .feature-card h4{font-family:JetBrains Mono,SF Mono,monospace;font-size:14px;font-weight:700;letter-spacing:-.01em;margin-bottom:8px}.project-content .feature-card p{font-size:14px;color:var(--p-text-secondary);line-height:1.5}.project-content .formats{max-width:800px;margin:0 auto;padding:60px 24px;text-align:center}.project-content .formats h3{font-family:JetBrains Mono,SF Mono,monospace;font-size:24px;font-weight:700;letter-spacing:-.02em;margin-bottom:12px}.project-content .formats-subtitle{font-size:15px;color:var(--p-text-secondary);margin-bottom:32px}.project-content .formats-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px;text-align:left}.project-content .formats-column h4{font-family:JetBrains Mono,SF Mono,monospace;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--p-text-secondary);margin-bottom:16px}.project-content .formats-column h4:before{content:"// ";color:var(--p-accent-start);letter-spacing:0}.project-content .format-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.project-content .formats-column .format-tags{justify-content:flex-start}.project-content .format-tag{display:inline-block;padding:5px 12px;background:transparent;border:1px solid var(--p-border);border-radius:4px;font-family:JetBrains Mono,SF Mono,monospace;font-size:12px;font-weight:500;color:var(--p-text);transition:border-color .25s var(--ease-out),color .25s var(--ease-out)}.project-content .format-tag:hover{border-color:color-mix(in srgb,var(--p-accent-start) 55%,var(--p-border));color:var(--p-accent-end)}.project-content .languages{max-width:720px;margin:0 auto;padding:60px 24px;text-align:center}.project-content .languages h3{font-family:JetBrains Mono,SF Mono,monospace;font-size:24px;font-weight:700;letter-spacing:-.02em;margin-bottom:24px}.project-content .languages-list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.project-content .language-tag{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;background:var(--p-bg-card);border:1px solid var(--p-border);border-radius:6px;font-family:JetBrains Mono,SF Mono,monospace;font-size:13px;font-weight:500;color:var(--p-text);transition:border-color .25s var(--ease-out),background .25s var(--ease-out)}.project-content .language-tag:hover{border-color:color-mix(in srgb,var(--p-accent-start) 55%,var(--p-border));background:var(--p-bg-card-hover)}.project-content .language-tag svg{width:18px;height:18px;color:var(--p-accent-end)}.project-content .p-privacy{max-width:600px;margin:0 auto;padding:60px 24px 88px;text-align:center}.project-content .p-privacy h3{font-family:JetBrains Mono,SF Mono,monospace;font-size:24px;font-weight:700;letter-spacing:-.02em;margin-bottom:12px}.project-content .p-privacy p{font-size:16px;color:var(--p-text-secondary);line-height:1.6}.project-content .p-privacy__more{margin-top:20px}.project-content .p-privacy__more a{font-family:JetBrains Mono,SF Mono,monospace;font-size:14px;font-weight:500;color:var(--p-accent-end);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--p-accent-end) 40%,transparent);padding-bottom:2px;transition:border-color .2s ease}.project-content .p-privacy__more a:hover{border-bottom-color:var(--p-accent-end)}@media(max-width:1024px){.project-content .features-grid,.project-content .features-grid--4col{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.project-content .p-hero{padding:48px 24px}.project-content .p-hero h2{font-size:26px}.project-content .p-hero p{font-size:16px}.project-content .p-hero__icon{width:96px;height:96px;border-radius:20px}.project-content .highlight{padding:56px 24px}.project-content .highlight h3{font-size:21px}.project-content .highlight-screenshot{height:220px}.project-content .features h3{font-size:21px}.project-content .formats-columns{grid-template-columns:1fr}}@media(max-width:480px){.project-content .p-hero h2{font-size:22px}.project-content .highlight h3{font-size:19px}.project-content .features-grid,.project-content .features-grid--4col{grid-template-columns:1fr}.project-content .cta-button,.project-content .coming-soon{padding:12px 20px;font-size:14px}}.project-content .pro-badge{display:inline-block;font-family:JetBrains Mono,SF Mono,monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;margin-left:8px;border-radius:4px;color:var(--p-accent-end);background:color-mix(in srgb,var(--p-accent-start) 12%,transparent);border:1px solid color-mix(in srgb,var(--p-accent-start) 45%,transparent);vertical-align:middle;-webkit-text-fill-color:var(--p-accent-end)}.project-content .highlight-label-row{display:inline-flex;align-items:center;margin-bottom:14px}.project-content .highlight-label-row .highlight-label{margin-bottom:0}.project-content .compare{max-width:800px;margin:0 auto;padding:72px 24px;text-align:center}.project-content .compare h3{font-family:JetBrains Mono,SF Mono,monospace;font-size:clamp(22px,3.4vw,30px);font-weight:700;letter-spacing:-.025em;margin-bottom:12px}.project-content .compare-subtitle{font-size:17px;color:var(--p-text-secondary);margin-bottom:36px}.project-content .compare-table-wrap{overflow-x:auto}.project-content .compare-table{width:100%;border-collapse:collapse;background:var(--p-bg-card);border:1px solid var(--p-border);border-radius:8px;overflow:hidden}.project-content .compare-table th,.project-content .compare-table td{padding:13px 20px;border-bottom:1px solid var(--p-border);font-size:14px}.project-content .compare-table thead th{font-family:JetBrains Mono,SF Mono,monospace;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--p-text-secondary);background:color-mix(in srgb,var(--p-bg) 60%,var(--p-bg-card))}.project-content .compare-table thead th.compare-pro-col{color:var(--p-accent-end)}.project-content .compare-table tbody tr{transition:background .2s var(--ease-out)}.project-content .compare-table tbody tr:hover{background:color-mix(in srgb,var(--p-bg-card-hover) 60%,transparent)}.project-content .compare-table tbody tr:last-child td{border-bottom:none}.project-content .compare-feature{text-align:left;color:var(--p-text)}.project-content .compare-yes{color:var(--p-accent-end)}.project-content .compare-no{color:var(--p-text-secondary);opacity:.5}.project-content .compare-text{color:var(--p-text-secondary)}.project-content td.compare-pro-col{background:color-mix(in srgb,var(--p-accent-start) 6%,transparent)}.project-content .compare-note{margin-top:20px;font-size:13px;color:var(--p-text-secondary)}@media(max-width:480px){.project-content .compare h3{font-size:20px}.project-content .compare-table th,.project-content .compare-table td{padding:10px 12px;font-size:13px}}@media(prefers-reduced-motion:reduce){.project-content .p-hero h2:after{animation:none}}.lightbox[data-astro-cid-rm7e3doo]{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#00000040;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;cursor:zoom-out}.lightbox[data-astro-cid-rm7e3doo].open{opacity:1;visibility:visible}.lightbox__img[data-astro-cid-rm7e3doo]{max-width:min(92vw,1400px);max-height:90vh;border-radius:12px;box-shadow:0 8px 48px #0009;transform:scale(.95);transition:transform .25s ease-out;cursor:default;user-select:none}.lightbox[data-astro-cid-rm7e3doo].open .lightbox__img[data-astro-cid-rm7e3doo]{transform:scale(1)}.lightbox__close[data-astro-cid-rm7e3doo]{position:absolute;top:20px;right:24px;background:none;border:none;color:#fff;font-size:36px;cursor:pointer;opacity:.6;transition:opacity .2s;line-height:1;z-index:1}.lightbox__close[data-astro-cid-rm7e3doo]:hover{opacity:1}.lightbox__nav[data-astro-cid-rm7e3doo]{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;opacity:.7;transition:opacity .2s,background .2s;z-index:1}.lightbox__nav[data-astro-cid-rm7e3doo]:hover{opacity:1;background:#fff3}.lightbox__nav[data-astro-cid-rm7e3doo] svg[data-astro-cid-rm7e3doo]{width:24px;height:24px}.lightbox__prev[data-astro-cid-rm7e3doo]{left:20px}.lightbox__next[data-astro-cid-rm7e3doo]{right:20px}.lightbox__nav[data-astro-cid-rm7e3doo][disabled]{opacity:.2;cursor:default;pointer-events:none}@media(max-width:768px){.lightbox__nav[data-astro-cid-rm7e3doo]{width:40px;height:40px}.lightbox__prev[data-astro-cid-rm7e3doo]{left:10px}.lightbox__next[data-astro-cid-rm7e3doo]{right:10px}}
