:root{--font-sans: "SF Pro Display", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--bg: #f3f5f7;--surface: rgba(255, 255, 255, .72);--text: #101215;--muted: #6b7280;--line: #d9dee5;--accent: #0b63f6;--nav-surface: rgba(248, 250, 251, .88);--nav-line: rgba(217, 222, 229, .96);--nav-shadow: 0 10px 24px rgba(13, 18, 28, .05);--nav-pill: rgba(16, 18, 21, .08);--nav-pill-hover: rgba(16, 18, 21, .05);--nav-offset: 4.9rem;--theme-reveal-x: 2.2rem;--theme-reveal-y: calc(100vh - 2.2rem) }:root[data-theme=dark]{--bg: #0d1015;--surface: rgba(23, 27, 34, .72);--text: #f5f7fa;--muted: #98a3b4;--line: #2a313b;--accent: #68a3ff;--nav-surface: rgba(21, 27, 36, .86);--nav-line: rgba(74, 86, 104, .84);--nav-shadow: 0 14px 30px rgba(0, 0, 0, .42);--nav-pill: rgba(245, 247, 250, .14);--nav-pill-hover: rgba(245, 247, 250, .08)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}html{background:var(--bg)}body{font-family:var(--font-sans);line-height:1.45;color:var(--text);background:var(--bg);letter-spacing:-.01em}a{color:inherit}h1,h2,h3,h4,p{margin:0}.page-shell{width:min(1000px,92vw);margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding:1rem 0 1.4rem}.floating-nav-wrap{position:sticky;top:.9rem;z-index:30}.floating-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;border:1px solid var(--nav-line);border-radius:14px;padding:.46rem .85rem;background:var(--nav-surface);-webkit-backdrop-filter:blur(10px) saturate(125%);backdrop-filter:blur(10px) saturate(125%);box-shadow:var(--nav-shadow)}.floating-left{display:flex;align-items:center;justify-self:start}.floating-brand{font-size:1.02rem;font-weight:600;letter-spacing:-.01em;text-decoration:none;white-space:nowrap}.floating-links{position:relative;display:flex;align-items:center;justify-content:center;gap:.12rem;justify-self:center;padding:.12rem}.floating-indicator{position:absolute;left:0;top:.12rem;height:calc(100% - .24rem);border-radius:8px;background:var(--nav-pill);opacity:0;transition:transform .24s cubic-bezier(.2,.7,.3,1),width .24s cubic-bezier(.2,.7,.3,1),opacity .16s ease}.floating-indicator--visible{opacity:1}.floating-link{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;padding:.38rem .78rem;border-radius:8px;text-decoration:none;font-size:.94rem;font-weight:500;color:var(--text);opacity:.74;transition:color .14s ease,opacity .14s ease,background-color .14s ease}.floating-link:hover{opacity:1;background:var(--nav-pill-hover)}.floating-link--active{opacity:1}.floating-right{display:flex;align-items:center;justify-self:end}.social-icons{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:.46rem}.social-icons a{display:inline-flex;color:var(--muted);transition:color .14s ease;text-decoration:none}.social-icons a:hover{color:var(--text)}.social-icons svg{width:.95rem;height:.95rem}.nav-socials{gap:.54rem}.nav-socials a{opacity:.82}.nav-socials a:hover{opacity:1}.theme-toggle{position:fixed;left:max(1rem,env(safe-area-inset-left));bottom:max(1rem,env(safe-area-inset-bottom));z-index:50;width:2.65rem;height:2.65rem;display:inline-flex;align-items:center;justify-content:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,var(--bg));color:var(--muted);cursor:pointer;font-size:1.02rem;line-height:1;box-shadow:0 8px 20px color-mix(in srgb,var(--bg) 72%,transparent);transition:color .14s ease,transform .14s ease,box-shadow .14s ease,border-color .14s ease}.theme-toggle:hover{color:var(--text);border-color:color-mix(in srgb,var(--line) 40%,var(--accent));transform:translateY(-1px);box-shadow:0 10px 24px color-mix(in srgb,var(--bg) 62%,transparent)}.theme-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent),0 8px 20px color-mix(in srgb,var(--bg) 72%,transparent)}.theme-toggle:active{transform:translateY(0)}.page-content{flex:1;padding-top:1.7rem;padding-bottom:1.2rem}.home-view{min-height:68vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.35rem;text-align:center}.avatar{width:126px;height:126px;border-radius:999px;object-fit:cover;object-position:center}.avatar--home{width:clamp(170px,24vw,220px);height:clamp(170px,24vw,220px)}.home-title{display:inline-flex;align-items:baseline;font-size:clamp(1.9rem,5.6vw,4rem);font-weight:700;letter-spacing:-.04em;line-height:.97}.home-title__cursor{display:inline-block;margin-left:.08em;font-weight:500;opacity:1;animation:home-cursor-blink 1s steps(1,end) infinite}@keyframes home-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.page-view{display:grid;gap:1.15rem}.page-intro{display:grid;gap:.25rem}.page-intro h1{font-size:clamp(1.8rem,5vw,2.7rem);font-weight:650;letter-spacing:-.03em}.page-muted{color:var(--muted)}.blog-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.blog-list li+li{border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.blog-post{display:grid;gap:.35rem;padding:1rem 0}.blog-post h2{font-size:1.08rem;font-weight:600;letter-spacing:-.02em}.blog-date{font-size:.82rem;color:var(--muted)}.projects-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.projects-list li+li{border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.project-listing{display:grid;grid-template-columns:minmax(180px,240px) 1fr auto;gap:1rem;padding:1rem 0;align-items:start}.project-listing__cover{width:100%;aspect-ratio:4 / 3;border-radius:14px;background:linear-gradient(140deg,color-mix(in srgb,var(--surface) 85%,var(--bg)),color-mix(in srgb,var(--line) 52%,var(--bg)));border:1px solid color-mix(in srgb,var(--line) 70%,transparent);display:flex;align-items:flex-end;padding:.75rem}.project-listing__cover span{font-size:.74rem;color:color-mix(in srgb,var(--text) 76%,transparent);letter-spacing:-.01em}.project-listing__content{display:grid;gap:.32rem}.project-listing__meta{font-size:.82rem;color:var(--muted)}.project-listing__content h2{font-size:1.08rem;font-weight:600;letter-spacing:-.02em}.project-listing__partner{font-size:.88rem;color:var(--muted)}.project-listing__impact{display:grid;justify-items:end;gap:.2rem;min-width:140px}.project-listing__impact-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.project-listing__impact-value{font-size:.86rem;font-weight:600;letter-spacing:-.01em}.project-tags{list-style:none;margin:.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.42rem}.project-tags li{font-size:.73rem;color:var(--muted);border:1px solid color-mix(in srgb,var(--line) 75%,transparent);border-radius:999px;padding:.16rem .45rem}.timeline-filters{display:flex;flex-wrap:wrap;gap:.58rem;margin-bottom:.7rem}.pill{border:1px solid color-mix(in srgb,var(--line) 80%,transparent);background:color-mix(in srgb,var(--surface) 78%,var(--bg));color:var(--muted);padding:.26rem .62rem;font:inherit;font-size:.84rem;font-weight:500;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:color .13s ease,background-color .13s ease,border-color .13s ease,transform .13s ease}.pill:hover{color:var(--text);border-color:color-mix(in srgb,var(--line) 45%,var(--accent));background:color-mix(in srgb,var(--surface) 60%,var(--bg));transform:translateY(-1px)}.pill:active{transform:translateY(0)}.pill:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent)}.pill--active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--bg));font-weight:600}.pill__icon{font-size:.86rem;line-height:1}.timeline-scroll{padding-right:0;display:grid;gap:1.45rem}.timeline-year-group{display:grid;grid-template-columns:74px 1fr;column-gap:1.1rem;align-items:start}.timeline-year{position:sticky;top:calc(var(--nav-offset) + .1rem);font-size:.96rem;font-weight:600;letter-spacing:-.02em;color:var(--muted);padding-top:.22rem;align-self:start}.timeline-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.timeline-item{display:grid;grid-template-columns:1.12rem 1fr;gap:.55rem;padding:0;position:relative}.timeline-item:before{content:"";position:absolute;left:.54rem;top:1.64rem;bottom:-1.2rem;width:1px;background:color-mix(in srgb,var(--line) 78%,transparent)}.timeline-item--end:before{display:none}.timeline-marker{width:1.08rem;height:1.08rem;margin-top:.54rem;border-radius:999px;background:var(--bg);display:grid;place-items:center;font-size:.88rem;line-height:1;position:relative;z-index:1}.timeline-marker--work{color:color-mix(in srgb,var(--accent) 80%,var(--text))}.timeline-marker--hobby{color:color-mix(in srgb,#f7a348 70%,var(--text))}.timeline-marker--life{color:color-mix(in srgb,#4ab081 72%,var(--text))}.timeline-item article{display:grid;gap:.34rem}.timeline-item h4{font-size:1.06rem;font-weight:600;letter-spacing:-.02em}.timeline-date{font-size:.82rem;color:var(--muted)}.timeline-details summary{cursor:pointer;color:var(--muted)}.timeline-details ul{margin:.35rem 0 0;padding-left:1rem}.timeline-empty{color:var(--muted)}.footer{margin-top:auto;border-top:1px solid color-mix(in srgb,var(--line) 78%,transparent);padding-top:1.2rem;color:var(--muted);font-size:.85rem}.fade-in{animation:fade-in .22s ease-out}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes theme-reveal{0%{clip-path:circle(0 at var(--theme-reveal-x) var(--theme-reveal-y))}to{clip-path:circle(150vmax at var(--theme-reveal-x) var(--theme-reveal-y))}}@supports (view-transition-name: root){:root{view-transition-name:root}::view-transition-group(root),::view-transition-old(root){animation:none}::view-transition-new(root){animation:theme-reveal .78s cubic-bezier(.24,.72,.24,1) both}}@media (max-width: 860px){:root{--nav-offset: 8.8rem}.floating-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.floating-left{width:100%;justify-content:center}.floating-links{width:100%}.floating-right{width:100%;justify-content:center}.timeline-year-group{grid-template-columns:58px 1fr;column-gap:.75rem}.timeline-year{font-size:.88rem}.project-listing{grid-template-columns:1fr;gap:.75rem}.project-listing__cover{max-width:320px}.project-listing__impact{justify-items:start;min-width:0}}@media (prefers-reduced-motion: reduce){.home-title__cursor{animation:none}::view-transition-new(root){animation:none}}
