.logo-title .title h3,.logo-title .title h3 a,.home-intro .logo-title .title h3,#sidebar .logo-title .title h3 a{font-family:"Eagle Lake",cursive,serif !important;letter-spacing:.03em;font-weight:700}body,.body-block,p,li,.description,.page-top .nav a,.home-nav a,.sidebar-nav a,.article-title,.heading,h1,h2,h3,h4,h5,h6,.body-block h1,.body-block h2,.body-block h3,.body-block h4,.body-block h5,.body-block h6{font-family:"Sofia Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif !important}.heading,h1,h2,h3,h4,h5,h6,.title-block .heading,.article-list .title-block .heading,.title-link .heading,.article-header .title-link .heading,.intro-header .heading{font-family:"Sofia Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif !important;font-weight:600 !important;letter-spacing:-.01em}strong,b{font-family:"Sofia Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-weight:600}.intro-toc,.intro-toc .toc-list,.intro-toc .toc-list a,.intro-toc .toc-wrapper,.intro-toc .toc-root>a,.toc,.toc a{font-family:"Sofia Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif !important}.intro-toc .toc-list a{font-weight:500}.intro-toc .toc-list .toc-root>a{font-weight:600}code,pre,kbd,samp,.card-testing,.platform-badge,.action-btn{font-family:"Cascadia Code","Fira Code",monospace !important}.zola-anchor,a.zola-anchor,:is(h1,h2,h3,h4,h5,h6) .zola-anchor,:is(h1,h2,h3,h4,h5,h6) a.zola-anchor{font-size:.42em !important;vertical-align:.2em !important;margin-left:.35em !important;text-decoration:none !important;border-bottom:none !important;opacity:.3;display:inline-block;line-height:1;user-select:none;transition:opacity .15s ease,transform .15s ease}.zola-anchor:hover,a.zola-anchor:hover,:is(h1,h2,h3,h4,h5,h6) .zola-anchor:hover,:is(h1,h2,h3,h4,h5,h6) a.zola-anchor:hover{opacity:.9 !important;text-decoration:none !important;border-bottom:none !important;transform:scale(1.15)}:is(h1,h2,h3,h4,h5,h6):hover .zola-anchor{opacity:.65}.article-header-image{width:100%;margin-bottom:2rem;border-radius:12px;overflow:hidden;border:1px solid var(--card-border);box-shadow:0 4px 16px rgba(0,0,0,.06)}.article-header-image img{width:100%;max-height:420px;object-fit:cover;display:block}:root{--card-bg: light-dark(#ffffff, hsla(0, 0%, 16%, 1.0));--card-inset-bg: light-dark(hsla(0, 0%, 96%, 1.0), hsla(0, 0%, 12%, 1.0));--card-badge-bg: light-dark(hsla(0, 0%, 93%, 1.0), hsla(0, 0%, 20%, 1.0));--card-border: light-dark(hsla(0, 0%, 88%, 1.0), hsla(0, 0%, 24%, 1.0));--card-text-muted: light-dark(hsla(0, 0%, 45%, 1.0), hsla(0, 0%, 65%, 1.0));--accent-color: light-dark(#087e96, #5bc0be);--accent-hover: light-dark(#055566, #8ee3e0)}.projects-section{max-width:920px;margin:0 auto;padding:2rem 1.5rem}.projects-section .title-block .title,.projects-section h1.title{font-family:"Sofia Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif !important;font-weight:600 !important;font-size:2.2rem;letter-spacing:-.02em}.section-description{font-size:1.05rem;color:var(--card-text-muted);margin-bottom:2rem;line-height:1.6}.cards{display:flex;flex-direction:column;gap:28px;margin-top:1.5rem;padding-block:8px;width:100%}.cards .card{display:flex;flex-direction:column;width:100%;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.cards .card:hover{transform:translateY(-2px);border-color:var(--accent-color);box-shadow:0 6px 18px rgba(0,0,0,.08)}.cards .card:hover .card-header.has-bg .card-header-bg img{opacity:.24;transform:scale(1.02)}.cards .card .card-content{display:flex;flex-direction:column;flex-grow:1;padding:24px 28px}.cards .card .card-header{position:relative;margin-bottom:14px}.cards .card .card-header.has-bg{border-radius:11px 11px 0 0;overflow:hidden;border-bottom:1px solid var(--card-border);background:var(--card-inset-bg);margin:-24px -28px 18px -28px}.cards .card .card-header.has-bg .card-header-bg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.cards .card .card-header.has-bg .card-header-bg img{width:100%;height:100%;object-fit:cover;opacity:.15;filter:saturate(0.85);transition:opacity .3s ease,transform .3s ease}.cards .card .card-header.has-bg .card-header-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to right, var(--card-bg) 0%, rgba(0,0,0,0) 60%, var(--card-bg) 100%);opacity:.35}.cards .card .card-header.has-bg .card-header-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 28px;min-height:90px}.cards .card .card-header:not(.has-bg) .card-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}.cards .card .card-header .card-title{margin:0;font-family:"Sofia Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif !important;font-size:1.4rem;font-weight:600 !important;letter-spacing:-.01em;line-height:1.3}.cards .card .card-header .card-title a{font-family:inherit !important;font-weight:600 !important;color:var(--text-color);text-decoration:none;transition:color .15s ease}.cards .card .card-header .card-title a:hover{color:var(--accent-color)}.cards .card .card-header .platform-badge{flex-shrink:0;font-size:.74rem;font-weight:600;padding:4px 10px;border-radius:6px;background:var(--card-badge-bg);color:var(--accent-color);border:1px solid var(--card-border);white-space:nowrap}.cards .card .card-description{font-size:.98rem;line-height:1.6;color:var(--text-color);margin:0 0 16px 0}.cards .card .card-testing{background:var(--card-inset-bg);border-left:3px solid var(--accent-color);border-radius:0 6px 6px 0;padding:12px 16px;margin-bottom:16px}.cards .card .card-testing .testing-label{display:block;font-size:.76rem;font-weight:600;color:var(--card-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.cards .card .card-testing .testing-list{margin:0;padding-left:18px;list-style-type:disc}.cards .card .card-testing .testing-list li{font-size:.88rem;line-height:1.5;color:var(--text-color);margin-bottom:4px}.cards .card .card-testing .testing-list li:last-child{margin-bottom:0}.cards .card .card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.cards .card .card-tags .card-tag{font-size:.74rem;padding:3px 10px;border-radius:12px;background:var(--card-badge-bg);color:var(--card-text-muted);border:1px solid var(--card-border)}.cards .card .card-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding-top:14px;border-top:1px solid var(--card-border)}.cards .card .card-footer .card-read-link{font-size:.9rem;font-weight:600;color:var(--accent-color);text-decoration:none;display:inline-flex;align-items:center;gap:5px;transition:gap .15s ease}.cards .card .card-footer .card-read-link:hover{text-decoration:underline;gap:8px}.cards .card .card-footer .card-actions{display:flex;align-items:center;gap:10px}.cards .card .card-footer .card-actions .action-btn{font-size:.8rem;padding:5px 12px;border-radius:6px;background:var(--card-badge-bg);color:var(--text-color);text-decoration:none;border:1px solid var(--card-border);transition:background .15s ease,border-color .15s ease,color .15s ease}.cards .card .card-footer .card-actions .action-btn:hover{background:var(--accent-color);border-color:var(--accent-color);color:#fff}@media all and (max-width: 720px){.projects-section{padding:1.5rem 1rem}.cards{gap:20px}.cards .card .card-content{padding:18px 18px}.cards .card .card-header.has-bg{margin:-18px -18px 14px -18px}.cards .card .card-header.has-bg .card-header-inner{padding:18px 18px;min-height:auto}.cards .card .card-header .card-header-inner{flex-direction:column;align-items:flex-start;gap:8px}}