:root{--bg: #0d1117;--surface: #131920;--card: #161d27;--border: #1e3030;--teal: #4ecdc4;--teal-dim: rgba(78,205,196,.45);--teal-bg: rgba(78,205,196,.07)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--teal);font-family:Cinzel,serif;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0;opacity:.4}nav{position:fixed;top:0;left:0;right:0;z-index:50;background:#0d1117d9;backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.nav-inner{max-width:1100px;margin:0 auto;padding:0 1.5rem;height:56px;display:flex;align-items:center;justify-content:space-between}.nav-logo{font-family:Cinzel Decorative,serif;font-size:1.05rem;color:var(--teal);letter-spacing:.03em;cursor:pointer}.nav-links a{font-family:Cinzel,serif;font-size:.85rem;color:var(--teal-dim);text-decoration:none;margin-left:2rem;letter-spacing:.08em;transition:color .2s}.nav-links a:hover,.nav-links a.active{color:var(--teal)}.nav-links a.active{border-bottom:1px solid var(--teal);padding-bottom:1px}.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none}.hamburger span{display:block;width:22px;height:1.5px;background:var(--teal);transition:all .3s ease}.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-menu{display:none;flex-direction:column;background:#0d1117f7;border-top:1px solid var(--border);padding:1rem 1.5rem;gap:1rem}.mobile-menu.open{display:flex}.mobile-menu a{font-family:Cinzel,serif;font-size:.9rem;color:var(--teal-dim);text-decoration:none;letter-spacing:.1em;padding:.4rem 0;border-bottom:1px solid var(--border);transition:color .2s}.mobile-menu a:hover,.mobile-menu a.active{color:var(--teal)}.page{display:none;min-height:100vh;padding-top:56px;position:relative;z-index:1}.page.active{display:block}#home{display:none;align-items:center;justify-content:center}#home.active{display:flex}.home-inner{max-width:1100px;width:100%;margin:0 auto;padding:3rem 2rem;display:flex;align-items:center;gap:3.5rem}.photo-wrap{flex-shrink:0;width:260px;height:320px;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:var(--surface)}.photo-wrap img{width:100%;height:100%;object-fit:cover;filter:brightness(.92) saturate(.85)}.photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--teal-dim);font-size:.75rem;letter-spacing:.1em;flex-direction:column;gap:8px}.home-text h1{font-family:Cinzel Decorative,serif;font-size:clamp(1.6rem,4vw,2.6rem);color:var(--teal);line-height:1.3;margin-bottom:.75rem}.home-text .subtitle{font-family:Cinzel,serif;font-size:clamp(.85rem,2vw,1rem);color:var(--teal-dim);letter-spacing:.06em;margin-bottom:1.75rem}.social-icons{display:flex;gap:10px;flex-wrap:wrap}.social-btn{width:44px;height:44px;border-radius:10px;background:var(--teal-bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--teal);text-decoration:none;transition:border-color .2s,background .2s}.social-btn:hover{border-color:var(--teal);background:#4ecdc421}.social-btn svg{width:18px;height:18px;stroke:var(--teal);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#projects .projects-inner{max-width:1100px;margin:0 auto;padding:3rem 2rem 4rem}#projects h2{font-family:Cinzel Decorative,serif;font-size:clamp(1.8rem,5vw,2.8rem);color:var(--teal);margin-bottom:2.5rem}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.proj-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.75rem;display:flex;flex-direction:column;gap:.9rem;transition:border-color .25s}.proj-card:hover{border-color:var(--teal-dim)}.proj-card h3{font-family:Cinzel Decorative,serif;font-size:1.05rem;color:var(--teal);letter-spacing:.04em}.proj-card p{font-family:Cinzel,serif;font-size:.82rem;color:var(--teal-dim);line-height:1.7;letter-spacing:.02em}.proj-tags{display:flex;flex-wrap:wrap;gap:7px}.proj-tag{font-family:Cinzel,serif;font-size:.72rem;color:var(--teal);border:1px solid var(--border);border-radius:6px;padding:3px 10px;letter-spacing:.05em;background:var(--teal-bg)}.proj-divider{border:none;border-top:1px solid var(--border);margin:.2rem 0}.proj-btns{display:flex;gap:10px;margin-top:auto}.btn-source{flex:1;font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.06em;color:var(--teal-dim);background:#ffffff0a;border:1px solid var(--border);border-radius:8px;padding:9px 0;text-align:center;text-decoration:none;cursor:pointer;transition:color .2s,border-color .2s}.btn-source:hover{color:var(--teal);border-color:var(--teal-dim)}.btn-preview{flex:1;font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.06em;color:var(--teal);background:transparent;border:1px solid var(--teal);border-radius:8px;padding:9px 0;text-align:center;text-decoration:none;cursor:pointer;transition:background .2s}.btn-preview:hover{background:var(--teal-bg)}section.blog-main{max-width:1100px;margin:0 auto;padding-top:106px;animation:fadeUp .5s ease both}.blog-title{font-family:Cinzel Decorative,serif;font-size:clamp(1.8rem,5vw,2.8rem);color:var(--teal);margin-bottom:1rem;margin-left:1rem;margin-right:1rem}.blog-desc{font-family:Cinzel,serif;font-size:clamp(.8rem,2vw,.92rem);color:var(--teal-dim);line-height:1.75;letter-spacing:.02em;margin-bottom:2.5rem;margin-left:1rem;margin-right:1rem;max-width:640px}.post-list{display:flex;flex-direction:column;gap:12px;margin:10px}.post-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.4rem 1.75rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;text-decoration:none;transition:border-color .25s,background .25s}.post-card:hover{border-color:var(--teal-dim);background:var(--card)}.post-body{display:flex;flex-direction:column;gap:5px;min-width:0}.post-title{font-family:Cinzel Decorative,serif;font-size:clamp(.82rem,2.5vw,.98rem);color:var(--teal);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-excerpt{font-family:Cinzel,serif;font-size:clamp(.72rem,2vw,.82rem);color:var(--teal-dim);line-height:1.7;letter-spacing:.02em}.post-date{display:flex;align-items:center;gap:6px;font-family:Cinzel,serif;font-size:.72rem;color:var(--teal-dim);letter-spacing:.05em;white-space:nowrap;flex-shrink:0}.post-date svg{width:13px;height:13px;stroke:var(--teal-dim);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}@media(max-width:768px){main.blog-main{padding:2rem 1.25rem 3rem}.post-card{flex-direction:column;align-items:flex-start;gap:10px;padding:1.2rem 1.4rem}}@media(max-width:768px){.hamburger{display:flex}.nav-links{display:none}.home-inner{flex-direction:column;align-items:center;text-align:center;padding:2rem 1.25rem;gap:2rem}.photo-wrap{width:200px;height:240px}.social-icons{justify-content:center}.projects-grid{grid-template-columns:1fr}#projects .projects-inner{padding:2rem 1.25rem 3rem}}@media(max-width:480px){.photo-wrap{width:170px;height:210px}.proj-btns{flex-direction:column}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.home-inner,.projects-inner{animation:fadeUp .5s ease both}.post-main{max-width:1100px;margin:0 auto;padding:5rem 2rem 4rem;display:flex;gap:2.5rem;align-items:flex-start;animation:fadeUp .5s ease both}.toc{flex-shrink:0;width:210px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.4rem 1.5rem;position:sticky;top:76px;display:flex;flex-direction:column;gap:.9rem}.toc-label{font-family:Cinzel Decorative,serif;font-size:.78rem;color:var(--teal);letter-spacing:.06em}.toc nav{display:flex;flex-direction:column;gap:2px}.toc-link{font-family:Cinzel,serif;font-size:.78rem;color:var(--teal-dim);text-decoration:none;letter-spacing:.03em;line-height:1.4;padding:6px 10px;border-radius:6px;border-left:2px solid transparent;transition:color .2s,background .2s,border-color .2s;display:block}.toc-link:hover{color:var(--teal);background:var(--teal-bg);border-left-color:var(--teal-dim)}.toc-link.active{color:var(--teal);background:var(--teal-bg);border-left-color:var(--teal)}.post-content{flex:1;min-width:0}.post-title-content{font-family:Cinzel Decorative,serif;font-size:clamp(1.5rem,4vw,2.2rem);color:var(--teal);line-height:1.3;margin-bottom:.6rem}.post-subtitle-content{font-family:Cinzel,serif;font-size:clamp(.82rem,2vw,.95rem);color:var(--teal-dim);letter-spacing:.04em;margin-bottom:1rem}.post-divider{border:none;border-top:1px solid var(--border);margin-bottom:1.75rem}.post-body{display:flex;flex-direction:column;gap:1.25rem}.post-body h2{font-family:Cinzel Decorative,serif;font-size:clamp(.95rem,2.5vw,1.15rem);color:var(--teal);letter-spacing:.04em;margin-top:.5rem}.post-body p{font-family:Cinzel,serif;font-size:clamp(.8rem,2vw,.9rem);color:var(--teal-dim);line-height:1.85;letter-spacing:.02em}.post-body a{color:var(--teal);text-decoration:underline;text-underline-offset:3px;transition:opacity .2s}.post-body a:hover{opacity:.75}.post-body pre{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;overflow-x:auto;font-size:.82rem;line-height:1.65}.post-body code{font-family:Courier New,monospace;color:var(--teal)}@media(max-width:768px){.post-main{flex-direction:column;padding:4.5rem 1.25rem 3rem;gap:1.5rem}.toc{display:none}}
