:root{--c-bg:#08090c;--c-bg-2:#0d0e12;--c-surface:#111318;--c-surface-2:#181b22;--c-border:#1e2028;--c-border-2:#252830;--c-green:#2a7a56;--c-green-l:#4aba87;--c-green-dim:#2a7a561f;--c-green-glow:#4aba870f;--c-gold:#c9a55a;--c-gold-dim:#c9a55a1f;--c-blue:#3a7bd5;--c-blue-dim:#3a7bd51f;--c-text-1:#eeeee8;--c-text-2:#9b9fa8;--c-text-3:#50545e;--f-head:"DM Sans", sans-serif;--f-body:"Plus Jakarta Sans", sans-serif;--f-mono:"JetBrains Mono", monospace;--nav-h:64px;--sidebar-w:70px;--ease:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 40px)}body{background:var(--c-bg);color:var(--c-text-1);font-family:var(--f-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.65;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}em{color:var(--c-green-l);font-style:normal}.noise-overlay{z-index:9999;pointer-events:none;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:180px;position:fixed;inset:0}.navbar{z-index:200;height:var(--nav-h);-webkit-backdrop-filter:blur(24px)saturate(160%);border-bottom:1px solid var(--c-border);background:#08090cd1;justify-content:space-between;align-items:center;padding:0 2rem 0 2.25rem;transition:border-color .4s;display:flex;position:fixed;top:0;left:0;right:0}.navbar-brand{align-items:center;gap:.75rem;display:flex}.brand-mark{font-family:var(--f-mono);color:var(--c-green-l);background:var(--c-green-dim);letter-spacing:.06em;border:1px solid #4aba8740;border-radius:5px;padding:.22rem .55rem;font-size:.82rem;font-weight:500}.brand-divider{background:var(--c-border-2);width:1px;height:16px}.brand-title{font-family:var(--f-head);letter-spacing:-.01em;color:var(--c-text-1);font-size:.925rem;font-weight:700}.navbar-nav{align-items:center;gap:.125rem;display:flex}.nav-link{font-family:var(--f-head);color:var(--c-text-2);letter-spacing:-.005em;border-radius:6px;padding:.4rem .95rem;font-size:.875rem;font-weight:600;transition:color .2s,background .2s}.nav-link:hover{color:var(--c-text-1);background:var(--c-surface)}.nav-link.active{color:var(--c-green-l);background:var(--c-green-dim)}.nav-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:.4rem;display:none}.nav-toggle span{background:var(--c-text-2);width:22px;height:1.5px;transition:all .3s var(--ease);border-radius:2px;display:block}.site-layout{min-height:100vh;padding-top:var(--nav-h);display:flex}.site-main{min-width:0;padding-right:var(--sidebar-w);flex:1}.social-bar{top:var(--nav-h);width:var(--sidebar-w);height:calc(100vh - var(--nav-h));border-left:1px solid var(--c-border);background:var(--c-bg-2);z-index:100;flex-direction:column;align-items:center;display:flex;position:fixed;right:0}.sbar-rail{background:linear-gradient(to bottom, transparent, var(--c-border) 50%, transparent);flex:1;width:1px;max-height:100px}.sbar-links{flex-direction:column;align-items:center;gap:.15rem;padding:.75rem 0;display:flex}.sbar-link{color:var(--c-text-3);transition:color .25s, background .25s, transform .25s var(--ease);border-radius:7px;flex-direction:column;align-items:center;gap:3px;padding:.7rem .5rem;display:flex}.sbar-link:hover{color:var(--c-green-l);background:var(--c-green-dim);transform:translate(-3px)}.sbar-icon{stroke:currentColor;stroke-width:1.6px;width:19px;height:19px}.sbar-label{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.46rem}.section{max-width:960px;margin:0 auto;padding:8rem 3rem}.section-label{align-items:center;gap:1rem;margin-bottom:2.5rem;display:flex}.label-num{font-family:var(--f-mono);color:var(--c-green-l);letter-spacing:.08em;font-size:.7rem}.label-line{background:var(--c-border-2);flex:1;max-width:60px;height:1px}.label-text{font-family:var(--f-mono);color:var(--c-text-3);letter-spacing:.12em;text-transform:uppercase;font-size:.68rem}.section-head{margin-bottom:3.5rem}.section-title{font-family:var(--f-head);letter-spacing:-.03em;color:var(--c-text-1);margin-bottom:.9rem;font-size:clamp(2.4rem,5vw,3.5rem);font-weight:900;line-height:1.05}.section-desc{color:var(--c-text-2);max-width:460px;font-size:1rem;line-height:1.7}.s-hero{min-height:calc(100vh - var(--nav-h));border-bottom:1px solid var(--c-border);flex-direction:column;justify-content:center;padding-top:5rem;padding-bottom:5rem;display:flex;position:relative;overflow:hidden}.hero-bg-text{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;opacity:.025;flex-direction:column;align-items:flex-end;gap:0;display:flex;position:absolute;top:50%;right:-1rem;transform:translateY(-50%)}.hero-bg-text span{font-family:var(--f-head);letter-spacing:-.05em;color:#fff;font-size:clamp(6rem,14vw,13rem);font-weight:800;line-height:.9}.hero-inner{z-index:1;grid-template-columns:1fr auto;align-items:center;gap:4rem;display:grid;position:relative}.hero-eyebrow{font-family:var(--f-mono);color:var(--c-text-3);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.55rem;margin-bottom:1.5rem;font-size:.72rem;display:flex}.eyebrow-dot{background:var(--c-green-l);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.hero-headline{font-family:var(--f-head);letter-spacing:-.03em;color:var(--c-text-1);margin-bottom:1.75rem;font-size:clamp(3rem,7vw,5.5rem);font-weight:900;line-height:1}.hero-em{background:linear-gradient(135deg, var(--c-green-l) 0%, #7edbb5 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:block}.hero-identity{margin-bottom:1.5rem}.identity-name{font-family:var(--f-head);color:var(--c-text-1);letter-spacing:-.015em;margin-bottom:.2rem;font-size:1.05rem;font-weight:700}.identity-role{font-family:var(--f-mono);color:var(--c-green-l);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem}.hero-bio{color:var(--c-text-2);max-width:520px;margin-bottom:2rem;font-size:.97rem;line-height:1.75}.hero-tags{flex-wrap:wrap;gap:.45rem;margin-bottom:2.25rem;display:flex}.tag{font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--c-border-2);color:var(--c-text-3);background:var(--c-surface);border-radius:999px;padding:.28rem .75rem;font-size:.68rem}.tag-accent{color:var(--c-green-l);background:var(--c-green-dim);border-color:#4aba874d}.tag-sm{padding:.2rem .6rem;font-size:.6rem}.hero-cta{align-items:center;gap:.75rem;display:flex}.btn{font-family:var(--f-head);letter-spacing:-.01em;transition:transform .25s var(--ease), box-shadow .25s, background .25s;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.6rem;font-size:.9rem;font-weight:700;display:inline-flex}.btn-primary{background:var(--c-green);color:#fff}.btn-primary:hover{background:var(--c-green-l);transform:translateY(-2px);box-shadow:0 12px 35px #2a7a5659}.btn-ghost{color:var(--c-text-2);border:1px solid var(--c-border-2);background:0 0}.btn-ghost:hover{color:var(--c-text-1);border-color:var(--c-border-2);background:var(--c-surface);transform:translateY(-2px)}.btn-arrow{transition:transform .2s var(--ease);display:inline-block}.btn-primary:hover .btn-arrow{transform:translateY(2px)}.hero-photo-col{flex-direction:column;flex-shrink:0;align-items:center;gap:.9rem;display:flex}.hero-photo-frame{border:1px solid var(--c-border-2);background:var(--c-surface);border-radius:16px;width:240px;height:300px;position:relative;overflow:hidden}.hero-photo-frame:before{content:"";z-index:2;background:linear-gradient(135deg,#4aba8780 0%,#0000 70%);border-radius:16px 0 0;width:80px;height:80px;position:absolute;top:-1px;left:-1px}.hero-photo-frame:after{content:"";z-index:2;background:linear-gradient(#0000 0%,#08090cb3 100%);height:50%;position:absolute;bottom:0;left:0;right:0}.hero-photo{object-fit:cover;object-position:top center;z-index:1;width:100%;height:100%;transition:transform .5s var(--ease);position:relative}.hero-photo-frame:hover .hero-photo{transform:scale(1.04)}.photo-glow{z-index:0;background:radial-gradient(at 50% 30%,#4aba8714 0%,#0000 70%);position:absolute;inset:0}.photo-tag{font-family:var(--f-mono);color:var(--c-text-3);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.45rem;font-size:.62rem;display:flex}.photo-tag-dot{background:var(--c-green);border-radius:50%;width:5px;height:5px}.scroll-indicator{flex-direction:column;align-items:center;gap:.5rem;display:flex;position:absolute;bottom:2.5rem;left:3rem}.scroll-line{background:linear-gradient(to bottom, var(--c-green-l), transparent);width:1px;height:50px;animation:2s ease-in-out infinite scroll-line;display:block}@keyframes scroll-line{0%{transform-origin:top;opacity:1;transform:scaleY(0)}50%{transform-origin:top;opacity:1;transform:scaleY(1)}51%{transform-origin:bottom}to{transform-origin:bottom;opacity:0;transform:scaleY(0)}}.scroll-text{font-family:var(--f-mono);color:var(--c-text-3);letter-spacing:.15em;text-transform:uppercase;writing-mode:vertical-rl;font-size:.58rem}.s-projects{border-bottom:1px solid var(--c-border)}.projects-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.project-card{background:var(--c-surface);border:1px solid var(--c-border);transition:border-color .35s, transform .35s var(--ease), box-shadow .35s;transform-style:preserve-3d;border-radius:18px;flex-direction:column;gap:.9rem;padding:2rem;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(135deg, var(--c-green), transparent 50%);opacity:0;pointer-events:none;z-index:0;border-radius:18px;transition:opacity .35s;position:absolute;inset:-1px}.project-card>*{z-index:1;position:relative}.project-card:hover{border-color:#4aba8766;transform:translateY(-6px);box-shadow:0 24px 64px #00000080,0 0 0 1px #4aba8714}.project-card:hover:before{opacity:.06}.p-card-top{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.2rem;display:flex}.p-logo-box{background:var(--c-surface-2);border:1px solid var(--c-border-2);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;padding:7px;display:flex}.p-logo-dark{background:#0f1a14}.p-logo{object-fit:contain;width:100%;height:100%}.p-card-meta{flex-direction:column;align-items:flex-end;gap:.4rem;display:flex}.award-badge{font-family:var(--f-mono);letter-spacing:.04em;color:var(--c-gold);background:var(--c-gold-dim);border:1px solid #c9a55a4d;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.62rem;display:inline-flex}.eco-badge{font-family:var(--f-mono);letter-spacing:.04em;color:var(--c-green-l);background:var(--c-green-dim);border:1px solid #4aba8740;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.62rem;display:inline-flex}.bronze-badge{font-family:var(--f-mono);letter-spacing:.04em;color:#c47e3a;background:#c47e3a1a;border:1px solid #c47e3a4d;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.62rem;display:inline-flex}.p-card-name{font-family:var(--f-head);letter-spacing:-.035em;color:var(--c-text-1);font-size:1.75rem;font-weight:800}.p-card-nature{color:var(--c-text-3);font-size:.77rem;line-height:1.4}.p-card-role{font-family:var(--f-mono);letter-spacing:.04em;color:var(--c-green-l);text-transform:uppercase;font-size:.68rem}.p-card-summary{color:var(--c-text-2);font-size:.9rem;line-height:1.65}.p-impacts{border-top:1px solid var(--c-border);flex-direction:column;gap:.45rem;padding-top:.9rem;display:flex}.p-impacts li{color:var(--c-text-2);padding-left:1.1rem;font-size:.82rem;line-height:1.55;position:relative}.p-impacts li:before{content:"→";color:var(--c-green);font-size:.7rem;position:absolute;top:1px;left:0}.p-quote{font-family:var(--f-body);color:var(--c-text-3);border-left:2px solid var(--c-green-dim);padding-left:.9rem;font-size:.8rem;font-style:italic;line-height:1.6}.p-card-link{font-family:var(--f-head);color:var(--c-green-l);border-top:1px solid var(--c-border);letter-spacing:-.01em;align-items:center;gap:.45rem;margin-top:auto;padding-top:.9rem;font-size:.85rem;font-weight:700;transition:gap .2s;display:inline-flex}.p-card-link:hover{gap:.75rem}.arrow-right{transition:transform .2s var(--ease)}.p-card-link:hover .arrow-right{transform:translate(3px)}.s-docs{border-bottom:1px solid var(--c-border)}.docs-grid{grid-template-columns:repeat(3,1fr);align-items:start;gap:1.25rem;display:grid}.doc-block{background:var(--c-surface);border:1px solid var(--c-border);transition:border-color .3s, transform .3s var(--ease);border-radius:16px;padding:1.75rem}.doc-block:hover{border-color:#4aba8740;transform:translateY(-3px)}.doc-block-head{border-bottom:1px solid var(--c-border);align-items:center;gap:.6rem;margin-bottom:1.4rem;padding-bottom:1rem;display:flex}.doc-icon{font-size:1.1rem}.doc-block-title{font-family:var(--f-head);letter-spacing:-.02em;color:var(--c-text-1);font-size:1rem;font-weight:700}.doc-entry{align-items:flex-start;gap:.85rem;display:flex}.doc-thumb{border:1px solid var(--c-border-2);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;display:flex}.doc-thumb-gold{background:var(--c-gold-dim);border-color:#c9a55a33}.doc-thumb-blue{background:var(--c-blue-dim);border-color:#3a7bd533}.doc-thumb-green{background:var(--c-green-dim);border-color:#4aba8733}.doc-thumb-label{font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-3);text-align:center;font-size:.5rem;line-height:1.4}.doc-thumb-gold .doc-thumb-label{color:var(--c-gold)}.doc-thumb-blue .doc-thumb-label{color:var(--c-blue)}.doc-thumb-green .doc-thumb-label{color:var(--c-green-l)}.doc-entry-body{flex-direction:column;gap:.2rem;display:flex}.doc-entry-title{font-family:var(--f-head);color:var(--c-text-1);letter-spacing:-.01em;font-size:.88rem;font-weight:700}.doc-entry-sub{color:var(--c-text-2);font-size:.78rem;line-height:1.45}.doc-entry-loc{font-family:var(--f-mono);color:var(--c-green-l);letter-spacing:.03em;margin-top:.1rem;font-size:.62rem;line-height:1.4}.doc-photo-entry{align-items:flex-start;gap:.85rem;display:flex}.doc-photo-frame{border:1px solid var(--c-border-2);border-radius:10px;flex-shrink:0;width:72px;height:72px;position:relative;overflow:hidden}.doc-photo-frame.doc-photo-gold{border-color:#c9a55a66;box-shadow:0 0 0 1px #c9a55a1a}.doc-photo-frame.doc-photo-bronze{border-color:#c47e3a66;box-shadow:0 0 0 1px #c47e3a1a}.doc-photo{object-fit:cover;object-position:center top;width:100%;height:100%;transition:transform .4s var(--ease)}.doc-photo-frame:hover .doc-photo{transform:scale(1.08)}.doc-photo-badge{font-family:var(--f-mono);letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:.15rem .4rem;font-size:.42rem;font-weight:600;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.badge-gold{color:#1a1200;background:#c9a55ae6}.badge-bronze{color:#1a0a00;background:#c47e3ae6}.s-contact{border-bottom:1px solid var(--c-border)}.contact-inner{text-align:center;max-width:640px;margin:0 auto}.contact-eyebrow{font-family:var(--f-mono);color:var(--c-text-3);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;gap:.55rem;margin-bottom:1.25rem;font-size:.72rem;display:flex}.contact-headline{font-family:var(--f-head);letter-spacing:-.03em;color:var(--c-text-1);margin-bottom:1.25rem;font-size:clamp(2.8rem,6vw,4.5rem);font-weight:900;line-height:1.05}.contact-sub{color:var(--c-text-2);margin-bottom:2.5rem;font-size:1rem;line-height:1.7}.contact-btn{font-family:var(--f-head);letter-spacing:-.01em;color:#fff;background:linear-gradient(135deg, var(--c-green) 0%, #3d9a6f 100%);transition:transform .25s var(--ease), box-shadow .25s;border-radius:10px;align-items:center;gap:.65rem;margin-bottom:2rem;padding:1rem 2.25rem;font-size:1rem;font-weight:700;display:inline-flex}.contact-btn:hover{transform:translateY(-3px);box-shadow:0 16px 48px #2a7a5666}.contact-btn:hover .btn-arrow{transform:translate(4px)}.contact-socials{justify-content:center;gap:1.5rem;display:none}.csocial-link{font-family:var(--f-mono);color:var(--c-text-3);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;transition:color .2s}.csocial-link:hover{color:var(--c-green-l)}.site-footer{text-align:center;flex-direction:column;gap:.4rem;max-width:960px;margin:0 auto;padding:2.5rem 3rem;display:flex}.footer-copy{font-family:var(--f-mono);color:var(--c-text-3);letter-spacing:.06em;font-size:.7rem}.footer-note{color:var(--c-text-3);font-size:.78rem;font-style:italic}.reveal{opacity:0;transition:opacity .8s var(--ease), transform .8s var(--ease);transform:translateY(32px)}.reveal-right{transform:translate(32px)translateY(0)}.reveal.visible{opacity:1;transform:translateY(0)translate(0)}.reveal-delay{transition-delay:.13s}.reveal-delay-2{transition-delay:.26s}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--c-bg)}::-webkit-scrollbar-thumb{background:var(--c-border-2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--c-green)}@media (width<=900px){.projects-grid,.docs-grid{grid-template-columns:1fr}.hero-inner{text-align:center;grid-template-columns:1fr}.hero-photo-col{order:-1;margin:0 auto}.hero-bio{max-width:100%}.hero-tags,.hero-cta,.hero-eyebrow{justify-content:center}.hero-identity{text-align:center}.scroll-indicator{display:none}}@media (width<=640px){:root{--sidebar-w:0px}.social-bar{display:none}.contact-socials{display:flex}.navbar{padding:0 1.25rem}.navbar-nav{top:var(--nav-h);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--c-border);background:#08090cf5;flex-direction:column;align-items:flex-start;gap:0;padding:1rem 1.5rem 1.5rem;display:none;position:fixed;left:0;right:0}.navbar-nav.open{display:flex}.nav-link{width:100%;padding:.7rem .5rem;font-size:1rem}.nav-toggle{display:flex}.section{padding:5rem 1.5rem}.hero-photo-frame{width:180px;height:220px}.site-main{padding-right:0}.hero-bg-text{display:none}}
/*$vite$:1*/