@import "https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=Source+Sans+3:wght@400;500;600;700&display=swap";:root{--bg:#f8f8f6;--text:#111;--muted:#454545;--line:#d7d7d2;--chip-bg:#111;--chip-text:#fff;--card-bg:#fff;--shadow:0 10px 30px #11111114}:root[data-theme=dark]{--bg:#030303;--text:#f4f4f4;--muted:#b8b8b8;--line:#242424;--chip-bg:#fff;--chip-text:#111;--card-bg:#090909;--shadow:0 10px 32px #00000073}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 15% 0%, #9191911f, transparent 30%), var(--bg);color:var(--text);font-family:"Source Sans 3",sans-serif}h1,h2,h3,p,ul{margin:0}a{color:inherit;text-decoration:none}.app-root{min-height:100vh;padding-bottom:130px}.page-content{width:min(980px,100% - 36px);margin:0 auto;padding:clamp(28px,6vw,72px) 0}.intro{grid-template-columns:1fr auto;align-items:start;gap:clamp(20px,4vw,50px);max-width:860px;margin:0 auto;display:grid}.intro-text h1{font-family:Libre Baskerville,serif;font-size:clamp(2rem,6vw,4rem);line-height:1.05}.hero-subtitle,.body-text{color:var(--muted);max-width:52ch;font-size:clamp(1rem,2.3vw,1.32rem);line-height:1.5}.intro-text h2{margin-top:26px;font-family:Libre Baskerville,serif;font-size:clamp(1.4rem,3vw,2rem)}.body-text{margin-top:12px}.avatar-wrap{aspect-ratio:1;border:2px solid var(--line);width:clamp(120px,18vw,188px);box-shadow:var(--shadow);border-radius:999px;overflow:hidden}.avatar{object-fit:cover;width:100%;height:100%}.plain-section,.contact-section{max-width:860px;margin-top:clamp(34px,6vw,64px);margin-left:auto;margin-right:auto}.plain-section h2,.contact-section h2{margin-bottom:14px;font-family:Libre Baskerville,serif;font-size:clamp(1.45rem,3vw,2.2rem)}.experience-list{gap:16px;display:grid}.experience-item h3,.skills-list h3,.card-title{font-family:Libre Baskerville,serif;font-size:clamp(1.05rem,2vw,1.4rem)}.experience-item{grid-template-columns:1fr auto;align-items:start;gap:10px 20px;display:grid}.experience-head{grid-template-columns:54px 1fr;align-items:center;gap:0 10px;display:grid}.company-logo{border:1px solid var(--line);background:var(--card-bg);width:54px;height:54px;color:var(--muted);border-radius:999px;grid-row:1/span 2;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex;overflow:hidden}.company-logo img{object-fit:cover;width:100%;height:100%}.company-logo svg{width:100%;height:100%}.company-logo-techm svg{width:76%;height:76%}.company-logo-unique svg{width:88%;height:88%}.company-logo-unique{color:var(--text)}.experience-item .detail-list{grid-column:1/-1}.meta-line{color:var(--muted);margin-top:4px;font-size:1rem}.detail-list{color:var(--muted);margin-top:10px;padding-left:18px;line-height:1.55}.skills-list{justify-content:center;display:flex}.tag-list{flex-wrap:wrap;gap:8px;margin-top:8px;padding:0;list-style:none;display:flex}.skills-list .tag-list{justify-content:center}.tag-chip{border:1px solid var(--line);background:var(--chip-bg);color:var(--chip-text);border-radius:999px;padding:6px 11px;font-size:.9rem}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px;display:grid}.project-card{border:1px solid var(--line);background:var(--card-bg);box-shadow:var(--shadow);border-radius:14px;gap:15px;padding:15px;display:grid}.card-text{color:var(--muted);margin-top:8px;line-height:1.5}.project-about{font-size:.95rem}.project-stack{margin-top:10px}.card-actions{flex-wrap:wrap;gap:8px;display:flex}.action-btn{border:1px solid var(--line);border-radius:10px;justify-content:center;align-items:center;gap:7px;width:38px;height:34px;font-weight:700;transition:border-color .14s;display:inline-flex}.action-btn:hover{border-color:var(--text)}.action-btn-disabled{color:var(--muted)}.action-btn svg{width:16px;height:16px}.contact-label{border:1px solid var(--line);border-radius:999px;margin-bottom:12px;padding:4px 12px;font-size:.95rem;display:inline-block}.contact-copy{color:var(--muted);font-size:clamp(1.1rem,2.5vw,1.8rem);line-height:1.35}.contact-copy a{color:#2c7efc}.floating-capsule{border:1px solid var(--line);background:color-mix(in srgb, var(--card-bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);height:58px;box-shadow:var(--shadow);z-index:20;border-radius:999px;justify-content:center;align-items:center;gap:7px;width:286px;padding:0 14px;transition:width .24s;display:flex;position:fixed;bottom:20px;left:50%;overflow:visible;transform:translate(-50%)}.floating-capsule:hover{width:352px}@keyframes sectionEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.page-content>section{opacity:0;animation:.56s forwards sectionEnter}.page-content>section:first-of-type{animation-delay:40ms}.page-content>section:nth-of-type(2){animation-delay:.11s}.page-content>section:nth-of-type(3){animation-delay:.18s}.page-content>section:nth-of-type(4){animation-delay:.25s}.page-content>section:nth-of-type(5){animation-delay:.32s}@media (prefers-reduced-motion:reduce){.page-content>section{opacity:1;animation:none}}.floating-capsule a,.floating-capsule button{width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;transition:background-color .12s;display:inline-flex;position:relative}.floating-capsule svg{width:20px;height:20px}.floating-capsule a:hover,.floating-capsule button:hover{background:color-mix(in srgb, var(--line) 38%, transparent)}.capsule-item:after{content:attr(data-label);border:1px solid var(--line);background:var(--card-bg);color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;border-radius:8px;padding:3px 7px;font-size:.72rem;line-height:1;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.capsule-item:hover:after{opacity:1;transform:translate(-50%)translateY(0)}@keyframes themeIconSwap{0%{opacity:0;transform:rotate(-110deg)scale(.7)}to{opacity:1;transform:rotate(0)scale(1)}}.theme-toggle-icon{animation:.26s themeIconSwap;display:inline-flex}@media (width<=860px){.projects-grid{grid-template-columns:1fr}}@media (width<=680px){.intro{grid-template-columns:1fr;justify-items:center}.avatar-wrap{order:-1;width:120px;margin:0 auto}.intro-text{text-align:center}.hero-subtitle,.body-text{margin-left:auto;margin-right:auto}.floating-capsule{width:252px;height:54px}.floating-capsule:hover{width:318px}}
