:root{--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--color-bg: #0c0f0c;--color-surface: #141a14;--color-surface-raised: #1a221a;--color-border: #243024;--color-border-subtle: #1a221a;--color-text: #e2e8e2;--color-text-muted: #7a8a7a;--color-accent: #4a7a4a;--color-accent-light: #5c9a5c;--color-accent-subtle: #1e2e1e;--color-tag-bg: #1a261a;--color-tag-text: #7a9a7a;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-card: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow-card-hover: 0 8px 32px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.3);--transition: .2s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;letter-spacing:-.02em}.container{max-width:1100px;margin-inline:auto;padding-inline:var(--space-6)}.site-footer{margin-top:var(--space-24);padding-block:var(--space-10);border-top:1px solid var(--color-border)}.site-footer .container{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.site-footer p{font-size:.8125rem;color:var(--color-text-muted)}.site-footer a{color:var(--color-accent-light);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--color-border);transition:text-decoration-color var(--transition)}.site-footer a:hover{text-decoration-color:var(--color-accent-light)}.hero{padding-block:var(--space-24)}.hero-eyebrow{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-light);margin-bottom:var(--space-4)}.hero-title{font-size:clamp(2.5rem,5vw,4rem);font-weight:700;letter-spacing:-.04em;line-height:1.1;max-width:16ch;margin-bottom:var(--space-6);color:#f0f4f0}.hero-subtitle{font-size:1.125rem;color:var(--color-accent-light);max-width:52ch;line-height:1.7}.section-label{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-8);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-6)}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-card);transition:box-shadow var(--transition),transform var(--transition),border-color var(--transition);display:flex;flex-direction:column}.project-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px);border-color:var(--color-accent)}.project-card-image{aspect-ratio:16 / 9;overflow:hidden;background:var(--color-surface-raised);position:relative}.project-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.4,0,.2,1)}.project-card:hover .project-card-image img{transform:scale(1.03)}.project-card-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-surface-raised) 0%,var(--color-accent-subtle) 100%)}.project-card-image-placeholder span{font-size:2rem;opacity:.2;color:var(--color-accent-light)}.project-card-body{padding:var(--space-6);display:flex;flex-direction:column;flex:1;gap:var(--space-3)}.project-card-title{font-size:1.0625rem;font-weight:600;letter-spacing:-.02em;line-height:1.3;color:#f0f4f0}.project-card-desc{font-size:.875rem;color:var(--color-text-muted);line-height:1.65;flex:1}.project-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.project-tag{font-size:.6875rem;font-weight:500;letter-spacing:.02em;padding:var(--space-1) var(--space-2);background:var(--color-tag-bg);color:var(--color-tag-text);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.project-link-arrow{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--color-border);color:var(--color-text-muted);font-size:.75rem;transition:all var(--transition)}.project-card:hover .project-link-arrow{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.project-page{padding-block:var(--space-16)}.project-page-header{margin-bottom:var(--space-12);max-width:720px}.project-page-date{font-size:.8125rem;color:var(--color-text-muted);margin-bottom:var(--space-3);letter-spacing:.02em}.project-page-title{font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;letter-spacing:-.04em;line-height:1.15;margin-bottom:var(--space-4);color:#f0f4f0}.project-page-description{font-size:1.125rem;color:var(--color-text-muted);line-height:1.7}.project-page-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6)}.project-page-cover{width:100%;aspect-ratio:16 / 8;object-fit:cover;border-radius:var(--radius-lg);margin-bottom:var(--space-12);border:1px solid var(--color-border)}.project-page-cover-placeholder{width:100%;aspect-ratio:16 / 8;background:linear-gradient(135deg,var(--color-surface-raised) 0%,var(--color-accent-subtle) 100%);border-radius:var(--radius-lg);margin-bottom:var(--space-12);border:1px solid var(--color-border)}.project-page-content{max-width:720px}.article-footer{max-width:720px;margin-top:var(--space-16);padding-top:var(--space-12);border-top:1px solid var(--color-border)}.article-footer-inner{display:flex;flex-direction:column;gap:var(--space-4)}.article-footer-text{font-size:.9375rem;color:var(--color-text-muted);margin:0}.article-footer-thumb{width:96px;aspect-ratio:16 / 9;flex-shrink:0;border-radius:8px;overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface)}.article-footer-thumb img{width:100%;height:100%;object-fit:cover;display:block}.article-footer-thumb-placeholder{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:1.25rem}.article-footer-suggestion{display:flex;align-items:center;gap:1rem;padding:var(--space-4) var(--space-6);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:10px;text-decoration:none;transition:border-color .2s,background .2s}.article-footer-suggestion:hover{border-color:var(--color-accent);background:var(--color-accent-subtle)}.article-footer-suggestion-title{flex:1;font-size:1rem;font-weight:500;color:var(--color-text)}.article-footer-suggestion-arrow{font-size:1.25rem;color:var(--color-accent-light);flex-shrink:0}.article-footer-home{font-size:.875rem;color:var(--color-text-muted);text-decoration:none;margin-top:var(--space-2);transition:color .15s}.article-footer-home:hover{color:var(--color-accent-light)}.prose{font-size:1.0625rem;line-height:1.8;color:var(--color-text)}.prose h2{font-size:1.375rem;font-weight:600;letter-spacing:-.03em;margin-top:var(--space-12);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);color:#f0f4f0}.prose h3{font-size:1.125rem;font-weight:600;letter-spacing:-.02em;margin-top:var(--space-8);margin-bottom:var(--space-3);color:#f0f4f0}.prose p{margin-bottom:var(--space-5);color:#c4ccc4}.prose ul,.prose ol{margin-bottom:var(--space-5);padding-left:var(--space-6)}.prose li{margin-bottom:var(--space-2);color:#c4ccc4}.prose a{color:var(--color-accent-light);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--color-border);transition:text-decoration-color var(--transition)}.prose a:hover{text-decoration-color:var(--color-accent-light)}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--color-surface-raised);padding:.15em .4em;border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-accent-light)}.prose pre{background:#0a0d0a;color:#c4ccc4;padding:var(--space-6);border-radius:var(--radius-md);border:1px solid var(--color-border);overflow-x:auto;margin-bottom:var(--space-6);font-family:var(--font-mono);font-size:.875rem;line-height:1.7}.prose pre code{background:transparent;padding:0;font-size:inherit;color:inherit;border:none}.prose blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-5);margin-left:0;margin-bottom:var(--space-5);color:var(--color-text-muted);font-style:italic}.prose img{border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-block:var(--space-6);width:100%;height:auto}.prose .image-single img{margin-block:var(--space-8)}.image-gallery{display:flex;gap:var(--space-4);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-block:var(--space-8);padding-bottom:var(--space-4);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.image-gallery::-webkit-scrollbar{height:6px}.image-gallery::-webkit-scrollbar-track{background:transparent}.image-gallery::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.image-gallery::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}.image-gallery-slide{flex:0 0 auto;scroll-snap-align:start;margin:0}.image-gallery-slide img,.image-gallery-slide video{height:360px;width:auto;max-width:none;border-radius:var(--radius-lg);border:1px solid var(--color-border);margin:0;display:block}.image-gallery-slide.has-video{position:relative;cursor:pointer}.image-gallery-slide.has-video:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;background:#0009;border-radius:50%;pointer-events:none;border:2px solid rgba(255,255,255,.3)}.image-gallery-slide.has-video:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-42%,-50%);z-index:1;width:0;height:0;border-style:solid;border-width:12px 0 12px 22px;border-color:transparent transparent transparent rgba(255,255,255,.9);pointer-events:none}.prose .video-wrap{display:block;margin-block:var(--space-6)}.prose .video-wrap video{max-width:100%;border-radius:var(--radius-lg);border:1px solid var(--color-border);display:block}.prose hr{border:none;border-top:1px solid var(--color-border);margin-block:var(--space-10)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.875rem;color:var(--color-text-muted);margin-bottom:var(--space-10);transition:color var(--transition)}.back-link:hover{color:var(--color-accent-light)}.external-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.875rem;font-weight:500;color:var(--color-text);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition);margin-top:var(--space-6)}.external-link:hover{background:var(--color-accent);border-color:var(--color-accent);color:#fff}@media(max-width:640px){.container{padding-inline:var(--space-4)}.hero{padding-block:var(--space-16)}.projects-grid{grid-template-columns:1fr}.site-footer .container{flex-direction:column;align-items:flex-start}.image-gallery-slide img,.image-gallery-slide video{height:240px}}
