:root{font-family:Inter,SF Pro Text,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;font-weight:400;color:#0f172a;background:#f1f5f9;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;color:#0f172a;background:radial-gradient(circle at top right,rgba(125,211,252,.24),transparent 35%),radial-gradient(circle at top left,rgba(129,140,248,.18),transparent 28%),#f1f5f9}img{max-width:100%;display:block}a{color:inherit}.container{width:min(1120px,92vw);margin:0 auto}.skip-link{position:absolute;top:-40px;left:10px;background:#0f172a;color:#fff;padding:.5rem}.skip-link:focus{top:10px}.site-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.site-header{border-bottom:1px solid rgba(148,163,184,.34);background:#ffffffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.nav{display:flex;align-items:center;justify-content:space-between;min-height:4.6rem;gap:1rem}.brand{font-weight:700;font-size:1rem;letter-spacing:.02em;text-decoration:none;color:#0f172a;display:inline-flex;align-items:center;gap:.65rem}.brand-mark{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#0f172a,#1d4ed8)}.menu-toggle{display:none}.nav-links{list-style:none;display:flex;align-items:center;gap:.5rem;margin:0;padding:0}.nav-links a{text-decoration:none;color:#334155;font-weight:500;border-radius:999px;padding:.45rem .85rem;transition:all .2s ease}.nav-links a:hover{color:#0f172a;background:#e2e8f0}.nav-links a.active{color:#1d4ed8;background:#dbeafe}.page-content{padding:clamp(1.8rem,3vw,3rem) 0 clamp(3rem,5vw,4.6rem)}section{margin-bottom:clamp(2rem,4vw,3.6rem)}h1,h2,h3{margin:0;line-height:1.2;letter-spacing:-.02em}h1{font-size:clamp(2rem,3.9vw,3.4rem)}h2{font-size:clamp(1.45rem,2.4vw,2rem)}p{margin:0}.hero{padding:clamp(1.4rem,4vw,3rem);background:linear-gradient(145deg,#fff,#f8fafc);border:1px solid #dbe3ef;border-radius:1.2rem;box-shadow:0 14px 44px -28px #0f172a47;display:grid;gap:1rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:600;color:#1d4ed8}.hero-actions{margin-top:.4rem;display:flex;flex-wrap:wrap;gap:.75rem}.button{border:1px solid #cbd5e1;background:#fff;color:#0f172a;border-radius:.7rem;padding:.62rem 1rem;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.button:hover{transform:translateY(-1px);box-shadow:0 8px 20px -14px #0f172aa6}.button.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:#2563eb}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.section-subtitle{margin-top:.65rem}.project-grid{margin-top:1.1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.15rem}.project-card{border:1px solid #dbe3ef;border-radius:1rem;background:#fff;overflow:hidden;box-shadow:0 10px 28px -24px #0f172a8c;display:grid;grid-template-rows:auto 1fr}.project-image-wrap{aspect-ratio:16 / 9;overflow:hidden;background:#e2e8f0}.project-image,.detail-image{width:100%;height:100%;object-fit:cover}.project-body{padding:1rem;display:grid;align-content:start;gap:.75rem}.project-card-link{margin-top:auto}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag,.tag-button{border:1px solid #cbd5e1;padding:.25rem .55rem;border-radius:999px;background:#fff;font-size:.82rem;font-weight:500}.stack-section .tag{background:#f8fafc}.tag-button{cursor:pointer}.tag-button.active{background:#dbeafe;border-color:#93c5fd}.text-link{color:#1d4ed8;text-decoration:none;font-weight:600}.text-link:hover{text-decoration:underline}.filters{display:grid;gap:.8rem;background:#ffffffd1;border:1px solid #dbe3ef;border-radius:1rem;padding:1rem}input,textarea{width:100%;border:1px solid #cbd5e1;border-radius:.7rem;padding:.62rem;font:inherit}.contact-form{display:grid;gap:.7rem;max-width:560px;background:#fff;border:1px solid #dbe3ef;border-radius:1rem;padding:1rem}.case-study{display:grid;gap:1.15rem;max-width:780px;margin:0 auto}.case-study header{display:grid;gap:.85rem}.case-study section{display:grid;gap:.75rem;padding:clamp(1rem,2.3vw,1.4rem);border:1px solid #dbe3ef;border-radius:1rem;background:#fff;box-shadow:0 8px 24px -26px #0f172ab3}.case-study ul{margin:0;padding-left:1.15rem;display:grid;gap:.45rem}.architecture-diagram{margin:0;padding:.95rem;border-radius:.75rem;border:1px solid #cbd5e1;background:#f8fafc;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.86rem}.case-study-screenshots{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.screenshot-card{margin:0;display:grid;gap:.45rem}.screenshot-card figcaption{color:#475569;font-size:.88rem}.detail-image{aspect-ratio:16 / 9;border-radius:.8rem;border:1px solid #dbe3ef}.screenshot-placeholder{display:grid;place-items:center;background:repeating-linear-gradient(-45deg,#e2e8f0,#e2e8f0 12px,#f1f5f9 12px 24px);color:#475569;font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.cta-block{border:1px solid #bfdbfe;background:linear-gradient(160deg,#eff6ff,#dbeafe);border-radius:1rem;padding:clamp(1.2rem,3vw,2rem);display:grid;gap:.8rem}.small-text{color:#475569;font-size:.92rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.site-footer{border-top:1px solid rgba(148,163,184,.4);background:#ffffffc2}.footer-content{padding:1.2rem 0;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto;align-items:center;gap:1rem}.footer-title{font-weight:700;margin-bottom:.3rem}.footer-links{display:flex;flex-wrap:wrap;gap:.6rem}.footer-links a{text-decoration:none;color:#334155;font-weight:500}.github-toggle-label{display:inline-flex;align-items:center;gap:.55rem}.github-toggle-label input{width:auto}@media(max-width:760px){.menu-toggle{display:block;border:1px solid #cbd5e1;border-radius:.55rem;padding:.44rem .78rem;background:#fff;font-weight:600}.nav-links{display:none;position:absolute;top:4.6rem;left:0;right:0;flex-direction:column;align-items:stretch;background:#fffffffa;border-bottom:1px solid #dbe3ef;padding:.7rem 4vw 1rem;gap:.45rem}.nav-links a{display:block}.nav-links.open{display:flex}.footer-content{grid-template-columns:1fr;align-items:start}.hero{padding:1.25rem}}
