@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}:root{--page-width: 1200px;--page-padding: 3rem;--sidebar-top: 120px;--sidebar-width: 350px;--gap: 2rem;--main-max: 900px;--sidebar-photo-size: 110px;--sidebar-nudge-left: 60px;--header-height: 100px;--accent: #3b82f6;--accent-2: #6366f1;--accent-rgb: 59, 130, 246;--accent-2-rgb: 99, 102, 241;--text-primary: #f3f6ff;--text-secondary: rgba(243, 246, 255, .82);--text-muted: rgba(243, 246, 255, .62);--panel: rgba(20, 30, 52, .55);--panel-strong: rgba(20, 30, 52, .72);--panel-border: rgba(255, 255, 255, .08);--shadow: 0 14px 40px rgba(0, 0, 0, .28);--shadow-soft: 0 10px 28px rgba(0, 0, 0, .22)}section{scroll-margin-top:calc(var(--header-height))}body{margin:0;padding:0;font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.65;color:var(--text-secondary);background:radial-gradient(900px 700px at 18% 0%,rgba(var(--accent-2-rgb),.38),transparent 62%),radial-gradient(900px 700px at 92% 28%,rgba(var(--accent-rgb),.26),transparent 62%),linear-gradient(180deg,#162246,#101c38 55%,#0b162b)}.title-gradient{background:linear-gradient(90deg,var(--accent) 0%,var(--accent-2) 60%);-webkit-background-clip:text;background-clip:text;color:transparent}.site-header{height:var(--header-height);background:#0a1020b3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.06);box-shadow:0 6px 18px #0000002e;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 1rem;text-align:center}.header-title{margin:0;font-weight:800;font-size:1.55rem;letter-spacing:.2px;line-height:1.1}.header-subtitle{margin:.2rem 0 0;font-size:.85rem;color:var(--text-muted)}.content-wrapper{width:min(var(--page-width),calc(100% - var(--page-padding)));margin:0 auto;padding:2rem 0;position:relative}.sidebar{width:var(--sidebar-width);background:var(--panel-strong);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--panel-border);padding:1.5rem 1rem 1.25rem;display:flex;flex-direction:column;align-items:stretch;border-radius:14px;box-shadow:var(--shadow);position:fixed;top:var(--sidebar-top);bottom:20px;left:calc((100vw - min(var(--page-width),(100% - var(--page-padding)))) / 2 - var(--sidebar-nudge-left));overflow:hidden}.sidebar .profile{display:flex;justify-content:center;width:100%;margin-bottom:.9rem}.sidebar .profile-photo{width:var(--sidebar-photo-size);height:var(--sidebar-photo-size);border-radius:999px;object-fit:cover;border:2px solid rgba(var(--accent-rgb),.65);box-shadow:0 10px 26px #00000059}.side-nav{margin-top:.75rem;width:100%}.sidebar nav a{display:block;padding:.8rem 1rem;margin:.34rem 0;background:#ffffff0d;border-left:4px solid transparent;color:var(--text-secondary);text-decoration:none;border-radius:10px;transition:transform .12s ease,background .16s ease,border-color .16s ease}.sidebar nav a:hover{background:#ffffff12;transform:translateY(-1px)}.sidebar nav a.active{border-left-color:var(--accent);background:rgba(var(--accent-rgb),.12);color:var(--text-primary);font-weight:600}.sidebar-divider{width:100%;height:1px;margin:1rem 0 .85rem;background:#ffffff14}.contact-list{width:100%;display:flex;flex-direction:column;gap:.85rem}.contact-link{display:grid;grid-template-columns:22px 1fr;align-items:center;column-gap:.75rem;text-decoration:none;color:var(--text-secondary);font-size:.95rem}.contact-link:hover{color:var(--text-primary)}.contact-icon{width:18px;height:18px;color:#f3f6ffa6}.contact-link:hover .contact-icon{color:var(--accent)}.sidebar-spacer{flex:1}.location{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;padding:1.1rem .5rem .25rem;color:var(--text-muted);font-size:.95rem}.location-pin{width:18px;height:18px;color:var(--accent)}main{max-width:var(--main-max);margin-left:calc(var(--sidebar-width) + var(--gap))}section{margin-bottom:4rem;padding:0;background:none;box-shadow:none;border-radius:0}h1,h2,h3{color:var(--text-primary);letter-spacing:.2px}section h2{margin:0 0 1.1rem;font-size:clamp(1.8rem,2.2vw,2.2rem);font-weight:700}section h2{background:linear-gradient(90deg,var(--accent) 0%,var(--accent-2) 60%);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.02em}section p{max-width:68ch;line-height:1.7}.muted{color:var(--text-muted);margin-top:.75rem}.stack{display:flex;flex-direction:column;gap:3.25rem}.entry{display:grid;grid-template-columns:240px 1fr;column-gap:3rem;align-items:start}.entry-date{color:#ffffffeb;font-weight:700;font-size:1.15rem}.entry-sub{margin-top:.4rem;color:var(--text-muted);font-size:1rem}.entry-right h3{margin:0;font-size:2rem}.item-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;padding:1.75rem 2rem;margin-bottom:2rem;box-shadow:var(--shadow-soft)}.item-card h3{margin:0;font-size:2rem}.item-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}.item-tag{padding:.35rem .7rem;border-radius:999px;font-size:.85rem;color:#ffffffe6;border:1px solid rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.1)}.project-link{display:inline-flex;align-items:center;gap:.65rem;margin-top:1.2rem;text-decoration:none;color:var(--text-muted);font-weight:600}.project-link:hover{color:var(--text-primary)}.project-link-icon{width:18px;height:18px;display:inline-block;background-color:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 .5C5.73.5.75 5.62.75 12c0 5.1 3.29 9.42 7.86 10.95.58.11.8-.26.8-.58v-2.1c-3.2.71-3.88-1.27-3.88-1.27-.53-1.39-1.3-1.76-1.3-1.76-1.06-.75.08-.74.08-.74 1.17.08 1.78 1.23 1.78 1.23 1.04 1.82 2.73 1.29 3.4.99.11-.77.41-1.29.74-1.58-2.55-.3-5.23-1.31-5.23-5.82 0-1.29.45-2.35 1.2-3.18-.12-.3-.52-1.52.11-3.17 0 0 .97-.32 3.18 1.21.92-.26 1.9-.39 2.88-.4.98.01 1.97.14 2.89.4 2.2-1.53 3.17-1.21 3.17-1.21.64 1.65.24 2.87.12 3.17.74.83 1.2 1.89 1.2 3.18 0 4.52-2.69 5.52-5.25 5.81.42.37.79 1.1.79 2.22v3.29c0 .32.21.7.81.58A11.27 11.27 0 0 0 23.25 12C23.25 5.62 18.27.5 12 .5z'/%3E%3C/svg%3E") no-repeat center / contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 .5C5.73.5.75 5.62.75 12c0 5.1 3.29 9.42 7.86 10.95.58.11.8-.26.8-.58v-2.1c-3.2.71-3.88-1.27-3.88-1.27-.53-1.39-1.3-1.76-1.3-1.76-1.06-.75.08-.74.08-.74 1.17.08 1.78 1.23 1.78 1.23 1.04 1.82 2.73 1.29 3.4.99.11-.77.41-1.29.74-1.58-2.55-.3-5.23-1.31-5.23-5.82 0-1.29.45-2.35 1.2-3.18-.12-.3-.52-1.52.11-3.17 0 0 .97-.32 3.18 1.21.92-.26 1.9-.39 2.88-.4.98.01 1.97.14 2.89.4 2.2-1.53 3.17-1.21 3.17-1.21.64 1.65.24 2.87.12 3.17.74.83 1.2 1.89 1.2 3.18 0 4.52-2.69 5.52-5.25 5.81.42.37.79 1.1.79 2.22v3.29c0 .32.21.7.81.58A11.27 11.27 0 0 0 23.25 12C23.25 5.62 18.27.5 12 .5z'/%3E%3C/svg%3E") no-repeat center / contain}.reveal{opacity:0;transform:translateY(12px);transition:opacity .42s ease,transform .52s ease;will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:translateY(0)}.sidebar-top{padding:1.5rem 1rem 1rem;display:flex;justify-content:center;position:relative}.sidebar-top:after{content:"";position:absolute;bottom:0;width:70%;height:1px;background:linear-gradient(to right,transparent,rgba(255,255,255,.25),transparent)}.sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:1rem}.sidebar-scroll::-webkit-scrollbar{width:6px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:6px}.sidebar-scroll::-webkit-scrollbar-track{background:transparent}@media(max-height:700px){.profile-photo{width:90px;height:90px}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}@media(max-width:900px){:root{--sidebar-top: 0px;--sidebar-nudge-left: 0px;--header-height: 64px}.content-wrapper{width:calc(100% - 2rem);padding:1rem 0}.sidebar{position:relative;left:0;top:0;bottom:auto;width:100%;height:auto;overflow:hidden}main{margin-left:0;max-width:100%}.entry{grid-template-columns:1fr;row-gap:.75rem}.entry-right h3{font-size:1.65rem}}
