.theme-toggle-btn{position:relative;overflow:visible;display:flex;align-items:center;justify-content:center;padding:.4rem;border-radius:9999px;cursor:pointer;border:none;outline:none;background:transparent;color:var(--text-primary)}.theme-toggle-btn:after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;pointer-events:none;background:var(--hover-ripple);transform:translate(-50%,-50%) scale(0);opacity:0;transition:opacity .4s ease,transform .4s ease}.theme-toggle-btn:hover:after{opacity:.35;transform:translate(-50%,-50%) scale(12)}.theme-toggle-btn:not(:hover):after{opacity:0;transform:translate(-50%,-50%) scale(0)}.icon-wrapper{display:flex;align-items:center;justify-content:center}.theme-icon{animation:icon-pop .3s ease-out forwards}@keyframes icon-pop{0%{transform:scale(.55) rotate(25deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}:root{--hover-ripple: rgba(0, 0, 0, .15)}.dark{--hover-ripple: rgba(255, 255, 255, .15)}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:9999;will-change:clip-path}:root{--bg-color: #fafaf9;--text-primary: #1c1917;--text-secondary: #44403c;--text-muted: #78716c;--border-color: #d6d3d1;--border-light: #e7e5e4;--accent-color: #1c1917;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--spacing-xl: 4rem}.dark{--bg-color: #101014;--text-primary: #fafaf9;--text-secondary: #d6d3d1;--text-muted: #a8a29e;--border-color: #44403c;--border-light: #292524;--accent-color: #fafaf9}*{box-sizing:border-box}body{margin:0;padding:0;background-color:var(--bg-color);color:var(--text-primary);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}.container{max-width:42rem;margin:0 auto;padding:4rem 1.5rem;min-height:100vh}h1,h2,h3,h4,p{margin:0}a{color:inherit;text-decoration:none}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-muted{color:var(--text-muted)}.font-bold{font-weight:700}.header{display:flex;flex-direction:column-reverse;gap:var(--spacing-lg);margin-bottom:2rem;transition:all .3s ease}.header.is-scrolled{flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;padding-top:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-light)}.header.is-scrolled .header-content h1{font-size:1.1rem;margin-bottom:.1rem}.header.is-scrolled .header-content p{margin-bottom:.1rem;font-size:.8rem}.header.is-scrolled .header-meta{margin-bottom:0;font-size:.75rem}.header.is-scrolled .profile-img{width:3.5rem;height:3.5rem}.sticky-header{position:sticky;top:0;z-index:50;background-color:var(--bg-color);padding-top:1rem;padding-bottom:1rem;margin-top:-1rem;transition:padding .3s ease,background-color .3s ease}@supports (backdrop-filter: blur(10px)){.sticky-header{background-color:color-mix(in srgb,var(--bg-color),transparent 10%);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}@media(min-width:640px){.header{flex-direction:row;justify-content:space-between;align-items:flex-start}}.header-content h1{font-size:1.5rem;margin-bottom:var(--spacing-sm);letter-spacing:-.025em}.header-meta{display:flex;align-items:center;gap:.25rem;margin-bottom:1.5rem}.profile-img{width:6rem;height:6rem;object-fit:cover;border:1px solid var(--text-primary);flex-shrink:0}.dark .profile-img{filter:grayscale(100%)}@media(min-width:640px){.profile-img{width:8rem;height:8rem}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--border-light) 25%,var(--border-color) 50%,var(--border-light) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:2px}.header-image .skeleton{width:6rem;height:6rem;animation:shimmer 1.5s infinite linear}@media(min-width:640px){.header-image .skeleton{width:8rem;height:8rem}}.section{margin-bottom:3rem}.section-title{font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);padding-bottom:.25rem;margin-bottom:1.5rem;margin-top:2.5rem}.entry{margin-bottom:2rem}.entry:last-child{margin-bottom:0}.entry-header{display:flex;flex-direction:column;margin-bottom:.25rem}@media(min-width:640px){.entry-header{flex-direction:row;justify-content:space-between;align-items:baseline}}.entry-role{font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.project-link{display:block}.project-link:hover .entry-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;color:var(--text-primary)}.project-title-row{display:flex;align-items:baseline;gap:.25rem}.project-title-row .entry-title{text-decoration:underline;text-decoration-color:var(--border-color);text-underline-offset:4px;transition:text-decoration-color .2s}.project-link:hover .project-title-row .entry-title{text-decoration-color:var(--text-primary)}.skills-list{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem}.skill-badge{color:var(--text-secondary);border:1px solid var(--border-color);padding:.125rem .375rem}.tech-stack{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:var(--text-muted);margin-top:.5rem}.tech-item:before{content:"["}.tech-item:after{content:"]"}.footer{margin-top:5rem;padding-top:2rem;border-top:1px solid var(--border-light)}.footer-links{display:flex;flex-direction:column;gap:1rem}@media(min-width:640px){.footer-links{flex-direction:row;gap:2rem}}.social-link{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--text-secondary);transition:color .2s}.social-link:hover{color:var(--text-primary);text-decoration:underline;text-underline-offset:4px}.icon-inline{width:1em;height:1em;display:inline-block;vertical-align:text-bottom}.floating-dock{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background-color:var(--bg-color);border:1px solid var(--border-color);padding:.5rem;border-radius:9999px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:100;display:flex;align-items:center;justify-content:center}
