:root{--primary: #000000;--bg: #ffffff;--text: #1a1a1a;--muted: #666666;--accent: #ffbf00;--border: #eeeeee;--tag: #888888;--nav-bg: rgba(255, 255, 255, .9);--maxw: 56rem;--px: 1.5rem;--py: 5rem;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}[data-theme=dark]{--bg: #111111;--text: #f5f5f5;--muted: #9a9a9a;--border: #262626;--tag: #8a8a8a;--nav-bg: rgba(17, 17, 17, .9)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}button{font-family:inherit}::selection{background:var(--accent);color:#000}.container{max-width:var(--maxw);margin:0 auto}.section{padding:var(--py) var(--px)}.sec-label{display:block;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}.sec-label span{color:var(--accent)}.sec-title{font-size:clamp(1.9rem,4.5vw,2.25rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-bottom:2.75rem}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.1rem var(--px);background:var(--nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.nav-logo{font-weight:800;font-size:1.15rem;letter-spacing:-.02em}.nav-logo span{color:var(--accent)}.nav-links{display:none;flex-direction:column;position:fixed;top:57px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);padding:.75rem 0}.nav-links.open{display:flex}.nav-links a{display:block;padding:.8rem var(--px);color:var(--muted);font-size:.95rem;transition:color .2s}.nav-links a:hover{color:var(--text)}.nav-toggle{display:flex;flex-direction:column;justify-content:space-between;width:26px;height:18px;background:none;border:none;cursor:pointer;padding:0}.nav-toggle span{display:block;height:2px;background:var(--text);border-radius:2px;transition:transform .3s,opacity .3s}.nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.nav-theme{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:.35rem;border-radius:6px;color:var(--muted);transition:color .2s}.nav-theme:hover{color:var(--text)}.icon-sun{display:none}.icon-moon,[data-theme=dark] .icon-sun{display:block}[data-theme=dark] .icon-moon{display:none}.nav-lang{position:relative}.lang-trigger{display:flex;align-items:center;gap:.35rem;background:none;border:none;cursor:pointer;padding:.25rem;border-radius:6px;color:var(--muted);transition:color .2s}.lang-trigger:hover{color:var(--text)}.flag{display:block;border-radius:2px;filter:grayscale(1);opacity:.75;transition:filter .2s,opacity .2s}.lang-trigger:hover .flag,.lang-list a:hover .flag,.lang-list a.active .flag{filter:grayscale(0);opacity:1}.lang-chevron{transition:transform .2s}.nav-lang.open .lang-chevron{transform:rotate(180deg)}.lang-list{position:absolute;top:calc(100% + .55rem);right:0;z-index:30;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px #0000001f;padding:.35rem;min-width:8.5rem;list-style:none;margin:0;display:none}.nav-lang.open .lang-list{display:block}.lang-list a{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;border-radius:8px;color:var(--text);font-size:.9rem;white-space:nowrap;transition:background .2s}.lang-list a:hover{background:var(--border)}.lang-list a.active{font-weight:600}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:6rem var(--px)}.hero-anchor{color:var(--muted);font-size:.9rem;margin-bottom:1.75rem}.hero-title{font-size:clamp(2.6rem,7vw,4.25rem);font-weight:800;line-height:1.02;letter-spacing:-.035em;margin-bottom:1.5rem}.hero-tag{color:var(--muted);font-size:clamp(1rem,2vw,1.15rem);max-width:44ch;margin-bottom:2.75rem}.hero-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.75rem}.hero-links a{color:var(--muted);font-size:1rem;padding-bottom:2px;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}.hero-links a:hover{color:var(--text);border-bottom-color:var(--accent)}.hero-links a.link-primary{color:var(--text);font-weight:700;border-bottom-color:var(--accent)}.page-head{padding:7rem var(--px) 0}.page-head .sec-title{margin-bottom:1rem}.page-sub{color:var(--muted);font-size:1.05rem;line-height:1.7;max-width:52ch}.sort-row{display:flex;justify-content:flex-end;margin-bottom:1.5rem}.sort-toggle{background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--muted);padding:.25rem 0;border-bottom:1px solid var(--border);transition:color .2s,border-color .2s}.sort-toggle:hover{color:var(--text);border-bottom-color:var(--accent)}.mat-group+.mat-group{margin-top:3.5rem}.mat-title{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:1.25rem}.posts{display:flex;flex-direction:column;gap:1.25rem}.post-card{display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--border);border-radius:2px;padding:1.75rem 1.5rem;transition:border-color .2s ease}.post-card:hover{border-color:var(--accent)}.post-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.post-date{font-size:.8rem;color:var(--muted)}.post-source{font-size:.8rem;color:var(--accent);font-weight:600}.post-card h2,.post-card h3{font-size:1.35rem;font-weight:700;letter-spacing:-.01em;line-height:1.3}.post-desc{color:var(--muted);font-size:1rem;line-height:1.65}.post-tags{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem}.post-tag{font-size:.78rem;color:var(--tag)}.projects{display:grid;grid-template-columns:1fr;gap:1.25rem}.project-card{display:flex;flex-direction:column;gap:1rem;border:1px solid var(--border);border-radius:2px;padding:1.75rem 1.5rem;transition:border-color .2s ease}.project-card:hover{border-color:var(--accent)}.project-card h3{font-size:1.35rem;font-weight:700;letter-spacing:-.01em}.project-desc{color:var(--muted);font-size:1rem;line-height:1.65}.project-tags{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem}.project-tags .tag{font-size:.78rem;color:var(--tag)}.project-link{font-size:.85rem;color:var(--muted);transition:color .2s}.project-card:hover .project-link{color:var(--text)}.tools-section{position:relative;overflow:hidden}.tools-content{position:relative;z-index:1}.tools-list{display:flex;flex-direction:column;gap:2.25rem}.tool-row{display:flex;flex-direction:column;gap:.5rem}.tool-row-label{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.tool-row-items{display:flex;flex-wrap:wrap;gap:.4rem 1.75rem}.tool-row-items span{color:var(--tag);font-size:1rem;transition:color .2s}.tool-row-items span:hover{color:var(--accent)}.tool-logo{position:absolute;right:1.5rem;bottom:1.5rem;height:clamp(12rem,55vh,30rem);max-width:62%;display:flex;align-items:flex-end;color:var(--tag);filter:grayscale(1);opacity:0;pointer-events:none;z-index:0;transition:opacity .3s ease}.tool-logo.active{opacity:.9}.tool-logo svg{width:100%;height:100%;fill:currentColor}.tool-logo img{width:100%;height:100%;object-fit:contain}.tool-logo-mono{font-size:clamp(4rem,20vh,9rem);font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--tag)}.events-empty{display:flex;flex-direction:column;gap:1rem;max-width:52ch;border:1px dashed var(--border);border-radius:2px;padding:2.5rem 2rem;color:var(--muted);line-height:1.7}.events-empty a{align-self:flex-start;color:var(--text);font-weight:600;padding-bottom:2px;border-bottom:1px solid var(--accent);transition:color .2s}.events-empty a:hover{color:var(--accent)}.about-content{display:flex;flex-direction:column;gap:2.5rem;align-items:flex-start}.about-photo{flex-shrink:0}.about-photo img{width:clamp(10rem,30vw,16rem);height:clamp(10rem,30vw,16rem);object-fit:cover;border-radius:50%;border:3px solid var(--border)}.about-text{flex:1;min-width:0}.about-mission{font-size:clamp(1.5rem,3vw,1.9rem);font-weight:700;letter-spacing:-.02em;line-height:1.3;margin-bottom:1.5rem}.about-body{color:var(--muted);font-size:1.05rem;line-height:1.75;max-width:58ch;margin-bottom:2.5rem}.about-meta{display:flex;flex-direction:column;gap:.35rem}.about-meta span{font-size:.9rem;color:var(--muted)}.about-meta strong{color:var(--text);font-weight:600}.footer{background:#000;color:#fff;text-align:center;padding:6rem var(--px) 3rem}.footer-title{font-size:clamp(2.2rem,6vw,3.25rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-bottom:2.75rem}.footer-socials{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.5rem 2.25rem;margin-bottom:4rem}.footer-socials a{color:#ffffffbf;font-size:1rem;padding-bottom:2px;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}.footer-socials a:hover{color:#fff;border-bottom-color:var(--accent)}.footer-socials a.link-primary{color:var(--accent);font-weight:700;font-size:1.1rem;border-bottom-color:var(--accent)}.footer-bottom{display:flex;flex-direction:column;gap:.4rem;align-items:center;border-top:1px solid rgba(255,255,255,.14);padding-top:1.5rem;color:#ffffff80;font-size:.85rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.fade{opacity:0;animation:fadeUp .6s ease-out forwards}.reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fade,.reveal{animation:none;opacity:1;transform:none;transition:none}}@media(min-width:768px){:root{--px: 2.5rem;--py: 6rem}.nav-toggle{display:none}.nav-links{display:flex;flex-direction:row;position:static;background:none;border:none;padding:0;gap:2rem;margin-left:auto}.nav-links a{padding:0;font-size:.9rem}.nav-actions{margin-left:1.5rem}.about-content{flex-direction:row;align-items:center}.projects{grid-template-columns:1fr 1fr}}@media(min-width:1024px){:root{--px: 3rem}.hero{padding:8rem var(--px)}}
