:root{--color-bg: #f4f7f2;--color-text: #2e3e2e;--color-primary: #6b8e4e;--color-accent: #a3c489;--color-link: #3b7d4d;--color-hover: #8cbf68;--font-body: "Segoe UI", system-ui, sans-serif}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);margin:0;padding:0;line-height:1.6}a{color:var(--color-link);text-decoration:none}a:hover{color:var(--color-hover)}h1,h2,h3,h4,h5,h6{color:var(--color-primary);margin-top:1.5em;line-height:1.3}main{max-width:800px;margin:0 auto;padding:2rem}header{padding:1.5rem 2rem;text-align:center;border-bottom:1px solid #c8d7bc;margin-bottom:2rem}nav{margin-bottom:2rem;display:flex;justify-content:center;gap:1rem}nav a{font-weight:500;padding:.4em .8em;border-radius:4px;transition:background-color .2s}nav a:hover{background-color:var(--color-accent);color:#fff}.devlog-grid,.grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin:2rem 0}.devlog-card,.card{padding:1.5rem;border:1px solid #c8d7bc;border-radius:8px;background-color:#f9fbf7;box-shadow:0 1px 3px #0000000f;transition:transform .1s ease}.devlog-card:hover,.card:hover{transform:scale(1.01)}.devlog-title,.card h2{color:var(--color-primary);margin-top:0;margin-bottom:.75rem;line-height:1.3}.card h2 a{color:var(--color-primary)}.card h2 a:hover{color:var(--color-hover)}.devlog-summary,.card p{margin:.75rem 0;color:var(--color-text);line-height:1.6}.devlog-meta{display:flex;align-items:center;gap:1rem;margin:1rem 0;font-size:.9rem;color:#556b4f}.devlog-tags,.tech{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0}.devlog-tags li,.tech li{background-color:var(--color-accent);color:#fff;padding:.2em .6em;font-size:.85rem;border-radius:3px}.links{margin-top:1rem;display:flex;gap:1rem}.links a{font-weight:500;padding:.4em .8em;border:1px solid var(--color-link);border-radius:4px;transition:all .2s;font-size:.9rem}.links a:hover{background-color:var(--color-link);color:#fff}.devlog-link{display:inline-block;margin-top:1rem;font-weight:500;padding:.4em .8em;border:1px solid var(--color-link);border-radius:4px;transition:all .2s;font-size:.9rem}.devlog-link:hover{background-color:var(--color-link);color:#fff}.page-title{text-align:center;margin-bottom:2rem}article{margin-bottom:3rem}article h2{margin-bottom:.5rem}article p{margin-top:.5rem}ul.projects{list-style:none;padding:0;margin:2rem 0}ul.projects li,article{padding:1.5rem;border:1px solid #c8d7bc;border-radius:8px;background-color:#f9fbf7;box-shadow:0 1px 3px #0000000f;margin-bottom:1.5rem;transition:transform .1s ease}ul.projects li:hover,article:hover{transform:scale(1.01)}.tags{margin-top:.75rem}.tag{display:inline-block;background-color:var(--color-accent);color:#fff;padding:.2em .6em;font-size:.85rem;border-radius:3px;margin-right:.5rem}code{background-color:#e8f0e0;padding:.2em .4em;border-radius:4px;font-size:.95em;font-family:monospace}pre{background-color:#e8f0e0;padding:1em;border-radius:6px;overflow-x:auto;margin-bottom:1.5em}footer{text-align:center;margin-top:3rem;padding-top:1rem;border-top:1px solid #c8d7bc;color:#556b4f;font-size:.9rem}.project-detail{max-width:900px;margin:0 auto;background-color:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;overflow:hidden}.project-detail-header{background:linear-gradient(135deg,#f9fbf7,#e8f0e0);padding:3rem 2rem 2rem;text-align:center;border-bottom:1px solid #c8d7bc}.project-detail h1{color:var(--color-primary);margin:0 0 1rem;font-size:2.5rem;font-weight:700;line-height:1.2;letter-spacing:-.02em}.project-detail>p{font-size:1.2rem;line-height:1.6;margin:0 0 2rem;color:#556b4f;max-width:600px;margin-left:auto;margin-right:auto;font-weight:400}.tech-stack{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;list-style:none;padding:0;margin:0 0 2rem}.tech-stack li{background:linear-gradient(135deg,var(--color-accent) 0%,#8cbf68 100%);color:#fff;padding:.5em 1em;font-size:.9rem;border-radius:25px;font-weight:600;letter-spacing:.02em;box-shadow:0 2px 6px #a3c4894d;transition:transform .2s ease}.tech-stack li:hover{transform:translateY(-2px)}.project-detail .links{display:flex;justify-content:center;gap:1.5rem;margin:0}.project-detail .links a{font-weight:600;padding:.8em 2em;border:2px solid var(--color-link);border-radius:8px;transition:all .3s ease;font-size:1rem;min-width:140px;text-align:center;background-color:#fff;box-shadow:0 2px 8px #3b7d4d33;letter-spacing:.02em}.project-detail .links a:hover{background-color:var(--color-link);color:#fff;transform:translateY(-2px);box-shadow:0 4px 15px #3b7d4d4d}.project-detail hr{display:none}.project-content{padding:3rem 2rem 2rem;background-color:#fff}.devlog-entry{background-color:#f9fbf7;padding:2rem;border-radius:12px;box-shadow:0 2px 8px #0000000d;border:1px solid #c8d7bc;max-width:800px;margin:auto}.devlog-entry h1{font-size:2rem;margin-bottom:.3rem;color:var(--color-primary)}.description{font-size:1rem;color:#555;margin-bottom:1rem}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding:0;list-style:none}.tag{background-color:var(--color-accent);color:#fff;padding:.3em .6em;font-size:.75rem;border-radius:4px;font-weight:500}.tags{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding:0;list-style:none}.markdown-body{line-height:1.7;color:var(--color-text)}.markdown-body h2,.markdown-body h3{margin-top:1.5rem;color:var(--color-primary)}.markdown-body p{margin-bottom:1rem;font-size:.95rem}.devlog-entry{opacity:0;transform:translateY(10px);animation:fadeIn .6s ease forwards}@keyframes fadeIn{to{opacity:1;transform:translateY(0)}}.markdown-body{line-height:1.8;font-size:1.1rem;color:var(--color-text);max-width:none}.markdown-body h2{color:var(--color-primary);font-size:2rem;font-weight:700;margin-top:3rem;margin-bottom:1.5rem;line-height:1.3;position:relative}.markdown-body h2:after{content:"";display:block;width:60px;height:3px;background:linear-gradient(135deg,var(--color-accent) 0%,#8cbf68 100%);margin-top:.5rem;border-radius:2px}.markdown-body h2:first-child{margin-top:0}.markdown-body h3{color:var(--color-primary);font-size:1.5rem;font-weight:600;margin-top:2.5rem;margin-bottom:1rem;line-height:1.3}.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--color-primary);font-weight:600;margin-top:2rem;margin-bottom:.75rem;line-height:1.4}.markdown-body p{margin:1.5rem 0;color:var(--color-text);line-height:1.8}.markdown-body p:first-child{margin-top:0}.markdown-body ul,.markdown-body ol{margin:1.5rem 0;padding-left:2rem}.markdown-body li{margin:.75rem 0;line-height:1.7}.markdown-body li::marker{color:var(--color-accent)}.markdown-body blockquote{border-left:4px solid var(--color-accent);margin:2rem 0;padding:1.5rem;background:linear-gradient(135deg,#f9fbf7,#e8f0e0);border-radius:0 8px 8px 0;font-style:italic;color:#556b4f;box-shadow:0 2px 10px #0000000d}.markdown-body blockquote p{margin:0;font-size:1.05em}.markdown-body img{max-width:100%;height:auto;border-radius:12px;box-shadow:0 6px 20px #00000026;margin:2.5rem 0;display:block;margin-left:auto;margin-right:auto}.markdown-body a{color:var(--color-link);text-decoration:none;border-bottom:2px solid transparent;transition:all .2s ease;font-weight:500}.markdown-body a:hover{color:var(--color-hover);border-bottom:2px solid var(--color-hover)}.markdown-body table{width:100%;border-collapse:collapse;margin:2rem 0;background-color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px #00000014;border:1px solid #e0e7e0}.markdown-body th,.markdown-body td{padding:1rem 1.5rem;text-align:left;border-bottom:1px solid #e0e7e0}.markdown-body th{background:linear-gradient(135deg,var(--color-accent) 0%,#8cbf68 100%);color:#fff;font-weight:600;font-size:.95rem;letter-spacing:.02em}.markdown-body tr:hover{background-color:#f9fbf7}.markdown-body tr:last-child td{border-bottom:none}.markdown-body code{background-color:#e8f0e0;color:#2e3e2e;padding:.3em .6em;border-radius:6px;font-size:.9em;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-weight:500;border:1px solid #d0dcc0}.markdown-body pre{background-color:#2e3e2e;color:#f4f7f2;padding:1.5rem;border-radius:12px;overflow-x:auto;margin:2rem 0;box-shadow:0 4px 15px #0000001a;border:1px solid #4a5a4a}.markdown-body pre code{background:none;color:inherit;padding:0;border-radius:0;font-size:.95em;border:none}@media (max-width: 768px){main{padding:1rem}nav{flex-direction:column;align-items:center}.devlog-meta{flex-direction:column;align-items:flex-start;gap:.5rem}.links{flex-direction:column;gap:.5rem}.links a{text-align:center}.project-detail{margin:0 1rem;border-radius:8px}.project-detail-header{padding:2rem 1.5rem 1.5rem}.project-detail h1{font-size:2rem;line-height:1.3}.project-detail>p{font-size:1.1rem;margin-bottom:1.5rem}.project-detail .links{flex-direction:column;align-items:center;gap:1rem}.project-detail .links a{width:100%;max-width:250px;padding:1em}.tech-stack{gap:.5rem;margin-bottom:1.5rem}.tech-stack li{font-size:.85rem;padding:.4em .8em}.project-content{padding:2rem 1.5rem 1.5rem}.markdown-body{font-size:1rem}.markdown-body h2{font-size:1.6rem;margin-top:2rem}.markdown-body h3{font-size:1.3rem;margin-top:1.5rem}.markdown-body blockquote{margin:1.5rem -.5rem;padding:1rem}.markdown-body img{margin:2rem -.5rem;border-radius:8px}.markdown-body table{font-size:.9rem;margin:1.5rem -.5rem;width:calc(100% + 1rem)}.markdown-body th,.markdown-body td{padding:.75rem 1rem}.markdown-body pre{margin:1.5rem -.5rem;padding:1rem;border-radius:8px;font-size:.9rem}}.site-nav{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:#fff;border-bottom:1px solid #c8d7bc;box-shadow:0 2px 4px #0000000a;position:sticky;top:0;z-index:10}.logo a{font-size:1.4rem;font-weight:600;color:var(--color-primary);text-decoration:none}.logo span{color:var(--color-accent);font-weight:700}.logo{text-decoration:none;font-size:1.6rem;font-weight:600;color:var(--color-primary)}.logo:hover{background:none;color:var(--color-link)}.nav-links{display:flex;list-style:none;gap:1.5rem;margin:0;padding:0}.nav-links a{font-weight:500;color:var(--color-text);text-decoration:none;transition:color .2s ease}.nav-links a:hover{color:var(--color-link)}
