:root{--bg-canvas:#f8fafc;--surface:#fff;--surface-hover:#f1f5f9;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--text-main:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--accent:#0284c7;--accent-bg:#f0f9ff;--accent-border:#bae6fd;--accent-text:#0369a1;--tag-bg:#f1f5f9;--tag-border:#e2e8f0;--tag-text:#334155;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-subtle:0 2px 8px -2px #0f172a0a;--shadow-card:0 4px 16px -3px #0f172a0d}[data-astro-cid-xqkef2b7][data-theme=dark]{--bg-canvas:#090d16;--surface:#111726;--surface-hover:#172033;--border-subtle:#1e293b;--border-strong:#334155;--text-main:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--accent:#38bdf8;--accent-bg:#0c2340;--accent-border:#1e3a5f;--accent-text:#7dd3fc;--tag-bg:#172033;--tag-border:#23304a;--tag-text:#cbd5e1;--shadow-subtle:0 2px 8px -2px #0000004d;--shadow-card:0 4px 16px -3px #0006}[data-astro-cid-xqkef2b7]{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-canvas);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;transition:background-color .25s,color .25s}a[data-astro-cid-xqkef2b7]{color:inherit;text-decoration:none}.container[data-astro-cid-xqkef2b7]{max-width:820px;margin:0 auto;padding:40px 24px 80px}.top-nav[data-astro-cid-xqkef2b7]{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:40px;padding-bottom:20px;display:flex}.back-link[data-astro-cid-xqkef2b7]{color:var(--text-muted);align-items:center;gap:8px;font-size:.9rem;font-weight:600;transition:color .15s;display:inline-flex}.back-link[data-astro-cid-xqkef2b7]:hover{color:var(--accent)}.theme-toggle-btn[data-astro-cid-xqkef2b7]{background:var(--surface);border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;padding:7px 14px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.theme-toggle-btn[data-astro-cid-xqkef2b7]:hover{background:var(--surface-hover);color:var(--text-main);border-color:var(--border-strong)}.theme-toggle-btn[data-astro-cid-xqkef2b7] svg[data-astro-cid-xqkef2b7]{fill:currentColor;width:14px;height:14px}.nav-meta-badge[data-astro-cid-xqkef2b7]{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:5px 12px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.doc-footer[data-astro-cid-xqkef2b7]{border-top:1px solid var(--border-subtle);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:36px;padding-top:20px;font-size:.85rem;display:flex}.doc-footer[data-astro-cid-xqkef2b7] a[data-astro-cid-xqkef2b7]{color:var(--accent);text-decoration:none;transition:color .15s}.doc-footer[data-astro-cid-xqkef2b7] a[data-astro-cid-xqkef2b7]:hover{color:var(--text-main);text-decoration:underline}.case-study-card[data-astro-cid-xqkef2b7]{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:32px;padding:36px 32px}.project-heading-block[data-astro-cid-xqkef2b7]{border-bottom:1px dashed var(--border-subtle);margin-bottom:28px;padding-bottom:20px}.project-meta-pill[data-astro-cid-xqkef2b7]{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;display:inline-block}.project-title[data-astro-cid-xqkef2b7]{letter-spacing:-.02em;color:var(--text-main);margin:0;font-family:Outfit,sans-serif;font-size:1.85rem;font-weight:700;line-height:1.25}.study-section[data-astro-cid-xqkef2b7]{margin-bottom:26px}.study-section[data-astro-cid-xqkef2b7]:last-child{margin-bottom:0}.section-label[data-astro-cid-xqkef2b7]{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);align-items:center;gap:6px;margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:700;display:flex}.section-body[data-astro-cid-xqkef2b7]{color:var(--text-secondary);font-size:.96rem;line-height:1.68}.approach-list[data-astro-cid-xqkef2b7]{flex-direction:column;gap:10px;list-style:none;display:flex}.approach-list[data-astro-cid-xqkef2b7] li[data-astro-cid-xqkef2b7]{color:var(--text-secondary);padding-left:20px;font-size:.96rem;line-height:1.62;position:relative}.approach-list[data-astro-cid-xqkef2b7] li[data-astro-cid-xqkef2b7]:before{content:"–";color:var(--accent);font-weight:700;position:absolute;top:0;left:0}.stack-tags[data-astro-cid-xqkef2b7]{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.stack-pill[data-astro-cid-xqkef2b7]{background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--tag-text);border-radius:var(--radius-sm);padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:500;display:inline-block}.pagination-nav[data-astro-cid-xqkef2b7]{justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.page-link-btn[data-astro-cid-xqkef2b7]{background:var(--surface);border:1px solid var(--border-subtle);color:var(--text-main);border-radius:var(--radius-md);box-shadow:var(--shadow-subtle);align-items:center;gap:8px;padding:10px 18px;font-size:.88rem;font-weight:600;transition:all .15s;display:inline-flex}.page-link-btn[data-astro-cid-xqkef2b7]:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg);transform:translateY(-1px)}@media (width<=640px){.container[data-astro-cid-xqkef2b7]{padding:24px 16px 60px}.case-study-card[data-astro-cid-xqkef2b7]{padding:24px 20px}.project-title[data-astro-cid-xqkef2b7]{font-size:1.35rem}.pagination-nav[data-astro-cid-xqkef2b7]{flex-direction:column;align-items:stretch}.page-link-btn[data-astro-cid-xqkef2b7]{justify-content:center}.theme-toggle-btn[data-astro-cid-xqkef2b7] span[data-astro-cid-xqkef2b7]#theme-text{display:none}.theme-toggle-btn[data-astro-cid-xqkef2b7]{justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}}
