:root{--resume-bg:#fff;--resume-text:#1f2328;--resume-muted:#656d76;--resume-accent:#1f7fe0;--resume-accent-strong:#1a6fc9;--resume-line:#e8ebee;--resume-line-soft:#f0f2f4;--resume-marker:#b9c0c8;--resume-surface:#fafbfc;--chip-bg:#edf0f3;--chip-border:#d8dde3;--chip-text:#343c47;--chip-bg-hover:#e4e8ed;--chip-border-hover:#c9d0d8;--chip-marker:#b9c0c8;--chip-level:#8a929c;--badge-bg:#eef1f5;--badge-text:#5b6470;--avatar-ring:rgba(0,0,0,0.12);--avatar-shadow:rgba(0,0,0,0.06);--control-shadow:0 1px 2px rgba(0,0,0,0.04),0 8px 24px rgba(0,0,0,0.08)}html[data-theme=dark]{--resume-bg:#16181c;--resume-text:#e6e8ea;--resume-muted:#9aa3ad;--resume-accent:#5aa9f8;--resume-accent-strong:#5aa9f8;--resume-line:#2b3037;--resume-line-soft:#23282e;--resume-marker:#5f6873;--resume-surface:#1b1f24;--chip-bg:#272d35;--chip-border:#3e4650;--chip-text:#e0e5ea;--chip-bg-hover:#303740;--chip-border-hover:#4a535d;--chip-marker:#6b7583;--chip-level:#9aa3ad;--badge-bg:#2a3038;--badge-text:#b9c0c8;--avatar-ring:hsla(0,0%,100%,0.18);--avatar-shadow:rgba(0,0,0,0.4);--control-shadow:0 1px 2px rgba(0,0,0,0.3),0 8px 24px rgba(0,0,0,0.45)}body,html{background-color:var(--resume-bg)}.container h2{scroll-margin-top:1.5rem}@media (prefers-reduced-motion:reduce){*,:after,:before{-webkit-animation-duration:.01ms!important;-moz-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;-moz-animation-iteration-count:1!important;animation-iteration-count:1!important;-webkit-transition-duration:.01ms!important;-moz-transition-duration:.01ms!important;transition-duration:.01ms!important}}body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,sans-serif;color:var(--resume-text);font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased}:root{--resume-rail:150px;--resume-rail-gap:24px}@media (min-width:992px){.container{max-width:960px}}a{overflow-wrap:anywhere}h1{font-size:2.1rem;font-weight:700;letter-spacing:-.02em;line-height:1.25;color:var(--resume-text)}h1 .resume-handle{font-size:.6em}.resume-tagline,h1 .resume-handle{font-weight:500;color:var(--resume-muted)}.resume-tagline{margin:.35rem 0 0;font-size:1.08rem;line-height:1.5}.resume-section-head{position:relative;display:-moz-box;display:flex;-moz-box-align:baseline;align-items:baseline;-moz-box-pack:justify;justify-content:space-between;grid-gap:12px;gap:12px;padding-bottom:.5rem;margin-bottom:1.25rem;border-bottom:1px solid var(--resume-line)}.resume-section-head:after{content:"";position:absolute;left:0;bottom:-1px;width:36px;height:2px;background:var(--resume-accent)}.resume-section-head h2{margin:0;font-size:1.55rem;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--resume-text)}.resume-section-aside{display:-moz-inline-box;display:inline-flex;-moz-box-align:baseline;align-items:baseline;grid-gap:8px;gap:8px;-moz-box-flex:0;flex:0 0 auto;color:var(--resume-muted);font-size:.8rem;-webkit-font-feature-settings:"tnum";-moz-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums}h3{font-size:1.12rem;font-weight:600;line-height:1.45;letter-spacing:-.01em;margin:0;color:var(--resume-text)}.resume-subtitle{font-size:.94rem;color:var(--resume-muted)}.resume-row{display:grid;grid-template-columns:var(--resume-rail) minmax(0,1fr);grid-column-gap:var(--resume-rail-gap);-webkit-column-gap:var(--resume-rail-gap);-moz-column-gap:var(--resume-rail-gap);column-gap:var(--resume-rail-gap);grid-row-gap:.5rem;row-gap:.5rem;-moz-box-align:start;align-items:start}.resume-row>*{grid-column:2;min-width:0}.resume-row>.resume-row-head{display:contents}.resume-row-heading{grid-column:2;grid-row:1;display:-moz-box;display:flex;-moz-box-align:baseline;align-items:baseline;flex-wrap:wrap;grid-gap:4px 10px;gap:4px 10px;min-width:0}.resume-row-period{grid-column:1;grid-row:1;-moz-box-align:end;align-items:flex-end;grid-gap:3px;gap:3px;padding-top:.2em;text-align:right;color:var(--resume-muted);font-size:.94rem;font-weight:500;line-height:1.45;-webkit-font-feature-settings:"tnum";-moz-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.resume-row-period,.resume-row .resume-row{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.resume-row .resume-row{grid-gap:.5rem;gap:.5rem}.resume-row .resume-row>.resume-row-head{display:-moz-box;display:flex;-moz-box-align:baseline;align-items:baseline;-moz-box-pack:justify;justify-content:space-between;grid-gap:8px 16px;gap:8px 16px}.resume-row .resume-row .resume-row-period{-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;padding-top:0}.resume-row-period .resume-present{color:inherit;font-weight:inherit}.container .badge{font-weight:500;font-size:.72rem;padding:.25em .5em;vertical-align:.1em;line-height:1.5}.container .badge-info,.container .badge-light,.container .badge-primary,.container .badge-secondary{background-color:var(--badge-bg);color:var(--badge-text)}.resume-hero{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"avatar name" "avatar contacts";grid-column-gap:28px;-webkit-column-gap:28px;-moz-column-gap:28px;column-gap:28px;grid-row-gap:14px;row-gap:14px;-moz-box-align:start;align-items:start}.resume-hero .resume-avatar{grid-area:avatar}.resume-hero-name{grid-area:name;padding-top:4px}.resume-contacts{grid-area:contacts;display:-moz-box;display:flex;flex-wrap:wrap;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.container ul.resume-contacts{padding-left:0;margin-bottom:0;list-style:none}.container ul.resume-contacts>li{padding-left:0;margin:0;line-height:1}.resume-contact{display:-moz-inline-box;display:inline-flex;-moz-box-align:center;align-items:center;grid-gap:7px;gap:7px;padding:6px 12px 6px 10px;border:1px solid var(--chip-border);border-radius:999px;color:var(--resume-text);font-size:.84rem;font-weight:500;line-height:1;text-decoration:none;-webkit-transition:border-color .15s ease,color .15s ease;-moz-transition:border-color .15s ease,color .15s ease;transition:border-color .15s ease,color .15s ease}.resume-contact .svg-inline--fa{width:.95em;height:.95em;color:var(--resume-muted)}a.resume-contact:focus-visible,a.resume-contact:hover{color:var(--resume-accent-strong);border-color:var(--resume-accent);text-decoration:none}a.resume-contact:hover .svg-inline--fa{color:var(--resume-accent-strong)}.resume-avatar{width:112px;height:112px;object-fit:cover;border-radius:50%;background:var(--resume-line);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid var(--avatar-ring);-webkit-box-shadow:0 1px 3px var(--avatar-shadow);box-shadow:0 1px 3px var(--avatar-shadow)}.resume-introduce{margin-left:calc(var(--resume-rail) + var(--resume-rail-gap))}.resume-introduce p:last-child{margin-bottom:0}.resume-chip-logo{color:var(--tech-chip-logo-light)}html[data-theme=dark] .resume-chip-logo{color:var(--tech-chip-logo-dark)}.resume-chip-hidden{display:none!important}.resume-chip-more{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:-moz-inline-box;display:inline-flex;-moz-box-align:center;align-items:center;padding:.06em .55em;border-radius:5px;border:1px dashed var(--chip-border-hover);background:transparent;color:var(--resume-muted);font:inherit;font-size:.665rem;font-weight:600;line-height:1.65;cursor:pointer;-webkit-transition:color .15s ease,border-color .15s ease;-moz-transition:color .15s ease,border-color .15s ease;transition:color .15s ease,border-color .15s ease}.resume-chip-more:focus-visible,.resume-chip-more:hover{color:var(--resume-accent-strong);border-color:var(--resume-accent);outline:none}.resume-skill-grid{--chip-bg:#3b434e;--chip-border:#3b434e;--chip-text:#fff;--chip-bg-hover:#48515c;--chip-border-hover:#48515c;--chip-marker:#c3cad2;--chip-level:#d5dbe1}.resume-skill-grid .resume-chip-logo{color:var(--tech-chip-logo-dark)}html[data-theme=dark] .resume-skill-grid{--chip-bg:#343c46;--chip-border:#444d58;--chip-text:#eef1f4;--chip-bg-hover:#3e4752;--chip-border-hover:#515b67}.resume-skill-grid{display:grid;grid-template-columns:var(--resume-rail) minmax(0,1fr);grid-gap:10px var(--resume-rail-gap);gap:10px var(--resume-rail-gap);-moz-box-align:center;align-items:center}.resume-skill-label{margin:0;color:var(--resume-muted);font-size:.94rem;font-weight:500;text-align:right}.resume-activities{-webkit-column-count:2;-moz-column-count:2;column-count:2;grid-column-gap:56px;-webkit-column-gap:56px;-moz-column-gap:56px;column-gap:56px}.resume-activity-block{-webkit-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid;margin-bottom:28px}.resume-activity-block:last-child{margin-bottom:0}.resume-activity-label{-webkit-column-break-after:avoid;break-after:avoid;page-break-after:avoid;margin:0 0 4px;color:var(--resume-muted);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.container ul.resume-compact{margin:0;padding:0;list-style:none}.container ul.resume-compact>li{-webkit-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid;display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;grid-gap:2px;gap:2px;padding:0;margin:0 0 11px;font-size:.95rem;line-height:1.5}.container ul.resume-compact>li:last-child{margin-bottom:0}.resume-compact-head{display:-moz-box;display:flex;-moz-box-align:baseline;align-items:baseline;-moz-box-pack:justify;justify-content:space-between;grid-gap:16px;gap:16px}.resume-compact-title{font-weight:600;min-width:0}.resume-compact-time{-moz-box-flex:0;flex:0 0 auto;color:var(--resume-muted);font-size:.82rem;-webkit-font-feature-settings:"tnum";-moz-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.resume-compact-sub{color:var(--resume-muted);font-size:.86rem}.container ul.resume-compact-wide{margin-left:calc(var(--resume-rail) + var(--resume-rail-gap))}.container ul.resume-compact-wide>li{margin-bottom:14px;font-size:.97rem}.container ul.resume-compact-wide>li:last-child{margin-bottom:0}.container ul.resume-compact ul{margin:2px 0 0;padding-left:1rem;color:var(--resume-muted);font-size:.84rem}.container ul.resume-compact ul li{line-height:1.5}.container ul{padding-left:1.35rem;margin-bottom:.4rem;list-style-type:"–"}.container ul ul{padding-left:1.05rem;margin-top:.06rem;list-style-type:"◦"}.container li{line-height:1.55;margin-bottom:.06rem;padding-left:.5rem}.container li::marker{color:var(--resume-marker)}.container li.resume-desc-group:not(:first-child){margin-top:.3rem}.container li.resume-desc-group{color:var(--resume-text)}.resume-row .resume-descriptions{margin-top:.15rem}.container hr{margin:1.6rem 0;border-top-color:var(--resume-line)}@media (max-width:767.98px){body{font-size:.95rem;line-height:1.65}h1{font-size:1.6rem}.resume-tagline{font-size:1rem;margin-top:.25rem}.resume-section-head h2{font-size:1.3rem}h3{font-size:1.02rem}.resume-row,.resume-row .resume-row{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;grid-gap:.4rem;gap:.4rem}.resume-row .resume-row>.resume-row-head,.resume-row>.resume-row-head{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:reverse;flex-direction:column-reverse;-moz-box-align:stretch;align-items:stretch;grid-gap:2px;gap:2px}.resume-row-period,.resume-row .resume-row .resume-row-period{-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;flex-wrap:wrap;-moz-box-align:baseline;align-items:baseline;grid-gap:6px;gap:6px;padding-top:0;text-align:left;font-size:.86rem;white-space:normal}.container ul.resume-compact-wide,.resume-introduce{margin-left:0}.resume-hero{grid-template-areas:"avatar name" "contacts contacts";grid-column-gap:14px;-webkit-column-gap:14px;-moz-column-gap:14px;column-gap:14px;-moz-box-align:center;align-items:center}.resume-hero-name{padding-top:0}.resume-avatar{width:64px;height:64px}.resume-skill-grid{grid-template-columns:1fr;grid-gap:6px;gap:6px}.resume-skill-label{font-size:.84rem;font-weight:600;letter-spacing:.01em;text-align:left}.resume-skill-grid>*+.resume-skill-label{margin-top:12px}.resume-activities{-webkit-column-count:1;-moz-column-count:1;column-count:1}.container ul{padding-left:1rem}.container ul ul{padding-left:.85rem}.container hr{margin:1.25rem 0}.container .mt-5{margin-top:2.1rem!important}}@media print{.container,body{min-width:0!important}.container .badge{border:0!important}html[data-theme=dark]{--resume-bg:#fff;--resume-text:#1f2328;--resume-muted:#656d76;--resume-accent:#1f7fe0;--resume-accent-strong:#1a6fc9;--resume-line:#e8ebee;--resume-line-soft:#f0f2f4;--resume-marker:#b9c0c8;--resume-surface:#fafbfc;--chip-bg:#edf0f3;--chip-border:#d8dde3;--chip-text:#343c47;--chip-border-hover:#c9d0d8;--chip-marker:#b9c0c8;--chip-level:#8a929c;--badge-bg:#eef1f5;--badge-text:#5b6470}html[data-theme=dark] .resume-chip-logo{color:var(--tech-chip-logo-light)}*,:after,:before{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.resume-screen-only{display:none!important}.resume-contact{text-decoration:none!important}.resume-chip-hidden{display:-moz-inline-box!important;display:inline-flex!important}.resume-chip-more{display:none!important}.container{max-width:none!important}@page{size:A4;margin:12mm}body{font-size:10.5pt;line-height:1.6}h1{font-size:1.9rem}.resume-tagline{font-size:1rem;margin-top:.3rem}.resume-section-head h2{font-size:1.4rem}h3{font-size:1.05rem}:root{--resume-rail:124px;--resume-rail-gap:18px}.resume-row{display:grid;grid-template-columns:var(--resume-rail) minmax(0,1fr);grid-column-gap:var(--resume-rail-gap);-webkit-column-gap:var(--resume-rail-gap);-moz-column-gap:var(--resume-rail-gap);column-gap:var(--resume-rail-gap);grid-row-gap:.4rem;row-gap:.4rem}.resume-row>.resume-row-head{display:contents}.resume-row .resume-row{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.resume-row .resume-row>.resume-row-head{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:baseline;align-items:baseline;-moz-box-pack:justify;justify-content:space-between}.resume-row-period{-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;-moz-box-align:end;align-items:flex-end;padding-top:.2em;text-align:right;font-size:.84rem;white-space:nowrap}.resume-row .resume-row .resume-row-period{-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;padding-top:0}.resume-introduce{margin-left:calc(var(--resume-rail) + var(--resume-rail-gap))}.resume-hero{grid-template-areas:"avatar name" "avatar contacts";grid-column-gap:24px;-webkit-column-gap:24px;-moz-column-gap:24px;column-gap:24px;-moz-box-align:start;align-items:start}.resume-hero-name{padding-top:4px}.resume-avatar{width:104px;height:104px}.resume-skill-grid{grid-template-columns:var(--resume-rail) minmax(0,1fr);grid-gap:8px var(--resume-rail-gap);gap:8px var(--resume-rail-gap)}.resume-skill-label{font-size:.86rem;font-weight:500;letter-spacing:0;text-align:right}.resume-skill-grid>*+.resume-skill-label{margin-top:0}.resume-activities{-webkit-column-count:2;-moz-column-count:2;column-count:2;grid-column-gap:40px;-webkit-column-gap:40px;-moz-column-gap:40px;column-gap:40px}.container ul{padding-left:1.3rem}.container ul ul{padding-left:1rem}.container hr{margin:1.4rem 0}.container .mt-5{margin-top:2.4rem!important}.container li{-webkit-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.container h2,.container h3,.resume-row-head{-webkit-column-break-after:avoid;break-after:avoid;page-break-after:avoid}.container h2{scroll-margin-top:0}}