.project-content{--content-gap: clamp(1.25rem, 3vw, 2rem);--radius: .75rem;--radius-lg: 1rem;--text-body: #1a1a1a;--text-muted: #6b7280;--text-faint: #9ca3af;--border: #e5e7eb;--surface: #f9fafb;--surface-2: #f3f4f6;--accent: #000000;--accent-fg: #ffffff;--mark-bg: #fef9c3;--code-bg: #f3f4f6;color:var(--text-body);font-size:clamp(1rem,1.5vw,1.125rem);line-height:1.75;max-width:none}.dark .project-content{--text-body: #f5f5f5;--text-muted: #9ca3af;--text-faint: #6b7280;--border: #262626;--surface: #141414;--surface-2: #1c1c1c;--accent: #ffffff;--accent-fg: #000000;--mark-bg: #422006;--code-bg: #1c1c1c}.project-content>*+*{margin-top:var(--content-gap)}.project-content h2,.project-content h3,.project-content h4{color:var(--text-body);font-weight:700;letter-spacing:-.02em;line-height:1.25}.project-content h2{font-size:clamp(1.25rem,2.5vw,1.75rem);margin-top:clamp(2.5rem,5vw,3.5rem);margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1.5px solid var(--border);position:relative}.project-content h2:before{content:"";position:absolute;left:-1.25rem;top:.15em;bottom:.15em;width:3px;background:var(--accent);border-radius:2px;opacity:.15}.project-content h3{font-size:clamp(1rem,2vw,1.25rem);margin-top:clamp(1.75rem,3vw,2.25rem);margin-bottom:.625rem}.project-content h4{font-size:1rem;font-weight:600;margin-top:1.5rem;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.project-content p{color:var(--text-body);text-wrap:pretty}.project-content ul,.project-content ol{padding-left:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.project-content ul>li{display:flex;align-items:baseline;gap:.5rem;color:var(--text-body)}.project-content ul>li:before{content:"→";flex-shrink:0;width:1.25rem;color:var(--text-muted);font-size:.85em;line-height:1.75;font-weight:600;text-align:center}.project-content ol{counter-reset:item}.project-content ol>li{display:flex;align-items:baseline;gap:.625rem;counter-increment:item;color:var(--text-body)}.project-content ol>li:before{content:counter(item);flex-shrink:0;background:var(--surface-2);color:var(--text-muted);font-size:.7rem;font-weight:700;line-height:1.5rem;height:1.5rem;width:1.5rem;border-radius:50%;text-align:center;margin-top:.15em;border:1px solid var(--border)}.project-content li>ul,.project-content li>ol{margin-top:.5rem;padding-left:1.25rem}.project-content strong{font-weight:700;color:var(--text-body)}.project-content em{font-style:italic;color:var(--text-muted)}.project-content :not(pre)>code{font-family:ui-monospace,Fira Code,Cascadia Code,monospace;font-size:.88em;background:var(--code-bg);color:var(--text-body);padding:.15em .45em;border-radius:4px;border:1px solid var(--border)}.project-content pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;overflow-x:auto;font-size:.875rem;line-height:1.7}.project-content pre code{background:transparent;border:none;padding:0;font-size:inherit}.project-content blockquote{margin:var(--content-gap) 0;padding:1.25rem 1.5rem;border-left:3px solid var(--accent);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;color:var(--text-muted);font-style:italic}.project-content blockquote p{margin:0;color:inherit}.project-content hr{border:none;border-top:1px solid var(--border);margin:clamp(2rem,4vw,3rem) 0}.project-content table{width:100%;border-collapse:collapse;font-size:.9375rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.project-content thead{background:var(--surface-2)}.project-content th{text-align:left;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);padding:.75rem 1rem;border-bottom:1px solid var(--border)}.project-content td{padding:.75rem 1rem;border-bottom:1px solid var(--border);color:var(--text-body)}.project-content tr:last-child td{border-bottom:none}.project-content tbody tr:hover{background:var(--surface)}.project-content a{color:var(--text-body);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--border);transition:text-decoration-color .15s}.project-content a:hover{text-decoration-color:var(--text-body)}.project-content img{border-radius:var(--radius-lg);width:100%;height:auto;border:1px solid var(--border)}.project-content figure{margin:var(--content-gap) 0}.project-content figcaption{margin-top:.5rem;font-size:.875rem;color:var(--text-muted);text-align:center}.project-content mark{background:var(--mark-bg);color:var(--text-body);padding:.1em .3em;border-radius:3px}.project-content .callout{display:flex;gap:.875rem;padding:1rem 1.25rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);font-size:.9375rem}.project-content .callout.note{border-left:3px solid #3b82f6}.project-content .callout.warn{border-left:3px solid #f59e0b}.project-content .callout.danger{border-left:3px solid #ef4444}.project-content .callout.tip{border-left:3px solid #10b981}.project-content .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin:var(--content-gap) 0}.project-content .stats-grid .stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;text-align:center}.project-content .stats-grid .stat .value{display:block;font-size:clamp(1.5rem,3vw,2rem);font-weight:800;letter-spacing:-.03em;color:var(--text-body);line-height:1;margin-bottom:.3rem}.project-content .stats-grid .stat .label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.project-content .tag{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;letter-spacing:.04em;padding:.2em .65em;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);text-transform:uppercase}.project-content>p:first-of-type{font-size:clamp(1.0625rem,1.75vw,1.1875rem);color:var(--text-body);font-weight:400}@media (max-width: 640px){.project-content h2:before{display:none}.project-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}
