:root{color:#292d32;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#20272b;--muted:#686e72;--accent:#315b54;--rule:#dfe2df;background:#fafaf8;font-family:Pretendard,Noto Sans KR,Malgun Gothic,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{letter-spacing:-.025em;word-break:keep-all;overflow-wrap:anywhere;min-width:280px;margin:0;font-size:14px;line-height:1.85}a{color:inherit;text-underline-offset:4px;text-decoration:none}a:hover{color:var(--accent);text-decoration:underline}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:2px}::selection{color:#172d27;background:#dce7df}p,h1,h2,h3,h4,dl,dd{margin:0}strong{color:var(--ink);font-weight:650}[hidden]{display:none!important}.document-bar{border-bottom:1px solid var(--rule);align-items:center;gap:22px;width:min(1040px,100% - 96px);height:94px;margin:0 auto;display:flex}.wordmark{letter-spacing:-2px;font-family:Georgia,Times New Roman,serif;font-size:27px;font-weight:700;line-height:1}.wordmark span{color:var(--accent)}.wordmark:hover{text-decoration:none}.document-label{color:var(--muted);letter-spacing:.18em;font-size:10px}.print-button{color:#535d58;cursor:pointer;background:0 0;border:1px solid #d5d9d4;border-radius:4px;align-items:center;gap:8px;margin-left:auto;padding:8px 12px;font-size:11px;display:inline-flex}.print-button:hover{background:#edf0eb;border-color:#adbcb2}.print-button:disabled{cursor:wait;opacity:.65}.print-status{color:#80522d;width:min(960px,100% - 48px);margin:12px auto 0;font-size:12px}.cv-document{width:min(960px,100% - 128px);margin:0 auto}.profile-header{grid-template-columns:128px minmax(0,1fr);grid-template-areas:"portrait identity""portrait contact""intro intro";column-gap:32px;padding:64px 0 39px;display:grid}.profile-photo,.profile-details{display:contents}.identity{grid-area:identity;min-width:0}.profile-portrait{object-fit:cover;object-position:center 20%;border:1px solid var(--rule);border-radius:50%;grid-area:portrait;align-self:start;width:128px;height:128px;display:block}.eyebrow{letter-spacing:.18em;color:var(--accent);margin-bottom:16px;font-size:10px;font-weight:600}h1{letter-spacing:-.07em;color:var(--ink);font-size:52px;font-weight:720;line-height:1.25}.name-dot{color:var(--accent);padding-left:3px}.english-name{letter-spacing:.015em;color:var(--muted);margin-top:9px;font-size:17px;font-weight:400}.contact-list{letter-spacing:0;grid-area:contact;place-self:start;margin-top:17px;padding-bottom:3px;font-size:12px}.contact-list>div{grid-template-columns:52px 1fr;gap:16px;margin-top:7px;display:grid}.contact-list dt{color:var(--muted);font-size:10px}.contact-list a{text-decoration-color:#b1bfb9}.contact-list a span{color:var(--accent);margin-left:5px;font-size:14px}.introduction{color:#62686a;grid-area:intro;max-width:750px;margin-top:37px;line-height:1.95}.intro-lead{color:var(--ink);letter-spacing:-.04em;margin-bottom:10px;font-size:18px;font-weight:600}.section-nav{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);color:#636b67;flex-wrap:wrap;gap:4px 28px;padding:14px 0;font-size:11px;display:flex}.section-nav a{padding:3px 0}.cv-section{border-bottom:1px solid var(--rule);grid-template-columns:159px minmax(0,1fr);gap:36px;padding:40px 0;display:grid}.section-number{font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:.05em;margin-bottom:7px;font-size:10px;display:block}.section-heading h2{color:var(--ink);letter-spacing:-.04em;font-size:19px;font-weight:650;line-height:1.5}.section-heading>p{color:var(--muted);letter-spacing:.015em;margin-top:5px;font-size:10px}.section-body{min-width:0;padding-top:1px}h3,h4{color:var(--ink);letter-spacing:-.025em;font-size:16px;font-weight:650;line-height:1.7}.entry-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:5px 16px;display:flex}.period{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:0;white-space:nowrap;font-size:11px;font-weight:400}.period:empty{display:none}.inline-role{color:var(--muted);letter-spacing:-.02em;margin-left:9px;font-size:11px;font-weight:400;display:inline-block}.entry-subtitle{color:var(--muted);margin-top:4px;font-size:12px}.education-entry{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.education-entry+.education-entry{margin-top:25px}.education-entry .entry-subtitle{margin-top:2px}.entry+.entry{border-top:1px solid #e9ebe6;margin-top:29px;padding-top:26px}.contributions{color:#4d5457;margin:11px 0 10px;padding-left:16px;font-size:13px}.contributions li{margin-top:4px;padding-left:2px}.contributions li::marker{color:#9ba8a0;font-size:9px}.stack{color:#6d756f;letter-spacing:.015em;font-size:10px;line-height:1.9}.entry-bottom{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;display:flex}.entry-links{gap:15px;display:flex}.source-link{color:var(--accent);white-space:nowrap;letter-spacing:.02em;font-size:10px;-webkit-text-decoration:underline #c4cfc6;text-decoration:underline #c4cfc6}.source-link span{padding-left:3px}.section-context{color:var(--muted);border-left:2px solid #b7c8bc;margin-bottom:27px;padding-left:15px;font-size:12px;line-height:1.9}.related-work{border-top:1px solid #e9ebe6;margin-top:28px;padding-top:24px}.group-label{color:var(--accent);letter-spacing:.05em;margin-bottom:15px;font-size:10px;font-weight:600}.compact-entry+.compact-entry{margin-top:20px}.compact-entry h4{font-size:13px}.compact-entry>p:not(.stack){color:#555d5d;margin:5px 0;font-size:12px}.group-title{font-size:17px}.group-description{color:var(--muted);margin:8px 0 22px;font-size:12px}.grouped-entry+.grouped-entry{border-top:0;margin-top:24px;padding-top:0}.project-group+.entry,.entry+.project-group{border-top:1px solid #e9ebe6;margin-top:29px;padding-top:26px}.skills-list>div{grid-template-columns:140px minmax(0,1fr);gap:18px;font-size:12px;display:grid}.skills-list>div+div{margin-top:13px}.skills-list dt{color:var(--accent);letter-spacing:.005em;font-size:11px;font-weight:550}.skills-list dd{color:#50595a;letter-spacing:.005em}.activity-entry>p:not(.period){color:#5d6464;margin-top:6px;font-size:12px}.activity-entry+.activity-entry{border-top:0;margin-top:23px;padding-top:0}.language-list{border-top:1px solid #e9ebe6;flex-wrap:wrap;gap:18px 48px;margin-top:25px;padding-top:22px;display:flex}.language-list>div{align-items:baseline;gap:18px;display:flex}.language-list dt{color:var(--muted);font-size:11px}.language-list dd{letter-spacing:.01em;font-size:12px}.language-list strong{margin-left:6px}.language-list .period:not(:empty){margin-left:12px}.document-footer{color:var(--muted);letter-spacing:.01em;justify-content:space-between;gap:20px;padding:24px 0 50px;font-size:10px;display:flex}.document-footer p span{color:#b6bcb5;margin:0 8px}.document-footer a{color:var(--accent)}.document-footer a span{margin-left:7px}.sr-only,.skip-link:not(:focus){clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{z-index:10;background:#fff;padding:10px 16px;position:fixed;top:12px;left:12px}@media screen and (width>=1100px){.profile-header{grid-template-columns:128px 240px minmax(0,1fr);grid-template-areas:"portrait identity intro""portrait contact intro"}.introduction{align-self:center;min-width:0;max-width:none;margin-top:0}.intro-lead{text-wrap:balance;line-height:1.65}.introduction .desktop-break{display:none}}@media (width>=1400px){.document-bar{width:1100px}.cv-document{width:1000px}.cv-section{grid-template-columns:169px minmax(0,1fr);gap:42px}}@media (width<=760px){.document-bar{gap:15px;width:calc(100% - 48px);height:76px}.cv-document{width:calc(100% - 48px)}.profile-header{grid-template-columns:112px minmax(0,1fr);column-gap:22px;padding:40px 0 30px}.profile-portrait{width:112px;height:112px}h1{font-size:44px}.contact-list{font-size:11px}.contact-list>div{grid-template-columns:40px 1fr;gap:10px}.introduction{margin-top:30px}.intro-lead{font-size:17px}.desktop-break{display:none}.section-nav{gap:3px 22px}.cv-section{grid-template-columns:120px minmax(0,1fr);gap:24px;padding:32px 0}.section-heading h2{font-size:18px}.education-entry{flex-direction:column;gap:5px}.skills-list>div{grid-template-columns:1fr;gap:2px}}@media (width<=540px){body{font-size:13px}.document-label{letter-spacing:.13em;font-size:8px}.document-bar{gap:13px}.wordmark{font-size:24px}.print-button{gap:5px;padding:7px 8px;font-size:10px}.print-button svg{width:13px}.profile-header{grid-template-columns:84px minmax(0,1fr);grid-template-areas:"portrait identity""contact contact""intro intro";column-gap:16px}.profile-portrait{width:84px;height:84px}.eyebrow{margin-bottom:14px;font-size:9px}.english-name{font-size:15px}.contact-list{margin-top:23px}.contact-list>div{grid-template-columns:46px 1fr}.introduction{margin-top:26px}.intro-lead{margin-bottom:12px;font-size:16px;line-height:1.75}.section-nav{column-gap:19px;padding:10px 0;font-size:10px}.cv-section{padding:30px 0;display:block}.section-heading{flex-wrap:wrap;align-items:baseline;gap:0 10px;margin-bottom:25px;display:flex}.section-number{margin:0}.section-heading h2{font-size:18px}.section-heading>p{margin:0 0 0 auto;font-size:9px}.education-entry{flex-flow:wrap;column-gap:15px}.education-entry .period{font-size:10px}h3,h4{font-size:15px}.inline-role{margin-left:5px;font-size:10px}.contributions{font-size:12px;line-height:1.9}.entry-subtitle{font-size:11px}.stack{font-size:9px}.skills-list>div{grid-template-columns:115px minmax(0,1fr);gap:10px}.skills-list dd{font-size:11px}.language-list{column-gap:28px}.document-footer{padding-bottom:30px;font-size:9px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@page{size:A4;margin:15mm 16mm 17mm;@bottom-left{content:"양진혁 · CV";font-family:Malgun Gothic,sans-serif;font-size:7pt;color:#686e72}@bottom-right{content:counter(page) " / " counter(pages);font-family:sans-serif;font-size:7pt;color:#686e72}}@media print{:root{color:#222;background:#fff}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;min-width:0;font-size:9pt;line-height:1.6}html{scroll-behavior:auto}.document-bar,.section-nav,.skip-link,.document-footer,.print-status{display:none!important}.cv-document{width:100%;margin:0}.profile-header{table-layout:fixed;break-inside:avoid;border-bottom:1px solid #ccc;width:100%;padding:0 0 16pt;display:table}.profile-photo,.profile-details{vertical-align:top;padding-right:6mm;display:table-cell}.profile-photo{width:30mm}.profile-details{width:58mm}.profile-portrait{width:24mm;height:24mm}.eyebrow{margin-bottom:8pt;font-size:7pt}h1{font-size:30pt;font-weight:700}.english-name{margin-top:4pt;font-size:11pt}.contact-list{margin-top:8pt;font-size:8pt}.contact-list dt{font-size:7pt}.contact-list>div{grid-template-columns:35pt 1fr;gap:8pt}.introduction{vertical-align:middle;min-width:0;margin-top:0;font-size:8.5pt;line-height:1.7;display:table-cell}.intro-lead{text-wrap:balance;margin-bottom:6pt;font-size:10pt;line-height:1.6}.desktop-break{display:none}.cv-section{border-color:#ccc;padding:17pt 0;display:block}.section-heading{break-after:avoid;margin-bottom:13pt;display:block}.section-number{margin:0 8pt 0 0;font-size:7pt;display:inline-block}.section-heading h2{white-space:nowrap;font-size:12pt;font-weight:600;display:inline-block}.section-heading>p{margin:0 0 0 8pt;font-size:7pt;display:inline-block}.section-body{padding:0}h3,h4,.group-title{font-size:10pt;font-weight:600}strong{font-weight:600}.inline-role,.entry-subtitle,.period{font-size:8pt}.entry-heading,.education-entry{width:100%;display:table}.entry-heading>h3,.entry-heading>h4,.education-entry>div{vertical-align:baseline;display:table-cell}.entry-heading>.period,.education-entry>.period{text-align:right;vertical-align:baseline;width:34mm;padding-left:8pt;display:table-cell}.inline-role{white-space:nowrap;display:inline}.education-entry+.education-entry{margin-top:11pt}.entry,.compact-entry,.education-entry,.skills-list>div,.language-list{break-inside:avoid;page-break-inside:avoid}.project-group{break-inside:auto}:is(.entry-bottom:has(+.cv-media),.stack:has(+.cv-media)){break-after:avoid}.entry+.entry,.project-group+.entry,.entry+.project-group{margin-top:14pt;padding-top:12pt}.contributions{margin:6pt 0;font-size:8.5pt;line-height:1.65}.contributions li{margin-top:2pt}.stack,.source-link{font-size:7pt}.section-context,.group-description{margin-bottom:12pt;font-size:8.5pt}.section-context,.entry-heading,.entry-subtitle,.group-description,.group-label{break-after:avoid}.related-work{margin-top:14pt;padding-top:12pt}.compact-entry+.compact-entry{margin-top:10pt}.compact-entry h4{font-size:9pt}.compact-entry>p:not(.stack){font-size:8.5pt}.group-label{margin-bottom:9pt;font-size:8pt}.grouped-entry+.grouped-entry{margin-top:12pt;padding-top:0}.skills-list>div{grid-template-columns:105pt minmax(0,1fr);gap:8pt}.skills-list>div+div{margin-top:6pt}.skills-list dt,.skills-list dd,.activity-entry>p:not(.period){font-size:8.5pt}.activity-entry+.activity-entry{margin-top:12pt;padding-top:0}#activities .section-body{break-inside:avoid}.language-list{margin-top:12pt;padding-top:10pt;display:block}.language-list>div{margin-right:20pt;display:inline-block}.language-list dt,.language-list dd{display:inline}.language-list dd{margin-left:10pt}.language-list dt,.language-list dd{font-size:8.5pt}.document-footer{padding:12pt 0 0;font-size:7pt}p,li{orphans:2;widows:2}a{color:inherit;text-decoration:none}}.cv-media{margin-top:18px}.cv-media-heading{color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;font-size:10px;display:flex}.cv-media-heading strong{color:var(--accent);font-size:11px;font-weight:550}.cv-media-heading strong span{color:var(--muted);margin-left:7px;font-size:10px;font-weight:400}.cv-media-track{scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#c3ccc5 transparent;grid-auto-columns:max-content;grid-auto-flow:column;align-items:start;gap:12px;padding:3px 3px 9px;display:grid;overflow-x:auto}.cv-media-card{width:var(--photo-width);scroll-snap-align:start;min-width:0;max-width:min(360px,70vw);display:block}.cv-media-card:hover{text-decoration:none}.cv-media-image{display:block}.cv-media-image picture{width:100%;display:block}.cv-media-image img{width:100%;height:auto;display:block}.cv-media-caption{padding:5px 0 0;font-size:10px;line-height:1.65;display:block}.cv-media-kind{color:var(--accent);flex:none;font-size:9px}.cv-photo-open{overflow:hidden}.cv-photo-dialog{width:min(1100px,100% - 32px);max-width:none;height:min(860px,100dvh - 32px);max-height:none;color:var(--ink);background:var(--background,#fafaf8);border:1px solid #d5dcd6;border-radius:8px;margin:auto;padding:0;overflow:hidden}.cv-photo-dialog::backdrop{background:#141d18bf}.cv-photo-panel{grid-template-rows:auto minmax(0,1fr) auto auto;height:100%;display:grid}.cv-photo-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:20px;padding:16px 22px;display:flex}.cv-photo-project{color:var(--accent);margin-bottom:2px;font-size:10px}.cv-photo-title{font-size:17px;font-weight:600;line-height:1.5}.cv-photo-dialog button{color:var(--ink);cursor:pointer;background:#fff;border:1px solid #d3dcd4;border-radius:4px;flex:none;padding:8px 12px;font-size:12px}.cv-photo-dialog button:hover{background:#e8eee8}.cv-photo-dialog button:disabled{opacity:.35;cursor:default}.cv-photo-close{min-width:44px;min-height:44px}.cv-photo-figure{grid-template-rows:minmax(0,1fr) auto;min-height:0;margin:0;display:grid}.cv-photo-stage{touch-action:pan-y pinch-zoom;background:#edf0eb;min-height:0;padding:16px;position:relative}.cv-photo-stage img{object-fit:contain;width:100%;height:100%;display:block}.cv-photo-stage img.is-loading{opacity:0}.cv-photo-status{text-align:center;color:var(--muted);place-content:center;padding:24px;font-size:12px;display:grid;position:absolute;inset:0}.cv-photo-caption{padding:12px 22px 0;font-size:12px;line-height:1.7}.cv-photo-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 22px;display:flex}.cv-photo-pagination,.cv-photo-actions{align-items:center;gap:10px;display:flex}.cv-photo-counter{text-align:center;min-width:46px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.cv-photo-original{color:var(--accent);font-size:11px;text-decoration:underline}.cv-photo-thumbnails{border-top:1px solid var(--rule);scrollbar-width:thin;gap:8px;padding:8px 22px 14px;display:flex;overflow-x:auto}.cv-photo-thumbnails button{width:64px;height:52px;padding:3px}.cv-photo-thumbnails button[aria-current=true]{border:2px solid var(--accent);background:#e8eee8}.cv-photo-thumbnails img{object-fit:contain;width:100%;height:100%;display:block}@media (width<=540px){.cv-photo-dialog{width:calc(100% - 16px);height:calc(100dvh - 16px)}.cv-photo-header{gap:10px;padding:12px}.cv-photo-title{font-size:14px}.cv-photo-stage{padding:8px}.cv-photo-caption{padding:10px 12px 0;font-size:11px}.cv-photo-controls{padding:10px 12px}.cv-photo-thumbnails{padding:8px 12px 12px}}@media (height<=500px){.cv-photo-header{padding:8px 12px}.cv-photo-caption{padding-top:6px}.cv-photo-controls{padding:6px 12px}.cv-photo-thumbnails{display:none}}@media print{.cv-photo-dialog{display:none!important}.cv-photo-dialog::backdrop{display:none}.cv-photo-open{overflow:visible}.cv-media{break-inside:auto;margin-top:9pt;display:block}.cv-media-heading{break-after:avoid;margin-bottom:5pt;display:block}.cv-media-heading strong{font-size:8pt;font-weight:600}.cv-media-heading strong span{font-size:7pt}.cv-media-heading>span{display:none}.cv-media-track{scroll-snap-type:none;orphans:1;widows:1;padding:0;font-size:0;display:block;overflow:visible}.cv-media-card{vertical-align:top;width:var(--print-photo-width);break-inside:avoid;page-break-inside:avoid;max-width:100%;margin:0 3mm 7pt 0;display:inline-block}.cv-media-card:last-child{margin-right:0}.cv-media[data-photo-count="1"] .cv-media-card{width:112mm;max-width:100%;margin-right:0}.cv-media-image img{width:100%;height:auto}.cv-media-caption{padding:3pt 0 0;font-size:7pt;line-height:1.5}.cv-media-kind{float:none;white-space:nowrap;font-size:0;display:block}.cv-media-kind:after{content:"시연 화면";font-size:6.5pt}}
