@charset "UTF-8";:root{color-scheme:light;--maxw: 800px;--page-pad: 24px;--bg: #ffffff;--ink: #000000;--text: #1a1a1a;--muted: #666666;--rule: #e6e6e6;--link: #1772d0;--link-hover: #0f4f93;--link-visited: #1772d0;--accent-hl: #ffffd0;--chip-bg: rgba(255, 255, 255, .82);--badge-ongoing-bg: #e8f3ff;--badge-ongoing-ink: #1772d0;--badge-done-bg: #eef7ee;--badge-done-ink: #2e7d32;--tag-bg: #f3f4f6;--tag-ink: #374151;--tag-border: #e5e7eb;--font-serif: "Newsreader", Charter, "Bitstream Charter", Cambria, Georgia, "Times New Roman", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--fs-base: 16px;--lh-base: 1.5;--fs-name: 30px;--fs-section: 15px;--fs-entry-title: 18px;--fs-meta: 15px;--fs-desc: 15px;--fs-tag: 12.5px;--fs-badge: 11px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-section: 44px;--space-entry: 28px;--photo-size: 150px;--photo-radius: 50%;--radius-tag: 4px;--radius-badge: 999px;--hover-pad: 10px;--ease: .16s ease}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg: #0f1115;--ink: #f3f4f6;--text: #c9ccd1;--muted: #8a9099;--rule: #2a2f37;--link: #5aa6f0;--link-hover: #8fc1f7;--link-visited: #5aa6f0;--accent-hl: #1b2026;--badge-ongoing-bg: #11293f;--badge-ongoing-ink: #7ab8f5;--badge-done-bg: #122a1d;--badge-done-ink: #74cf90;--tag-bg: #1b2026;--tag-ink: #c9ccd1;--tag-border: #2a2f37;--chip-bg: rgba(15, 17, 21, .82)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0f1115;--ink: #f3f4f6;--text: #c9ccd1;--muted: #8a9099;--rule: #2a2f37;--link: #5aa6f0;--link-hover: #8fc1f7;--link-visited: #5aa6f0;--accent-hl: #1b2026;--badge-ongoing-bg: #11293f;--badge-ongoing-ink: #7ab8f5;--badge-done-bg: #122a1d;--badge-done-ink: #74cf90;--tag-bg: #1b2026;--tag-ink: #c9ccd1;--tag-border: #2a2f37;--chip-bg: rgba(15, 17, 21, .82)}*,*:before,*:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-base)}img{display:block;max-width:100%}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover);text-decoration:underline}a:visited{color:var(--link-visited)}app-root{display:block;position:relative}.site{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;padding:48px var(--page-pad) 80px;color:var(--text);font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-base)}.header{display:grid;grid-template-columns:var(--photo-size) 1fr;column-gap:28px;align-items:center}.profile-photo{width:var(--photo-size);height:var(--photo-size);border-radius:var(--photo-radius);object-fit:cover;box-shadow:0 0 0 1px var(--rule)}.name{margin:0;font-family:var(--font-serif);font-size:var(--fs-name);font-weight:700;letter-spacing:-.01em;color:var(--ink)}.subtitle{margin:var(--space-1) 0 0;font-size:var(--fs-meta);color:var(--muted)}.bio{margin:var(--space-2) 0 0;max-width:52ch;color:var(--text)}.bio-link{color:var(--link)}.bio-link:hover{color:var(--link-hover);text-decoration:underline}.link-row{display:flex;justify-content:center;gap:18px;margin-top:22px}.icon-link{font-size:20px;line-height:1;color:var(--muted)}.icon-link:hover{color:var(--link);text-decoration:none}.section{margin-top:var(--space-section)}.section-title{margin:0 0 var(--space-4);padding-bottom:10px;border-bottom:1px solid var(--rule);font-family:var(--font-serif);font-size:var(--fs-section);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.entry{margin:0;padding:var(--hover-pad);margin-inline:calc(-1 * var(--hover-pad));border-radius:6px;transition:background var(--ease)}.entry+.entry{margin-top:calc(var(--space-entry) - var(--hover-pad))}.entry:hover{background:var(--accent-hl)}.entry-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px}.entry-title{margin:0;font-family:var(--font-serif);font-size:var(--fs-entry-title);font-weight:700;color:var(--ink)}.entry-title a{color:var(--ink)}.entry-title a:hover{color:var(--link)}.entry-period{margin-left:auto;font-size:var(--fs-meta);color:var(--muted)}.entry-meta{margin-top:2px;font-size:var(--fs-meta);color:var(--text)}.entry-venue{font-style:italic;color:var(--muted)}.entry-sub{margin-top:2px;font-size:var(--fs-meta);color:var(--muted)}.tech-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-2)}.tech-tag{padding:2px 8px;font-size:var(--fs-tag);font-weight:500;white-space:nowrap;color:var(--tag-ink);background:var(--tag-bg);border:1px solid var(--tag-border);border-radius:var(--radius-tag)}.entry-desc{margin:var(--space-2) 0 0;padding-left:18px;font-size:var(--fs-desc);line-height:1.55;color:var(--text)}.entry-desc li{margin-top:var(--space-1)}.entry-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--space-2);font-size:13px}.entry-link{color:var(--link)}.entry-link:before{content:"[";margin-right:4px;color:var(--muted)}.entry-link:after{content:"]";margin-left:4px;color:var(--muted)}.entry-link:hover{color:var(--link-hover);text-decoration:underline}.status-badge{padding:2px 9px;font-size:var(--fs-badge);font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-badge)}.status-ongoing{color:var(--badge-ongoing-ink);background:var(--badge-ongoing-bg)}.status-completed{color:var(--badge-done-ink);background:var(--badge-done-bg)}.skills-grid{display:grid;grid-template-columns:max-content 1fr;row-gap:10px;column-gap:20px}.skills-cat{font-weight:600;color:var(--ink)}.skills-items{color:var(--text)}@media(max-width:700px){.site{padding:32px 18px 56px}.header{grid-template-columns:1fr;justify-items:center;text-align:center;row-gap:16px}.bio{max-width:none}.entry-head{gap:6px}.entry-period{margin-left:0}.skills-grid{grid-template-columns:1fr;row-gap:4px}.skills-cat{margin-top:var(--space-2)}}@media(max-width:420px){.name{font-size:26px}.profile-photo{width:120px;height:120px}}.made-with{position:fixed;top:14px;right:16px;z-index:10;padding:5px 11px;font-size:12px;color:var(--muted);background:var(--chip-bg);border:1px solid var(--rule);border-radius:var(--radius-badge);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.made-with strong{font-weight:600;color:var(--ink)}@media(max-width:700px){.made-with{top:10px;right:10px;padding:4px 9px;font-size:11px}}
