@page{size:A4;margin:23mm 25mm 22mm;@bottom-center{content:counter(page) " / " counter(pages);font-family:Pretendard;font-size:8pt;color:#77747c}}:root{--d-text:#1d1c21;--d-text-2:#45434b;--d-text-3:#605d67;--d-rule:#dcd6d4;--d-rule-strong:#2a2830;--d-accent:#23416b;--d-fs:16px;--step:1.2em;--frame-w:820px}html{font-synthesis:none;-webkit-text-size-adjust:100%}body.doc-body{color:var(--d-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;background:#f4f1ef;margin:0}body.doc-body.has-toc{--frame-w:1072px}.doc-toolbar{z-index:10;padding:0 max(16px, calc((100% - var(--frame-w)) / 2));backdrop-filter:blur(10px);border-bottom:1px solid var(--d-rule);box-sizing:border-box;background:oklab(95.9898% .00232553 .00349683/.9);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:8px;height:52px;font-size:14px;display:flex;position:sticky;top:0}.doc-toolbar .group{align-items:center;gap:4px;display:flex}.doc-toolbar a,.doc-toolbar button{white-space:nowrap;font:inherit;color:var(--d-text-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:6px 12px;text-decoration:none}.doc-toolbar a:hover,.doc-toolbar button:hover{color:var(--d-text);border-color:var(--d-rule)}.doc-toolbar .primary{background:var(--d-text);color:#fff}.doc-toolbar .primary:hover{color:#fff;background:var(--d-accent)}.doc-toolbar .short{display:none}.doc-frame{grid-template-columns:minmax(0,820px);justify-content:center;gap:32px;padding:32px 16px 80px;display:grid}.doc-frame.has-toc{grid-template-columns:220px minmax(0,820px)}.doc{box-sizing:border-box;font-size:var(--d-fs);word-break:keep-all;overflow-wrap:break-word;background:#fff;border:1px solid #e6e0dd;border-radius:10px;min-width:0;padding:56px 64px 64px;line-height:1.7}.doc :where(h1,h2,h3,h4,p,ul,ol,dl,dd,figure){margin:0}.doc a{color:var(--d-accent);text-decoration:none}.doc a:hover{text-underline-offset:3px;text-decoration:underline}.doc .muted{color:var(--d-text-3)}.nw{white-space:nowrap}.doc-toc{word-break:keep-all;align-self:start;font-size:13.5px;line-height:1.45;position:sticky;top:76px}.doc-toc p{color:var(--d-text-3);letter-spacing:.02em;margin:0 0 10px;font-size:12.5px;font-weight:700}.doc-toc ol{border-left:1px solid var(--d-rule);gap:2px;margin:0;padding:0;list-style:none;display:grid}.doc-toc a{color:var(--d-text-2);border-left:2px solid #0000;grid-template-columns:1.9em minmax(0,1fr);margin-left:-1px;padding:5px 0 5px 12px;text-decoration:none;display:grid}.doc-toc a>span:last-child,.tech-title h2{text-wrap:balance}.doc-toc .n{color:var(--d-text-3);font-variant-numeric:tabular-nums}.doc-toc a:hover{color:var(--d-text)}.doc-toc a.is-current{color:var(--d-accent);border-left-color:var(--d-accent);font-weight:600}.doc-toc a.is-current .n{color:var(--d-accent)}@media (width<=1180px){body.doc-body.has-toc{--frame-w:820px}.doc-frame.has-toc{grid-template-columns:minmax(0,820px)}.doc-toc{display:none}}.doc-head{border-bottom:1px solid var(--d-rule-strong);padding-bottom:1em}.doc-head h1{letter-spacing:-.01em;font-size:2.1em;font-weight:700;line-height:1.2}.doc-head h1 .alt{color:var(--d-text-3);letter-spacing:0;margin-left:.2em;font-size:.5em;font-weight:500}.doc-head .role{color:var(--d-accent);margin-top:.35em;font-size:1.05em;font-weight:600}.doc-head .role .alt{color:var(--d-text-3);font-weight:500}.doc-head .contact{color:var(--d-text-2);flex-wrap:wrap;gap:.15em 1.3em;margin-top:.7em;font-size:.92em;display:flex}.doc-head .contact a{color:var(--d-text-2)}@media screen{.doc-head .contact a{align-items:center;min-height:24px;display:inline-flex}}.doc-section{margin-top:1.7em}.doc-section>h2,.doc-h2{color:var(--d-accent);border-bottom:1px solid var(--d-rule);break-after:avoid;margin-bottom:.7em;padding-bottom:.25em;font-size:1.22em;font-weight:700;line-height:1.35}.doc-section>:where(.entry,.pubs,.skills,.summary-text,.key-results,.tech-index,.note),.group>.entry,.tech-appendix>:where(.tech-others,.note){margin-left:var(--step)}.doc-section h3{color:var(--d-accent);break-after:avoid;margin:1.5em 0 .5em;font-size:1em;font-weight:700}.doc-section>h2+h3,.doc-section>h2+.group>h3{margin-top:.2em}.entry,.bullets>li{break-inside:avoid}.entry+.entry{margin-top:1.1em}.entry.compact+.entry.compact{margin-top:.35em}.entry-row{justify-content:space-between;align-items:baseline;gap:1em;display:flex}.entry-title{font-size:1.04em;font-weight:700;line-height:1.5}.entry-title .sep{color:#b8b1af;font-weight:400}.entry-title :is(.org,.org-note){color:var(--d-text-2);font-weight:500}.entry-title .tail{max-width:100%;display:inline-block}.entry-title .tail.wrapped .sep{display:none}.entry-meta{color:var(--d-text-3);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:.92em}.entry-links{white-space:nowrap;font-size:.88em;font-weight:500}.entry>.bullets,.degree>.bullets{margin-left:.9em}.degree{margin-top:.2em;margin-left:var(--step)}.degree+.degree{margin-top:.45em}.degree .deg{font-weight:600}.degree .org{color:var(--d-text-2)}.bullets{padding:0;list-style:none;margin-top:.2em!important}.bullets>li{grid-template-columns:1.15em minmax(0,1fr);display:grid}.bullets>li+li{margin-top:.18em}.bullets>li:before{content:"•";color:var(--d-text-2);font-weight:700}.bullets .bullets>li:before{content:"◦";font-weight:400}.summary-text{color:var(--d-text-2);line-height:1.75}.skills{grid-template-columns:max-content minmax(0,1fr);gap:.35em 1.4em;display:grid}.skill-row{display:contents}.skills dt,.skills dd{break-inside:avoid}.skills dt{color:var(--d-text-2);font-weight:600}.pubs{gap:.7em;padding:0;list-style:none;display:grid}.pubs li{break-inside:avoid}.pubs .title{font-weight:600}.pubs .venue{color:var(--d-text-2)}.key-results{gap:.35em;padding:0;list-style:none;display:grid}.key-results li{break-inside:avoid;grid-template-columns:6.4em minmax(0,1fr);align-items:baseline;gap:.6em;display:grid}.key-results .v{color:var(--d-text);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.key-results .l strong{font-weight:600}.key-results .q{color:var(--d-text-2);font-size:.92em}.key-results .p{color:var(--d-text-3);font-size:.92em}.tech-index{padding:0;list-style:none}.tech-index li{border-bottom:1px solid #ece7e5;grid-template-columns:2em minmax(0,1fr) auto;align-items:baseline;gap:.6em;padding:.35em 0;display:grid}.tech-index .n{color:var(--d-accent);font-variant-numeric:tabular-nums;font-weight:600}.tech-index a{color:var(--d-text);font-weight:600}.tech-appendix{margin-top:3em}.tech-others{padding:0;list-style:none}.tech-others li{break-inside:avoid;border-bottom:1px solid #ece7e5;justify-content:space-between;align-items:baseline;gap:1em;padding:.35em 0;display:flex}.tech-others .org{color:var(--d-text-3);font-size:.92em;display:block}.tech-project{scroll-margin-top:72px}.tech-title .num{color:var(--d-accent);font-size:.9em;font-weight:600}.tech-title h2{margin-top:.15em;font-size:1.55em;font-weight:700;line-height:1.35}.tech-facts,.stack-grid{grid-template-columns:8.8em minmax(0,1fr);gap:.25em 1em;display:grid}:lang(en) :where(.tech-facts,.stack-grid){grid-template-columns:10.6em minmax(0,1fr)}.tech-facts{border-top:1px solid var(--d-rule-strong);border-bottom:1px solid var(--d-rule);margin-top:.8em;padding:.75em 0}.tech-facts dt,.stack-grid dt{color:var(--d-text-3);font-weight:600}.tech-block{margin-top:1.5em}.tech-block:not(.contrib-block,.tech-refs){break-inside:avoid}.tech-refs>h3{break-after:avoid}.ref-tail,.tech-appendix{break-inside:avoid}.tech-block>h3{break-after:avoid;margin-bottom:.45em;font-size:1.1em;font-weight:700}.tech-block>h3 .n{min-width:1.35em;color:var(--d-accent);font-variant-numeric:tabular-nums;display:inline-block}.tech-block>:not(h3){margin-left:1.5em}.numbered{counter-reset:n;padding:0;list-style:none}.numbered>li{counter-increment:n;grid-template-columns:1.6em minmax(0,1fr);display:grid}.numbered>li+li{margin-top:.18em}.numbered>li:before{content:counter(n) ")";color:var(--d-text-2);font-variant-numeric:tabular-nums}.contribs{counter-reset:ctr;padding:0;list-style:none}.contribs>li{counter-increment:ctr;break-inside:avoid}.contribs>li+li{margin-top:.85em}.contribs .ct{break-after:avoid;grid-template-columns:1.6em minmax(0,1fr);font-weight:700;display:grid}.contribs .ct:before{content:counter(ctr, upper-alpha) ".";color:var(--d-accent)}.contribs .maps{color:var(--d-text-3);white-space:nowrap;font-size:.86em;font-weight:400}.contribs ol{counter-reset:sub;padding:0 0 0 1.6em;list-style:none;margin-top:.2em!important}.contribs ol>li{counter-increment:sub;grid-template-columns:1.5em minmax(0,1fr);display:grid}.contribs ol>li+li{margin-top:.15em}.contribs ol>li:before{content:counter(sub, lower-alpha) ".";color:var(--d-text-2)}.results strong,.bullets strong{font-weight:700}.refs{gap:.2em;padding:0;list-style:none;display:grid;margin-top:.8em!important}.refs li{grid-template-columns:1.15em minmax(0,1fr);display:grid}.refs li:before{content:"–";color:var(--d-text-3)}.refs .host{color:var(--d-text-3);font-size:.9em}.note{color:var(--d-text-3);font-size:.86em;margin-top:1.2em!important}.shot{break-inside:avoid;margin:.2em 0 1em!important}.shot img{border:1px solid #e6e0dd;border-radius:6px;width:100%;height:auto;display:block}.shot figcaption,.figure figcaption{color:var(--d-text-3);text-align:center;margin-top:.45em;font-size:.86em}.figure{break-inside:avoid;background:#fcfbfa;border:1px solid #e9e4e1;border-radius:8px;padding:1em 1.2em .7em;margin:.2em 0 .4em!important}.figure svg{width:100%;height:auto;display:block}[data-private][hidden]{display:none!important}@media screen and (width<=720px){.doc-frame{padding:0 0 48px}.doc{--d-fs:15.5px;--step:.6em;border:0;border-radius:0;padding:28px 18px 40px}.doc-toolbar [data-print],.doc-toolbar .long{display:none}.doc-toolbar .short{display:inline}.entry-row{flex-direction:column;gap:0}.entry-title .sep{display:none}.entry-title .tail,.entry-title .org{display:block}.skills,.stack-grid,.tech-facts,:lang(en) :where(.tech-facts,.stack-grid){grid-template-columns:minmax(0,1fr);row-gap:0}.skills dt,.stack-grid dt,.tech-facts dt{margin-top:.5em}.skill-row:first-child dt,.stack-grid dt:first-child,.tech-facts dt:first-child{margin-top:0}.key-results li{grid-template-columns:minmax(0,1fr);gap:0}.tech-index li{grid-template-columns:2em minmax(0,1fr);row-gap:0}.tech-index li .entry-meta{grid-column:2}.tech-others li{flex-direction:column;gap:0}.tech-block>:not(h3){margin-left:0}.figure{padding:.8em;overflow-x:auto}.figure svg{min-width:560px}}@media screen{.tech-project{border-top:1px solid var(--d-rule);margin-top:3.2em;padding-top:2.6em}}@media print{:root{--d-fs:10pt}:root:lang(ko){--d-fs:10.5pt}body.doc-body{background:#fff}.doc-toolbar,.doc-toc{display:none}.doc-frame,.doc-frame.has-toc{padding:0;display:block}.doc{border:0;border-radius:0;padding:0;line-height:1.6}.doc a:hover{text-decoration:none}.tech-project{break-before:page;border:0;margin:0;padding:0}.tech-appendix{margin-top:2.4em}.entry+.entry{margin-top:.85em}.tech-others{break-inside:avoid}.figure{background:0 0;border:0;padding:.2em 0 0}.shot{margin-bottom:.6em!important}.refs{margin-top:.4em!important}.shot img{width:auto;max-width:100%;max-height:var(--shot-max,80mm);margin:0 auto}.refs{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5em;font-size:.92em}}
