:root{--bg:#fcfcfb;--text:#191918;--text-body:#4a4843;--text-muted:#6e6b65;--text-subtle:#8a867f;--text-faint:#a5a19a;--nav-link:#78756f;--border:#e8e6e1;--border-soft:#f0eee9;--border-pill:#e4e2dc;--border-hover:#cfccc4;--surface:#fff;--surface-hover:#f8f7f4;--chip-bg:#f2f1ed;--cover-bg:#edebe6;--accent:#2f6f5b;--accent-hover:#1e4c3e;--accent-bg:#e7efea;--selection:#dce8e2;--sans:"IBM Plex Sans KR", system-ui, sans-serif;--mono:"IBM Plex Mono", monospace}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-underline-offset:3px;text-decoration:underline}::selection{background:var(--selection)}.page{background:var(--bg);min-height:100vh;padding-bottom:120px}.mono{font-family:var(--mono)}.nav{z-index:20;-webkit-backdrop-filter:blur(10px);background:#fcfcfbdb;border-bottom:1px solid #edebe6;position:sticky;top:0}.nav-inner{flex-wrap:wrap;align-items:center;gap:20px;max-width:940px;margin:0 auto;padding:11px 28px;display:flex}.nav-name{letter-spacing:-.01em;font-size:14px;font-weight:600}.nav-name-en{color:var(--text-faint);font-weight:400}.nav-links{font-size:12.5px;font-family:var(--mono);flex-wrap:wrap;gap:16px;margin-left:auto;display:flex}.nav-links a{color:var(--nav-link)}.nav-links a:hover{color:var(--text)}.cover{background:var(--cover-bg);height:220px;overflow:hidden}.cover img{object-fit:cover;object-position:50% 62%;width:100%;height:100%;display:block}.container{max-width:940px;margin:0 auto;padding:0 28px}.profile{margin-top:-46px;position:relative}.avatar{object-fit:cover;background:var(--bg);width:88px;height:88px;box-shadow:0 0 0 5px var(--bg);border-radius:50%;display:block}.name{letter-spacing:-.03em;margin:22px 0 0;font-size:44px;font-weight:700;line-height:1.1}.intro{color:var(--text-body);text-wrap:pretty;max-width:620px;margin:12px 0 0;font-size:17px;line-height:1.6}.intro strong{font-weight:600}.pills{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.pill{border:1px solid var(--border-pill);color:var(--text-body);background:var(--surface);border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-size:13px;display:inline-flex}.pill:hover{border-color:var(--text);color:var(--text)}.pill-handle{font-family:var(--mono);color:var(--text-faint)}.section{margin-top:56px;scroll-margin-top:70px}.section-first{margin-top:64px}.section-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding-bottom:14px;display:flex}.section-icon{font-size:19px}.section-title{letter-spacing:.09em;font-size:15px;font-weight:600;font-family:var(--mono);color:var(--text);margin:0}.row{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;gap:10px 24px;padding:20px 4px;display:flex}.row:last-child{border-bottom:none}.row-date{font-family:var(--mono);color:var(--text-subtle);flex:0 0 150px;padding-top:3px;font-size:13px}.row-body{flex:320px;min-width:0}.row-title{letter-spacing:-.01em;font-size:17px;font-weight:600}.slash{color:var(--text-faint);font-weight:400}.row-detail{color:var(--text-muted);margin-top:5px;font-size:14.5px;line-height:1.55}.row-work{border-radius:4px}.row-work:hover{background:var(--surface-hover)}.row-work .row-date{padding-top:4px}.work-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:7px;display:flex}.role-badge{background:var(--accent-bg);color:var(--accent);border-radius:5px;padding:4px 10px;font-size:12.5px;font-weight:500}.work-summary{color:var(--text-muted);font-size:14.5px}.skill-row{flex-wrap:wrap;gap:10px 24px;padding:14px 4px 4px;display:flex}.section-header+.skill-row{padding:22px 4px 8px}.skill-row .row-date{padding-top:5px}.chips{flex-wrap:wrap;flex:320px;gap:8px;display:flex}.chip{background:var(--chip-bg);font-size:13.5px;font-weight:500;font-family:var(--mono);border-radius:6px;padding:6px 12px}.card{border:1px solid var(--border);background:var(--surface);border-radius:10px}.card:hover{border-color:var(--border-hover)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:22px;display:grid}.project-card{padding:18px 18px 16px}.project-card:hover{box-shadow:0 2px 10px #0000000a}.project-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.project-tag{letter-spacing:.08em;font-size:11.5px;font-weight:500;font-family:var(--mono);color:var(--accent)}.project-period{font-family:var(--mono);color:var(--text-faint);font-size:11.5px}.project-title{letter-spacing:-.01em;text-wrap:pretty;margin-top:12px;font-size:16.5px;font-weight:600;line-height:1.35}.project-desc{color:var(--text-muted);margin-top:8px;font-size:13.5px;line-height:1.55}.project-role{color:var(--text-subtle);font-size:12.5px;font-family:var(--mono);margin-top:12px}.row-award{padding:18px 4px}.row-award .award-year{flex:0 0 74px}.award-title{font-size:16px;line-height:1.5}.award-title strong{font-weight:600}.award-detail{color:var(--text-muted);margin-top:5px;font-size:14px;line-height:1.55}.award-links{font-size:13px;font-family:var(--mono);flex-wrap:wrap;gap:14px;margin-top:7px;display:flex}.row-experience{padding:16px 4px}.row-experience .row-date{padding-top:2px}.experience-body{flex:300px;min-width:0;font-size:15.5px;line-height:1.5}.experience-note{color:var(--text-subtle)}.contact-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:22px;display:grid}.contact-card{color:var(--text);padding:16px 18px;display:block}.contact-card:hover{color:var(--text);text-decoration:none}.contact-label{letter-spacing:.08em;font-size:11.5px;font-family:var(--mono);color:var(--text-subtle)}.contact-value{margin-top:7px;font-size:15.5px;font-weight:500}.footer-note{color:var(--text-faint);font-size:13px;font-family:var(--mono);margin:28px 0 0}
