:root{--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--bg-primary: #ffffff;--bg-secondary: #f9fafb;--bg-tertiary: #f3f4f6;--bg-hover: #f1f3f5;--bg-tag: #f3f4f6;--text-primary: #111827;--text-secondary: #4b5563;--text-muted: #6b7280;--text-tag: #374151;--border-color: #e5e7eb;--border-subtle: #f0f2f5;--accent-color: #0f172a;--accent-link: #1d4ed8;--accent-link-hover: #1e40af;--status-online: #10b981;--max-width: 680px;--spring-ease: cubic-bezier(.16, 1, .3, 1);--spring-bounce: cubic-bezier(.34, 1.3, .64, 1);--transition-fast: .18s cubic-bezier(.16, 1, .3, 1);--transition-normal: .35s cubic-bezier(.16, 1, .3, 1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px}[data-theme=dark]{--bg-primary: #0d0f12;--bg-secondary: #14171c;--bg-tertiary: #1b1f26;--bg-hover: #222730;--bg-tag: #1c2129;--text-primary: #f3f4f6;--text-secondary: #9ca3af;--text-muted: #6b7280;--text-tag: #d1d5db;--border-color: #222730;--border-subtle: #191d24;--accent-color: #f9fafb;--accent-link: #60a5fa;--accent-link-hover: #93c5fd;--status-online: #34d399}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.65;letter-spacing:-.011em;min-height:100vh;transition:background-color var(--transition-normal),color var(--transition-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:var(--max-width);margin:0 auto;padding:2.75rem 1.5rem 4.25rem}@media (max-width: 640px){.container{padding:1.85rem 1.15rem 3rem}}.top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;font-size:.85rem;color:var(--text-muted)}.status-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.825rem;font-weight:500;color:var(--text-secondary)}.status-dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--status-online);position:relative}.status-dot:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--radius-full);background-color:var(--status-online);animation:pulse-ring 2s cubic-bezier(.455,.03,.515,.955) infinite}@keyframes pulse-ring{0%{transform:scale(.95);opacity:.8}50%{transform:scale(2.2);opacity:0}to{transform:scale(.95);opacity:0}}.theme-toggle-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:.35rem .65rem;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-family:inherit;transition:all var(--transition-fast)}.theme-toggle-btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary);border-color:var(--text-muted)}.profile-header{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.65rem}.avatar-wrapper{position:relative;flex-shrink:0}.avatar-img{width:64px;height:64px;border-radius:var(--radius-full);object-fit:cover;object-position:center center;border:1px solid var(--border-color);background-color:var(--bg-tertiary);display:block;box-shadow:0 1px 3px #00000014}.profile-meta h1{font-size:1.35rem;font-weight:600;letter-spacing:-.025em;color:var(--text-primary);line-height:1.25}.profile-meta .role-title{font-size:.95rem;color:var(--text-muted);font-weight:400;margin-top:.15rem}.bio-section{display:flex;flex-direction:column;gap:.85rem;margin-bottom:2rem}.bio-section p{font-size:.985rem;color:var(--text-secondary);line-height:1.65}.bio-section strong{color:var(--text-primary);font-weight:600}.bio-section a,.text-link{color:var(--text-primary);text-decoration:underline;text-decoration-color:var(--border-color);text-underline-offset:3px;transition:all var(--transition-fast)}.bio-section a:hover,.text-link:hover{color:var(--accent-link);text-decoration-color:var(--accent-link)}.quick-links{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.45rem;font-size:.875rem}.quick-btn{display:inline-flex;align-items:center;gap:.4rem;background-color:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);padding:.38rem .75rem;border-radius:var(--radius-md);text-decoration:none;font-weight:500;transition:transform var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);cursor:pointer;will-change:transform}.quick-btn:hover{background-color:var(--bg-tertiary);border-color:var(--text-muted);transform:translateY(-1.5px);box-shadow:0 3px 8px #0000000d}.quick-btn:active{transform:translateY(.5px) scale(.97)}.quick-btn svg{width:14px;height:14px;max-width:14px;max-height:14px;flex-shrink:0}.tabs-nav{position:relative;display:flex;align-items:center;gap:1.35rem;border-bottom:1px solid var(--border-color);margin-bottom:1.85rem;padding-bottom:.4rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tabs-nav::-webkit-scrollbar{display:none}.tab-btn{background:transparent;border:none;font-family:inherit;font-size:.925rem;font-weight:400;color:var(--text-muted);padding:.25rem 0;cursor:pointer;position:relative;white-space:nowrap;transition:color var(--transition-fast),transform var(--transition-fast);will-change:transform}.tab-btn:hover{color:var(--text-primary);transform:translateY(-.5px)}.tab-btn:active{transform:scale(.96)}.tab-btn.active{color:var(--text-primary);font-weight:600}.tab-content{display:block}@keyframes springFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tab-content.active .item-list>*{animation:springFadeIn .35s var(--spring-ease) both}.tab-content.active .item-list>*:nth-child(1){animation-delay:.02s}.tab-content.active .item-list>*:nth-child(2){animation-delay:.06s}.tab-content.active .item-list>*:nth-child(3){animation-delay:.1s}.tab-content.active .item-list>*:nth-child(4){animation-delay:.14s}.tab-content.active .item-list>*:nth-child(5){animation-delay:.18s}.tab-content.active .item-list>*:nth-child(6){animation-delay:.22s}.tab-content.active .writing-list>li{animation:springFadeIn .35s var(--spring-ease) both}.tab-content.active .writing-list>li:nth-child(1){animation-delay:.02s}.tab-content.active .writing-list>li:nth-child(2){animation-delay:.05s}.tab-content.active .writing-list>li:nth-child(3){animation-delay:.08s}.tab-content.active .writing-list>li:nth-child(4){animation-delay:.11s}.tab-content.active .writing-list>li:nth-child(5){animation-delay:.14s}.tab-content.active .writing-list>li:nth-child(6){animation-delay:.17s}.tab-content.active .writing-list>li:nth-child(7){animation-delay:.2s}.tab-content.active .writing-list>li:nth-child(8){animation-delay:.23s}.tab-content.active .writing-list>li:nth-child(9){animation-delay:.26s}.tab-content.active .writing-list>li:nth-child(10){animation-delay:.29s}.tab-content.active .writing-list>li:nth-child(11){animation-delay:.32s}.tab-content.active .skills-block>*{animation:springFadeIn .35s var(--spring-ease) both}.tab-content.active .skills-block>*:nth-child(1){animation-delay:.02s}.tab-content.active .skills-block>*:nth-child(2){animation-delay:.06s}.tab-content.active .skills-block>*:nth-child(3){animation-delay:.1s}.tab-content.active .skills-block>*:nth-child(4){animation-delay:.14s}.tab-content.active .skills-block>*:nth-child(5){animation-delay:.18s}.tab-content.active .contact-list>li{animation:springFadeIn .35s var(--spring-ease) both}.tab-content.active .contact-list>li:nth-child(1){animation-delay:.02s}.tab-content.active .contact-list>li:nth-child(2){animation-delay:.05s}.tab-content.active .contact-list>li:nth-child(3){animation-delay:.08s}.tab-content.active .contact-list>li:nth-child(4){animation-delay:.11s}.tab-content.active .contact-list>li:nth-child(5){animation-delay:.14s}.tab-content.active .contact-list>li:nth-child(6){animation-delay:.17s}.tab-content.active .contact-list>li:nth-child(7){animation-delay:.2s}.item-list{display:flex;flex-direction:column;gap:1.75rem}.list-entry{display:flex;flex-direction:column;gap:.6rem}.entry-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem}.entry-title-wrap{display:flex;align-items:center;gap:.4rem}.entry-title{font-size:1.05rem;font-weight:600;color:var(--text-primary);text-decoration:none;display:inline-flex;align-items:center;gap:.25rem}.entry-title:hover{color:var(--accent-link)}.entry-title .external-icon{width:13px;height:13px;opacity:.6;transition:opacity var(--transition-fast),transform var(--transition-fast);will-change:transform}.entry-title:hover .external-icon{opacity:1;transform:translate(2px,-2px)}.entry-date{font-size:.825rem;font-family:var(--font-mono);color:var(--text-muted)}.entry-subtitle{font-size:.875rem;color:var(--text-muted);font-weight:500}.entry-desc{font-size:.925rem;color:var(--text-secondary);line-height:1.6}.entry-bullets{list-style:none;display:flex;flex-direction:column;gap:.35rem;margin-top:.25rem;padding-left:.2rem}.entry-bullets li{position:relative;padding-left:1.1rem;font-size:.915rem;color:var(--text-secondary);line-height:1.55}.entry-bullets li:before{content:"—";position:absolute;left:0;color:var(--text-muted)}.tech-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.tech-tag{font-size:.76rem;font-family:var(--font-mono);padding:.2rem .55rem;border-radius:var(--radius-sm);background-color:var(--bg-tag);color:var(--text-tag);border:1px solid var(--border-color);display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);will-change:transform}.tech-tag:hover{border-color:var(--text-muted);color:var(--text-primary);background-color:var(--bg-hover);box-shadow:0 2px 6px #0000000a}.tech-tag:active{transform:scale(.95)}.tech-tag svg{width:12px;height:12px;max-width:12px;max-height:12px;flex-shrink:0;transition:transform var(--transition-fast)}.tech-tag:hover svg{transform:scale(1.12)}.writing-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.writing-item{border-bottom:1px solid var(--border-color)}.writing-item:last-child{border-bottom:none}.writing-link{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.8rem .5rem;border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast);will-change:transform}.writing-link:hover{background-color:var(--bg-secondary);transform:translate(4px)}.writing-link:hover .writing-title{color:var(--accent-link)}.writing-link-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}@media (min-width: 600px){.writing-link-main{flex-direction:row;align-items:baseline;gap:.75rem}}.writing-title{font-size:.925rem;font-weight:500;color:var(--text-primary);flex-shrink:0;transition:color var(--transition-fast)}.writing-desc{font-size:.825rem;color:var(--text-muted)}.writing-link .external-icon{width:12px;height:12px;flex-shrink:0;color:var(--text-muted);opacity:.6;transition:opacity var(--transition-fast),transform var(--transition-fast),color var(--transition-fast);will-change:transform}.writing-link:hover .external-icon{opacity:1;transform:translate(2px,-2px);color:var(--accent-link)}.skills-block{display:flex;flex-direction:column;gap:1.35rem;margin-bottom:2rem}.skills-category h3{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.45rem}.skills-category p{font-size:.925rem;color:var(--text-secondary);line-height:1.6}.section-divider{border:none;border-top:1px solid var(--border-color);margin:2rem 0}.subheading-title{font-size:1.05rem;font-weight:600;letter-spacing:-.02em;margin-bottom:1rem;color:var(--text-primary)}.contact-list{list-style:none;padding:0;margin:0}.contact-item{display:flex;align-items:center;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--border-color);font-size:.9rem}.contact-item:last-child{border-bottom:none}.contact-item-icon{width:15px;height:15px;flex-shrink:0;color:var(--text-muted)}.contact-item-label{width:72px;flex-shrink:0;font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.contact-item-value{color:var(--text-secondary);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}.contact-copy-btn{display:inline-flex;align-items:center;font-size:.72rem;font-weight:500;padding:.15rem .45rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);font-family:inherit;text-decoration:none}.contact-copy-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.toast-msg{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background-color:var(--text-primary);color:var(--bg-primary);padding:.6rem 1.1rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;box-shadow:0 8px 24px #00000026;pointer-events:none;z-index:9999}footer{margin-top:3.25rem;padding-top:1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;font-size:.825rem;color:var(--text-muted)}.footer-links{display:flex;gap:1.25rem}.footer-links a{color:var(--text-muted);text-decoration:none;transition:color var(--transition-fast)}.footer-links a:hover{color:var(--text-primary)}.back-to-top-btn{position:fixed;bottom:2.25rem;right:2.25rem;width:40px;height:40px;border-radius:var(--radius-full);background-color:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:99;box-shadow:0 4px 14px #00000014;transition:border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}@media (max-width: 640px){.back-to-top-btn{bottom:1.25rem;right:1.25rem;width:36px;height:36px}}a:focus-visible,button:focus-visible{outline:2px solid var(--accent-link);outline-offset:2px}@media print{body{background:#fff;color:#000}.theme-toggle-btn,.tabs-nav,.status-badge{display:none!important}.tab-content{display:block!important;opacity:1!important;margin-bottom:2rem}.container{max-width:100%;padding:0}}
