@import"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,600;1,400&family=Inter:wght@400;500;600&display=swap";body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #fefefe;--text: #222222;--text-muted: #666666;--accent: #b8895c;--border: #e8e8e8;--subtle: #f8f8f6}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);line-height:1.65;font-size:17px}.app{min-height:100vh;display:flex;flex-direction:column}.nav{border-bottom:1px solid var(--border);padding:1.5rem 0}.nav-container{max-width:780px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.nav-name{font-weight:600;color:var(--text);text-decoration:none}.nav-links{display:flex;gap:2rem}.nav-links a{color:var(--text-muted);text-decoration:none;font-size:.95rem;transition:color .2s}.nav-links a:hover{color:var(--text)}.container{max-width:720px;margin:0 auto;padding:4rem 2rem;flex:1}.intro{margin-bottom:3rem}.intro-image{width:100px;height:100px;border-radius:50%;object-fit:cover;margin-bottom:2rem}h1{font-family:Lora,serif;font-size:2rem;font-weight:600;line-height:1.3;margin-bottom:2rem}.intro-text{font-size:1.05rem;line-height:1.8;color:var(--text-muted);margin-bottom:1.5rem}.intro-text strong{color:var(--text);font-weight:500}.divider{width:50px;height:1px;background:var(--border);margin:4rem 0}h2{font-family:Lora,serif;font-size:1.5rem;font-weight:600;margin-bottom:2.5rem}.work-item{margin-bottom:3rem}.work-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.75rem}.work-item h3{font-size:1.1rem;font-weight:600}.work-year{font-size:.9rem;color:var(--accent)}.work-item p{color:var(--text-muted);line-height:1.8}.exp-item{margin-bottom:2rem}.exp-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.exp-header span{font-size:.9rem;color:var(--accent)}.exp-item p{color:var(--text-muted);line-height:1.7}.contact a{color:var(--accent);text-decoration:none;transition:color .2s}.contact a:hover{color:var(--text)}.writing-intro{margin-bottom:3rem}.poem-article{margin-top:3rem}.poem-content{font-family:Lora,serif;font-style:italic;line-height:2;color:var(--text-muted);white-space:pre-line;margin:2rem 0;padding:2rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.poem-reflection{margin-top:2rem}.poem-reflection p{color:var(--text-muted);line-height:1.8;margin-bottom:1.5rem}.blogs-intro{margin-bottom:3rem}.blogs-list{margin-top:3rem}.blog-preview{margin-bottom:2.5rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:2.5rem;transition:all .3s ease;position:relative;overflow:hidden}.blog-preview:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--accent);transform:scaleY(0);transition:transform .3s ease}.blog-preview:hover{border-color:var(--accent);box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.blog-preview:hover:before{transform:scaleY(1)}.blog-preview:last-child{margin-bottom:0}.blog-preview-link{text-decoration:none;color:inherit;display:block}.blog-preview h2{font-family:Lora,serif;font-size:1.6rem;font-weight:600;color:var(--text);margin-bottom:.75rem;line-height:1.3}.blog-preview-subtitle{font-size:1rem;color:var(--text-muted);font-style:italic;margin-bottom:1.25rem;font-weight:400}.blog-preview-excerpt{color:var(--text-muted);line-height:1.8;margin-bottom:1.5rem;font-size:1.05rem}.blog-preview-date{font-size:.9rem;color:var(--accent);font-weight:500;display:inline-flex;align-items:center;gap:.5rem}.blog-preview-date:before{content:"📅";font-size:.85rem}.blog-post-nav{margin-bottom:2rem}.blog-back-link{color:var(--text-muted);text-decoration:none;font-size:.95rem;transition:color .2s}.blog-back-link:hover{color:var(--text)}.blog-article{margin-top:2rem;max-width:100%;margin-left:0;margin-right:0}.blog-content p:first-of-type{font-size:1.25rem;line-height:1.85;color:var(--text);font-weight:400;margin-bottom:2.5rem;margin-top:1rem}.blog-article h1{font-size:2.75rem;line-height:1.2;margin-bottom:1.25rem;font-weight:600;letter-spacing:-.025em;color:var(--text)}.blog-subtitle{font-size:1.2rem;color:var(--text-muted);font-style:italic;margin-bottom:1.75rem;font-weight:400;line-height:1.65;margin-top:-.5rem}.blog-date{font-size:.95rem;color:var(--accent);margin-bottom:3rem;font-weight:500;display:inline-block;padding-bottom:1.25rem;border-bottom:2px solid var(--border);width:100%}.blog-content{color:var(--text);line-height:1.95;font-size:1.125rem;max-width:100%}.blog-content p{margin-bottom:2rem;color:var(--text);font-weight:400}.blog-content h2{font-family:Lora,serif;font-size:2.25rem;font-weight:600;color:var(--text);margin-top:4.5rem;margin-bottom:2.5rem;padding-top:3.5rem;border-top:2px solid var(--border);line-height:1.25;letter-spacing:-.02em}.blog-content h2:first-of-type{margin-top:3rem;padding-top:0;border-top:none}.blog-content h3{font-family:Lora,serif;font-size:1.65rem;font-weight:600;color:var(--text);margin-top:3.5rem;margin-bottom:1.5rem;padding-top:2.5rem;border-top:1px solid var(--border);line-height:1.35;letter-spacing:-.015em}.blog-content h3:first-of-type{margin-top:2.5rem;padding-top:0;border-top:none}.blog-content h4{font-family:Lora,serif;font-size:1.25rem;font-weight:600;color:var(--text);margin-top:2.5rem;margin-bottom:1rem;line-height:1.4}.blog-content ul,.blog-content ol{margin-left:0;margin-bottom:2.5rem;padding-left:0}.blog-content ul{list-style:none}.blog-content li{margin-bottom:1.25rem;line-height:1.9;padding-left:2rem;position:relative;color:var(--text)}.blog-content ul li:before{content:"•";color:var(--accent);font-weight:700;position:absolute;left:.75rem;font-size:1.1rem;line-height:1.85}.blog-content ol{counter-reset:item;padding-left:2rem}.blog-content ol li{counter-increment:item;list-style:none;padding-left:0;position:relative}.blog-content ol li:before{content:counter(item) ".";color:var(--accent);font-weight:600;position:absolute;left:-2rem;width:1.5rem;text-align:right}.architecture-flow{margin:3rem 0;display:flex;flex-direction:column;gap:1.5rem}.flow-step{display:flex;align-items:flex-start;gap:1.5rem;padding:1.5rem;background:var(--subtle);border-left:4px solid var(--accent);border-radius:4px;transition:transform .2s,box-shadow .2s}.flow-step:hover{transform:translate(4px);box-shadow:0 2px 8px #00000014}.flow-number{flex-shrink:0;width:2.5rem;height:2.5rem;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem}.flow-content{flex:1}.flow-content strong{display:block;color:var(--text);font-size:1.1rem;font-weight:600;margin-bottom:.5rem;line-height:1.4}.flow-content p{color:var(--text-muted);font-size:.95rem;line-height:1.6;margin:0}.blog-content code{background:var(--subtle);color:var(--text);padding:.25rem .5rem;border-radius:4px;font-family:SF Mono,Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,Courier New,monospace;font-size:.9em;font-weight:500;letter-spacing:.02em;font-variant-ligatures:none;border:1px solid rgba(0,0,0,.05)}.blog-content strong{color:var(--text);font-weight:600;letter-spacing:-.01em}.blog-content em{font-style:italic;color:var(--text);opacity:.9}.blog-content a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,color .2s;font-weight:500}.blog-content a:hover{border-bottom-color:var(--accent);color:var(--text)}.blog-content p:has(strong:first-child){margin-top:2.5rem;margin-bottom:1.25rem;font-weight:500}.blog-content p:has(strong:first-child)+p{margin-top:.75rem}.code-block{font-family:SF Mono,Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,Courier New,monospace;background:var(--subtle);color:var(--text);padding:1.75rem 2rem;border-left:4px solid var(--accent);margin:3rem 0;white-space:pre;font-size:.9rem;border-radius:4px;line-height:1.8;overflow-x:auto;font-weight:400;letter-spacing:.02em;font-variant-ligatures:none;display:block;box-shadow:0 1px 3px #0000000d}.quote{font-style:italic;color:var(--text);padding-left:1.5rem;border-left:3px solid var(--accent);margin:1.5rem 0}.blog-table{width:100%;border-collapse:collapse;margin:2.5rem 0;font-size:.95rem;border:1px solid var(--border)}.blog-table thead{background:var(--subtle);border-bottom:2px solid var(--border)}.blog-table th{text-align:left;padding:1rem 1.25rem;font-weight:600;color:var(--text);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.blog-table td{padding:1rem 1.25rem;border-bottom:1px solid var(--border);color:var(--text-muted);line-height:1.6}.blog-table tbody tr:last-child td{border-bottom:none}.blog-table tbody tr:hover{background:var(--subtle)}.blog-post-navigation{display:flex;justify-content:space-between;gap:2rem;margin-top:3rem}.blog-nav-link{flex:1;text-decoration:none;color:inherit;padding:1.5rem;border:1px solid var(--border);border-radius:4px;transition:all .2s;display:flex;flex-direction:column}.blog-nav-link:hover{border-color:var(--accent);background:var(--subtle)}.blog-nav-prev{text-align:left}.blog-nav-next{text-align:right}.blog-nav-label{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.blog-nav-title{font-weight:500;color:var(--text)}@media(max-width:768px){.blog-post-navigation{flex-direction:column}.blog-nav-next{text-align:left}}footer{padding:4rem 2rem;text-align:center;border-top:1px solid var(--border);margin-top:6rem}footer p{font-size:.9rem;color:var(--text-muted);font-style:italic}@media(max-width:768px){.nav-container{flex-direction:column;gap:1rem}.container{padding:3rem 1.5rem}.work-header{flex-direction:column;gap:.25rem}}
