:root{--bg-primary:#faf9f6;--bg-secondary:#f5f3ef;--text-primary:#2c2c2c;--text-secondary:#6b6b6b;--accent:#a69b8d;--accent-hover:#8b8178;--border:#e8e4df;--font-heading:"Cormorant Garamond",Georgia,serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--space-xs:.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--space-2xl:6rem;--transition-fast:.15s ease;--transition-base:.3s ease;--transition-slow:.5s ease;--max-width:800px;--max-width-wide:1200px}[data-theme=dark]{--bg-primary:#1a1a1a;--bg-secondary:#242424;--text-primary:#e8e8e8;--text-secondary:#a0a0a0;--accent:#c4b8a8;--accent-hover:#d4c8b8;--border:#333}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base),color var(--transition-base);font-weight:400;line-height:1.7}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:-.02em;font-weight:400;line-height:1.2}h1{font-size:clamp(2.5rem,8vw,4rem);font-weight:300}h2{margin-bottom:var(--space-md);font-size:clamp(1.75rem,4vw,2.25rem)}h3{font-size:1.25rem;font-weight:500}p{color:var(--text-secondary);max-width:60ch}a{color:var(--text-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover)}.container{width:100%;max-width:var(--max-width);padding:0 var(--space-md);margin:0 auto}.container-wide{max-width:var(--max-width-wide)}.page{flex-direction:column;min-height:100vh;display:flex}.page-header{padding:var(--space-lg)0;border-bottom:1px solid var(--border);margin-bottom:var(--space-xl)}.back-link{align-items:center;gap:var(--space-xs);color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.875rem;display:inline-flex}.back-link:hover{color:var(--text-primary)}.page-header h1{font-size:clamp(2rem,5vw,2.5rem)}.content{padding:0 0 var(--space-2xl);flex:1}.projects-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.project-card{padding:var(--space-lg);background:var(--bg-secondary);transition:transform var(--transition-base),box-shadow var(--transition-base);border-radius:8px;text-decoration:none;display:block}.project-card:hover{color:inherit;transform:translateY(-4px);box-shadow:0 8px 30px #00000014}.project-card h3{margin-bottom:var(--space-xs);color:var(--text-primary)}.project-card p{margin-bottom:var(--space-sm);font-size:.9rem}.project-tags{gap:var(--space-xs);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.project-tags span{background:var(--bg-primary);color:var(--text-secondary);border-radius:20px;padding:4px 10px;font-size:.75rem}.project-link{color:var(--accent);align-items:center;gap:4px;font-size:.875rem;display:inline-flex}.project-link:hover{color:var(--accent-hover)}.project-hero{padding:var(--space-xl)0;border-bottom:1px solid var(--border);margin-bottom:var(--space-xl)}.project-hero h1{margin-bottom:var(--space-sm)}.project-meta{gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.project-meta span{background:var(--bg-secondary);color:var(--text-secondary);border-radius:20px;padding:6px 14px;font-size:.8rem}.project-links{gap:var(--space-sm);margin-top:var(--space-md);display:flex}.project-links a{border:1px solid var(--border);transition:all var(--transition-fast);border-radius:4px;padding:10px 20px;font-size:.875rem}.project-links a:hover{border-color:var(--accent);background:var(--bg-secondary)}.project-links a.primary{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.project-links a.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.project-section{margin-bottom:var(--space-xl)}.project-section h2{margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-size:1.5rem}.project-section h2:first-child{margin-top:0}.project-section p{margin-bottom:var(--space-md)}.project-section ul{margin-bottom:var(--space-md);padding:0;list-style:none}.project-section li{color:var(--text-secondary);padding:4px 0;padding-left:var(--space-md);position:relative}.project-section li:before{content:"→";color:var(--accent);position:absolute;left:0}.project-grid{gap:var(--space-xl);grid-template-columns:1fr 1fr;align-items:start;display:grid}.project-grid img{cursor:pointer;width:100%;transition:opacity var(--transition-fast);border-radius:8px;box-shadow:0 4px 20px #0000001a}.project-grid img:hover{opacity:.9}.project-image{border-radius:8px;position:relative}.click-hint{bottom:var(--space-sm);right:var(--space-sm);color:var(--bg-primary);pointer-events:none;background:#00000080;border-radius:4px;padding:4px 8px;font-size:.75rem;position:absolute}.blog-list{gap:var(--space-lg);flex-direction:column;display:flex}.blog-post{padding-bottom:var(--space-lg);border-bottom:1px solid var(--border)}.blog-post:last-child{border-bottom:none}.blog-post h3{margin-bottom:var(--space-xs)}.blog-post h3 a{transition:color var(--transition-fast)}.blog-post h3 a:hover{color:var(--accent)}.blog-date{color:var(--text-secondary);margin-bottom:var(--space-sm);font-size:.8rem}.blog-excerpt{font-size:.95rem}.blog-header{padding:var(--space-xl)0;border-bottom:1px solid var(--border);margin-bottom:var(--space-xl)}.blog-header h1{margin-bottom:var(--space-sm);font-size:clamp(1.75rem,4vw,2.25rem)}.blog-meta{color:var(--text-secondary);font-size:.875rem}.blog-content{max-width:65ch}.blog-content h2{margin-top:var(--space-xl);margin-bottom:var(--space-md);font-size:1.4rem}.blog-content p{margin-bottom:var(--space-md);line-height:1.8}.blog-content code{background:var(--bg-secondary);border-radius:3px;padding:2px 6px;font-family:SF Mono,Fira Code,monospace;font-size:.9em}.blog-content pre{background:var(--bg-secondary);padding:var(--space-md);margin-bottom:var(--space-md);border-radius:6px;overflow-x:auto}.blog-content pre code{background:0 0;padding:0}.courses-list{gap:var(--space-lg);flex-direction:column;display:flex}.course-card{padding:var(--space-lg);background:var(--bg-secondary);gap:var(--space-sm);border-radius:8px;flex-direction:column;display:flex}.course-card h3{font-family:var(--font-heading);font-size:1.5rem}.course-card p{font-size:.95rem}.course-status{align-items:center;gap:var(--space-xs);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:500;display:inline-flex}.course-status.available{color:#5a8f6a}.course-status.coming-soon{color:var(--accent)}.course-link{background:var(--text-primary);color:var(--bg-primary);transition:background var(--transition-fast);border-radius:4px;align-self:flex-start;padding:10px 20px;font-size:.875rem}.course-link:hover{background:var(--accent-hover);color:var(--bg-primary)}.theme-toggle{top:var(--space-md);right:var(--space-md);border:1px solid var(--border);background:var(--bg-secondary);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base);z-index:100;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}.theme-toggle:hover{border-color:var(--accent);color:var(--text-primary)}.lightbox{z-index:1000;cursor:zoom-out;width:100%;height:100%;padding:var(--space-lg);background:#000000e6;justify-content:center;align-items:center;display:none;position:fixed;top:0;left:0}.lightbox.active{display:flex}.lightbox img{border-radius:8px;max-width:95%;max-height:95%;box-shadow:0 8px 40px #0000004d}.lightbox-close{top:var(--space-md);right:var(--space-md);color:#fff;cursor:pointer;opacity:.7;transition:opacity var(--transition-fast);font-size:2rem;position:absolute}.lightbox-close:hover{opacity:1}.social-links{gap:var(--space-sm);display:flex}.social-links a{border:1px solid var(--border);width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-base);border-radius:50%;justify-content:center;align-items:center;display:flex}.social-links a:hover{border-color:var(--accent);color:var(--accent-hover)}.social-links svg{width:16px;height:16px}@media (max-width:768px){.project-grid{grid-template-columns:1fr}}@media (max-width:640px){.projects-grid{grid-template-columns:1fr}.social-links{gap:var(--space-xs)}.theme-toggle{top:var(--space-sm);right:var(--space-sm);width:36px;height:36px}}@media (max-width:400px){.social-links a{width:32px;height:32px}.social-links svg{width:14px;height:14px}}
