@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--bg:#fff;--bg-2:#f6faf6;--surface:#f0f7f0;--border:#dcebdc;--border-hover:#b7d9b7;--text-1:#101510;--text-2:#3f4a3f;--text-3:#6b786b;--accent:#16a34a;--accent-strong:#15803d;--accent-light:#86efac;--accent-dim:#dcfce7;--radius:8px;--transition:all .2s ease;--container:960px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text-1);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--accent-light);border-radius:2px}.container{max-width:var(--container);margin:0 auto;padding:0 2rem}.navbar{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#ffffffe0;justify-content:space-between;align-items:center;height:60px;padding:0 2rem;display:flex;position:fixed;top:0;left:0;right:0}.navbar-logo{color:var(--text-1);letter-spacing:-.01em;font-family:Inter,sans-serif;font-size:1rem;font-weight:600;text-decoration:none}.navbar-links{align-items:center;gap:.25rem;list-style:none;display:flex}.navbar-links a{color:var(--text-2);border-radius:var(--radius);transition:var(--transition);padding:.4rem .85rem;font-size:.875rem;font-weight:400;text-decoration:none}.navbar-links a:hover,.navbar-links a.active{color:var(--text-1);background:var(--surface)}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:4px;padding:.5rem;display:none}.hamburger span{background:var(--text-2);width:20px;height:1.5px;transition:var(--transition);border-radius:1px;display:block}.mobile-menu{background:var(--bg);border-bottom:1px solid var(--border);z-index:99;flex-direction:column;gap:.25rem;padding:1rem 2rem;display:none;position:fixed;top:60px;left:0;right:0}.mobile-menu.open{display:flex}.mobile-menu a{color:var(--text-2);border-radius:var(--radius);transition:var(--transition);padding:.65rem .75rem;font-size:.95rem;text-decoration:none}.mobile-menu a:hover{color:var(--text-1);background:var(--surface)}@media (max-width:640px){.navbar-links{display:none}.hamburger{display:flex}}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;transition:var(--transition);border:none;align-items:center;gap:.4rem;padding:.6rem 1.4rem;font-family:Inter,sans-serif;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary:hover{background:var(--accent-strong)}.btn-secondary{color:var(--text-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:var(--transition);background:0 0;align-items:center;gap:.4rem;padding:.6rem 1.4rem;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-secondary:hover{border-color:var(--border-hover);color:var(--text-1)}.section{padding:6rem 0}.section-label{color:var(--accent-strong);margin-bottom:1rem;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600}.section-title{color:var(--text-1);letter-spacing:-.02em;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;line-height:1.2}.section-desc{color:var(--text-2);max-width:480px;margin-top:.75rem;font-size:.95rem;line-height:1.75}.divider{border:none;border-top:1px solid var(--border);margin:0}.hero{align-items:center;min-height:100vh;padding:10rem 0 6rem;display:flex}.hero-inner{max-width:var(--container);margin:0 auto;padding:0 2rem}.hero-eyebrow{color:var(--accent-strong);margin-bottom:1.5rem;font-family:Inter,sans-serif;font-size:.95rem;font-weight:500}.hero-title{letter-spacing:-.03em;color:var(--text-1);max-width:700px;margin-bottom:1.5rem;font-size:clamp(2.5rem,7vw,4.5rem);font-weight:700;line-height:1.05}.hero-title .accent{color:var(--accent);font-weight:300}.hero-desc{color:var(--text-2);max-width:480px;margin-bottom:2.5rem;font-size:1rem;line-height:1.8}.hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.hero-meta{border-top:1px solid var(--border);flex-wrap:wrap;gap:3rem;margin-top:5rem;padding-top:2.5rem;display:flex}.hero-meta-item{flex-direction:column;gap:.2rem;display:flex}.hero-meta-value{color:var(--text-1);letter-spacing:-.02em;font-family:Inter,sans-serif;font-size:1.5rem;font-weight:700}.hero-meta-label{color:var(--text-3);letter-spacing:.05em;font-family:Inter,sans-serif;font-size:.78rem}.projects-list{border-top:1px solid var(--border);flex-direction:column;display:flex}.project-row{border-bottom:1px solid var(--border);transition:var(--transition);cursor:pointer;grid-template-columns:1fr auto;align-items:center;gap:2rem;padding:1.75rem 0;text-decoration:none;display:grid}.project-row:hover{padding-left:.5rem}.project-row:hover .project-row-title{color:var(--text-1)}.project-row:hover .project-row-arrow{color:var(--text-1);transform:translate(4px)}.project-row-left{flex-direction:column;gap:.4rem;min-width:0;display:flex}.project-row-number{color:var(--text-3);letter-spacing:.05em;font-family:Inter,sans-serif;font-size:.72rem}.project-row-title{color:var(--text-2);letter-spacing:-.01em;transition:var(--transition);font-size:1.1rem;font-weight:600}.project-row-desc{color:var(--text-3);font-size:.85rem;line-height:1.6}.project-row-tags{flex-wrap:wrap;gap:.5rem;margin-top:.25rem;display:flex}.project-tag{color:var(--text-2);background:var(--surface);white-space:nowrap;border-radius:999px;padding:.2rem .65rem;font-family:Inter,sans-serif;font-size:.72rem;font-weight:500}.project-row-right{flex-shrink:0;align-items:center;gap:1rem;display:flex}.project-status{color:var(--text-3);letter-spacing:.05em;white-space:nowrap;font-family:Inter,sans-serif;font-size:.7rem}.project-row-arrow{color:var(--text-3);transition:var(--transition);font-size:1rem}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.project-card{background:var(--bg-2);transition:var(--transition);border-radius:14px;flex-direction:column;gap:1rem;padding:1.75rem;text-decoration:none;display:flex;position:relative}.project-card:hover{transform:translateY(-3px)scale(1.015);box-shadow:0 12px 28px #15803d17}.project-card-number{color:var(--text-3);letter-spacing:.05em;font-family:Inter,sans-serif;font-size:.7rem}.project-card-title{color:var(--text-1);letter-spacing:-.01em;font-size:1rem;font-weight:600;line-height:1.3}.project-card-desc{color:var(--text-2);flex:1;font-size:.83rem;line-height:1.65}.project-card-footer{justify-content:space-between;align-items:center;margin-top:.25rem;display:flex}.project-card-tags{flex-wrap:wrap;gap:.4rem;display:flex}.project-card-link{color:var(--text-3);transition:var(--transition);align-items:center;gap:.25rem;font-family:Inter,sans-serif;font-size:.72rem;text-decoration:none;display:inline-flex}.project-card-link:hover{color:var(--text-1)}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:5rem;display:grid}.contact-links{border-top:1px solid var(--border);flex-direction:column;margin-top:2rem;display:flex}.contact-link-row{border-bottom:1px solid var(--border);transition:var(--transition);justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0;text-decoration:none;display:flex}.contact-link-row:hover .contact-link-label{color:var(--text-1)}.contact-link-row:hover .contact-link-arrow{color:var(--text-1);transform:translate(4px)}.contact-link-label{color:var(--text-2);transition:var(--transition);font-size:.9rem;font-weight:500}.contact-link-value{color:var(--text-3);font-family:Inter,sans-serif;font-size:.75rem}.contact-link-arrow{color:var(--text-3);transition:var(--transition);flex-shrink:0}.contact-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{color:var(--text-3);font-family:Inter,sans-serif;font-size:.78rem;font-weight:500}.form-input,.form-textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-1);transition:var(--transition);outline:none;width:100%;padding:.75rem 1rem;font-family:Inter,sans-serif;font-size:.875rem}.form-input:focus,.form-textarea:focus{border-color:var(--border-hover)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-3)}.form-textarea{resize:vertical;min-height:130px}.footer{border-top:1px solid var(--border);padding:2rem}.footer-inner{max-width:var(--container);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;display:flex}.footer-logo{color:var(--text-3);font-family:Inter,sans-serif;font-size:.85rem;font-weight:500}.footer-copy{color:var(--text-3);font-size:.78rem}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:5rem;display:grid}.roadmap-list{border-top:1px solid var(--border);flex-direction:column;margin-top:2rem;display:flex}.roadmap-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem 0;display:flex}.roadmap-row-left{flex-direction:column;gap:.15rem;display:flex}.roadmap-row-title{color:var(--text-1);font-size:.875rem;font-weight:500}.roadmap-row-desc{color:var(--text-3);font-size:.78rem}.status-badge{letter-spacing:.05em;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:.2rem .6rem;font-family:Inter,sans-serif;font-size:.68rem}.status-done,.status-learning{color:var(--accent-strong);background:var(--accent-dim);border:1px solid var(--accent-light)}.status-soon{color:var(--text-3);border:1px solid var(--border);background:0 0}.page-header{border-bottom:1px solid var(--border);padding:9rem 0 4rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.5s forwards fadeUp}.fade-up-1{opacity:0;animation-delay:.1s}.fade-up-2{opacity:0;animation-delay:.2s}.fade-up-3{opacity:0;animation-delay:.3s}.fade-up-4{opacity:0;animation-delay:.4s}@media (max-width:768px){.about-grid,.contact-grid{grid-template-columns:1fr;gap:3rem}.hero-meta{gap:2rem}.project-row{grid-template-columns:1fr;gap:1rem}.project-row-right{justify-content:flex-start}.footer-inner{flex-direction:column;align-items:flex-start}}@media (max-width:480px){.hero{padding:8rem 0 4rem}.section{padding:4rem 0}}.category-chip{color:var(--accent-strong);background:var(--accent-dim);letter-spacing:.05em;white-space:nowrap;border-radius:999px;width:fit-content;padding:.2rem .7rem;font-family:Inter,sans-serif;font-size:.68rem}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-top:2.5rem;display:grid}.skill-card{background:var(--bg);transition:var(--transition);border-radius:14px;flex-direction:column;gap:.75rem;padding:1.75rem;display:flex;box-shadow:0 2px 10px #15803d0d}.skill-card:hover{transform:translateY(-3px)scale(1.015);box-shadow:0 12px 28px #15803d1a}.skill-card-level{color:var(--accent-strong);font-family:Inter,sans-serif;font-size:.68rem;font-weight:500}.skill-card-title{color:var(--text-1);letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.skill-card-desc{color:var(--text-2);font-size:.85rem;line-height:1.65}.skill-card-tags{flex-wrap:wrap;gap:.4rem;margin-top:.25rem;display:flex}.case-header{border-bottom:1px solid var(--border);background:var(--bg-2);padding:8.5rem 0 3.5rem}.case-breadcrumb{color:var(--text-3);align-items:center;gap:.5rem;margin-bottom:1.25rem;font-family:Inter,sans-serif;font-size:.75rem;display:flex}.case-breadcrumb a{color:var(--text-3);transition:var(--transition);text-decoration:none}.case-breadcrumb a:hover{color:var(--accent-strong)}.case-title{color:var(--text-1);letter-spacing:-.02em;max-width:760px;font-size:clamp(1.9rem,5vw,2.9rem);font-weight:700;line-height:1.15}.case-tagline{color:var(--text-2);max-width:620px;margin-top:1rem;font-size:1rem;line-height:1.75}.case-meta{flex-wrap:wrap;gap:2.5rem;margin-top:2rem;display:flex}.case-meta-item{flex-direction:column;gap:.2rem;display:flex}.case-meta-label{color:var(--text-3);font-family:Inter,sans-serif;font-size:.68rem;font-weight:500}.case-meta-value{color:var(--text-1);font-size:.88rem;font-weight:600}.case-section{border-bottom:1px solid var(--border);padding:3.5rem 0}.case-section:last-child{border-bottom:none}.case-section-title{color:var(--text-1);letter-spacing:-.01em;align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:1.3rem;font-weight:700;display:flex}.case-section-title:before{content:"";background:var(--accent);border-radius:2px;width:18px;height:3px}.case-prose{color:var(--text-2);max-width:720px;font-size:.93rem;line-height:1.85}.case-prose+.case-prose{margin-top:1rem}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;margin-top:2rem;display:grid}.metric-cell{background:var(--bg-2);border-radius:12px;flex-direction:column;gap:.3rem;padding:1.5rem 1.25rem;display:flex}.metric-value{color:var(--accent-strong);letter-spacing:-.02em;font-size:1.55rem;font-weight:700}.metric-label{color:var(--text-3);letter-spacing:.04em;font-family:Inter,sans-serif;font-size:.75rem;line-height:1.5}.steps-list{border-top:1px solid var(--border);counter-reset:step;flex-direction:column;display:flex}.step-row{border-bottom:1px solid var(--border);grid-template-columns:52px 1fr;gap:1.25rem;padding:1.35rem 0;display:grid}.step-num{color:var(--accent-strong);background:var(--accent-dim);border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;font-family:Inter,sans-serif;font-size:.8rem;display:flex}.step-title{color:var(--text-1);margin-bottom:.25rem;font-size:.92rem;font-weight:600}.step-desc{color:var(--text-2);font-size:.85rem;line-height:1.7}.code-block{background:#0f1710;border-radius:14px;margin-top:1.5rem;overflow:hidden}.code-block-header{background:#162117;border-bottom:1px solid #223326;justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex}.code-block-title{color:#9ec9a8;letter-spacing:.04em;font-family:Inter,sans-serif;font-size:.72rem}.code-block-lang{color:#86efac;text-transform:uppercase;letter-spacing:.06em;background:#86efac1a;border:1px solid #86efac40;border-radius:4px;padding:.1rem .5rem;font-family:Inter,sans-serif;font-size:.65rem}.code-block pre{color:#d7e6da;white-space:pre;padding:1.25rem 1rem;font-family:JetBrains Mono,monospace;font-size:.78rem;line-height:1.7;overflow-x:auto}.findings-list{flex-direction:column;gap:.9rem;margin-top:.5rem;display:flex}.finding-row{grid-template-columns:22px 1fr;align-items:start;gap:.9rem;display:grid}.finding-marker{background:var(--accent-light);border:2px solid var(--accent);border-radius:999px;width:10px;height:10px;margin-top:.42rem}.finding-text{color:var(--text-2);font-size:.9rem;line-height:1.75}.finding-text strong{color:var(--text-1)}.reco-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;margin-top:.5rem;display:grid}.reco-card{border-left:3px solid var(--accent);background:var(--bg-2);transition:var(--transition);border-radius:12px;padding:1.25rem 1.35rem}.reco-card:hover{transform:translateY(-2px)scale(1.01);box-shadow:0 10px 24px #15803d14}.reco-card-title{color:var(--text-1);margin-bottom:.35rem;font-size:.88rem;font-weight:600}.reco-card-desc{color:var(--text-2);font-size:.82rem;line-height:1.65}.case-nav{flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:2.5rem 0 1rem;display:flex}.chart-card{background:var(--bg-2);border-radius:14px;margin-top:1.75rem;padding:1.6rem 1.6rem 1.4rem}.chart-card-title{color:var(--text-1);margin-bottom:.2rem;font-size:.95rem;font-weight:600}.chart-card-unit{color:var(--text-3);letter-spacing:.05em;margin-bottom:1.1rem;font-family:Inter,sans-serif;font-size:.7rem}.chart-row{grid-template-columns:170px 1fr 64px;align-items:center;gap:.85rem;padding:.32rem 0;display:grid}.chart-label{color:var(--text-2);font-size:.8rem;line-height:1.35}.chart-track{background:#16a34a14;border-radius:999px;height:14px;overflow:hidden}.chart-fill{background:var(--accent);border-radius:999px;min-width:4px;height:100%}.chart-fill.neg{background:#c2604e}.chart-value{color:var(--text-1);text-align:right;white-space:nowrap;font-family:Inter,sans-serif;font-size:.75rem}.chart-note{color:var(--text-3);margin-top:.9rem;font-size:.78rem;line-height:1.6}@media (max-width:540px){.chart-row{grid-template-columns:108px 1fr 54px;gap:.6rem}.chart-label{font-size:.72rem}}
