.resume-shell{min-height:100vh;padding:9rem 1.5rem 6rem;display:flex;flex-direction:column;align-items:center}.resume-toolbar{width:min(38rem,100%);display:flex;justify-content:flex-end;margin-bottom:1rem}.resume-download{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;color:var(--color-muted);background:none;border:none;cursor:pointer;padding:0;transition:color .3s ease}.resume-download:hover{color:var(--color-text)}.resume-sheet{width:min(38rem,100%);border:1px solid var(--color-line);padding:3rem 2.75rem}.resume-head{padding-bottom:1.75rem;border-bottom:1px solid var(--color-line);margin-bottom:1.75rem}.resume-name{font-family:var(--font-display);font-weight:500;font-size:2rem;line-height:1.1}.resume-role{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-top:.6rem}.resume-contact{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.02em;color:var(--color-muted);margin-top:1.1rem;display:flex;flex-wrap:wrap;gap:0 .6rem}.resume-contact a{color:var(--color-text);transition:color .3s ease}.resume-contact a:hover{color:var(--color-accent)}.resume-contact .sep{color:var(--color-line)}.resume-summary{font-family:var(--font-body);font-size:.98rem;line-height:1.75;color:color-mix(in srgb,var(--color-text) 88%,transparent);margin-bottom:2.25rem;max-width:34rem}.resume-section{margin-bottom:2.25rem}.resume-section:last-child{margin-bottom:0}.resume-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.9rem}.resume-work-list{list-style:none;display:grid;gap:1rem}.resume-work-row{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.resume-work-title{font-family:var(--font-display);font-weight:500;font-size:1.05rem}.resume-work-year{font-family:var(--font-mono);font-size:.74rem;color:var(--color-muted);font-variant-numeric:tabular-nums}.resume-work-note{font-family:var(--font-body);font-size:.92rem;line-height:1.6;color:var(--color-muted);margin-top:.2rem;flex-basis:100%}.resume-work-more{margin-top:1.1rem;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.02em}.resume-work-more a{color:var(--color-accent);transition:color .3s ease}.resume-work-more a:hover{color:var(--color-text)}.resume-job{margin-bottom:1.6rem}.resume-job:last-child{margin-bottom:0}.resume-job-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.3rem 1rem;margin-bottom:.55rem}.resume-job-org{font-family:var(--font-display);font-weight:500;font-size:1.02rem}.resume-job-role{font-family:var(--font-body);font-size:.9rem;color:var(--color-muted);margin-left:.6rem}.resume-job-meta{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;color:var(--color-muted);white-space:nowrap}.resume-bullets{list-style:none;display:grid;gap:.4rem}.resume-bullets li{font-family:var(--font-body);font-size:.92rem;line-height:1.6;color:color-mix(in srgb,var(--color-text) 88%,transparent);padding-left:1.05rem;position:relative}.resume-bullets li:before{content:"—";position:absolute;left:0;color:var(--color-muted)}.resume-other-list{list-style:none;display:grid;gap:.7rem}.resume-other-row{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.3rem 1rem;font-family:var(--font-body);font-size:.92rem}.resume-other-org{font-weight:500}.resume-other-role{color:var(--color-muted)}.resume-other-meta{font-family:var(--font-mono);font-size:.72rem;color:var(--color-muted);white-space:nowrap}.resume-edu-list{list-style:none;display:grid;gap:.85rem}.resume-edu-row{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.2rem 1rem}.resume-edu-school{font-family:var(--font-display);font-weight:500;font-size:.98rem}.resume-edu-degree{font-family:var(--font-body);font-size:.88rem;color:var(--color-muted);margin-left:.6rem}.resume-edu-period{font-family:var(--font-mono);font-size:.72rem;color:var(--color-muted);white-space:nowrap}.resume-skills{display:grid;gap:.65rem}.resume-skill-row{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;align-items:baseline}.resume-skill-row dt{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.resume-skill-row dd{font-family:var(--font-body);font-size:.9rem}@media (max-width: 560px){.resume-shell{padding-top:6.5rem}.resume-sheet{padding:2.25rem 1.5rem}.resume-skill-row{grid-template-columns:1fr;gap:.2rem}}@media print{@page{size:A4;margin:0}:root{--color-background: #f4efe6 !important;--color-text: #1f1b16 !important;--color-accent: #2c4a3e !important;--color-muted: #8a8175 !important;--color-line: #e3dbcd !important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html,body{background:var(--color-background);width:100%;height:auto;margin:0}html{font-size:12.35px}.home-anchor,.lang-toggle,.resume-toolbar{display:none!important}.resume-shell{box-sizing:border-box;width:210mm;min-height:297mm;margin:0 auto;padding:14mm;display:block;background:var(--color-background)}.resume-sheet{width:100%;max-width:none;border:none;padding:0;background:transparent;overflow:visible}.resume-job-meta,.resume-edu-period,.resume-other-meta,.resume-contact{white-space:normal}.resume-job,.resume-work-row,.resume-edu-row,.resume-other-row,.resume-skill-row{break-inside:avoid;page-break-inside:avoid}.resume-head{padding-bottom:1.1rem;margin-bottom:1.25rem}.resume-summary{margin-bottom:1.6rem}.resume-section{margin-bottom:1.3rem}.resume-job{margin-bottom:1.1rem}.resume-work-list{gap:.7rem}.resume-bullets{gap:.3rem}.resume-other-list,.resume-edu-list{gap:.55rem}.resume-skills{gap:.5rem}.resume-label{margin-bottom:.6rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-body);font-weight:400;line-height:1.6;min-height:100vh;word-break:keep-all;overflow-wrap:break-word}a{color:inherit;text-decoration:none}img,video{display:block;max-width:100%}.meta{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page{animation:rise .6s ease both}.home-anchor{position:fixed;top:1.75rem;left:1.75rem;z-index:50;font-family:var(--font-display);font-size:1.15rem;font-weight:500;letter-spacing:.01em;color:var(--color-text);opacity:.55;transition:opacity .4s ease}.home-anchor:hover{opacity:1}.home-anchor:lang(en){text-transform:uppercase;letter-spacing:-.01em}.home-anchor:lang(ko){font-style:normal}.lang-toggle{position:fixed;top:1.9rem;right:1.75rem;z-index:50;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;color:var(--color-muted)}.lang-toggle .active{color:var(--color-text)}.lang-toggle .sep{margin:0 .4rem;opacity:.4}.home{min-height:100vh;display:grid;place-items:center;padding:2rem}.card{width:min(30rem,100%);cursor:pointer;text-align:left;background:none;border:none;color:inherit;font-family:inherit;padding:3.5rem 3.25rem;position:relative;transition:transform .7s cubic-bezier(.22,1,.36,1)}.card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid var(--color-line);transition:border-color .7s ease}.card:hover{transform:translateY(-4px)}.card:hover:after{border-color:color-mix(in srgb,var(--color-line) 60%,var(--color-text))}.card.picking{transform:translateY(-10px) scale(1.015);opacity:0;transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s ease}.card-name{font-family:var(--font-display);font-weight:500;font-size:2.6rem;line-height:1.05;letter-spacing:.005em}.card-name:lang(en){text-transform:uppercase;letter-spacing:-.01em}.card-name:lang(ko){font-style:normal}.card-role{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin-top:.9rem}.card-tagline{font-family:var(--font-display);font-weight:400;font-size:1.25rem;line-height:1.5;margin-top:2.25rem;max-width:22rem;text-transform:uppercase;letter-spacing:-.01em}.card-enter{margin-top:2.5rem;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.06em}.card-enter .enter{color:var(--color-accent)}.work{min-height:100vh;padding:9rem 1.75rem 6rem;max-width:60rem;margin:0 auto}.work-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3.5rem}.work-eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-muted)}.work-about{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;color:var(--color-muted);transition:color .4s ease}.work-about:hover{color:var(--color-text)}.index-list{list-style:none}.index-row{border-top:1px solid var(--color-line)}.index-row:last-child{border-bottom:1px solid var(--color-line)}.index-link{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:1.75rem;padding:1.9rem .25rem;transition:padding-left .5s cubic-bezier(.22,1,.36,1)}.index-link:hover{padding-left:1.25rem}.index-title{font-family:var(--font-display);font-size:2rem;font-weight:500;letter-spacing:.005em}.index-title:lang(en){text-transform:uppercase;letter-spacing:-.01em}.index-title:lang(ko){font-style:normal}.index-cat,.index-year{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;color:var(--color-muted);justify-self:end;font-variant-numeric:tabular-nums}.index-thumb{display:none;width:3.5rem;height:2.4rem;object-fit:cover;flex-shrink:0}.preview{position:fixed;top:50%;right:4vw;transform:translateY(-50%);width:min(28vw,22rem);aspect-ratio:3 / 2;pointer-events:none;opacity:0;transition:opacity .5s ease;z-index:5;overflow:hidden}.preview.visible{opacity:1}.preview img{width:100%;height:100%;object-fit:cover}.project{min-height:100vh;padding:9rem 1.75rem 7rem;max-width:50rem;margin:0 auto}.project.is-photos{max-width:60rem}.project-back{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;color:var(--color-muted);transition:color .4s ease;display:inline-block;margin-bottom:3.5rem}.project-back:hover{color:var(--color-text)}.project-title{font-family:var(--font-display);font-weight:500;font-size:clamp(2.8rem,7vw,4.2rem);line-height:1.02;letter-spacing:.005em}.project-title:lang(en){text-transform:uppercase;letter-spacing:-.01em}.project-title:lang(ko){font-style:normal}.project-dateline{display:flex;gap:1.25rem;margin-top:1.1rem;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.06em;color:var(--color-muted)}.project-desc{display:grid;gap:.9rem;margin:2.75rem 0 3.5rem;max-width:33rem}.project-desc p{font-family:var(--font-body);font-weight:400;font-size:1.08rem;line-height:1.75;color:color-mix(in srgb,var(--color-text) 88%,transparent)}.media-block{margin:2.5rem 0}.media-video{position:relative;width:100%;aspect-ratio:16 / 9;background:#000}.media-video iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.media-photo{margin:3.5rem 0;text-align:center}.media-photo img{display:block;margin:0 auto;max-width:100%;max-height:86vh;width:auto}.media-caption{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--color-muted);margin-top:.7rem}.project-facts{margin-top:4.5rem;border-top:1px solid var(--color-line);padding-top:2.5rem;display:grid;gap:1.1rem}.fact-row{display:grid;grid-template-columns:8rem 1fr;gap:1.5rem;align-items:baseline}.fact-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted)}.fact-value{font-family:var(--font-mono);font-size:.86rem;letter-spacing:.02em;line-height:1.5}.fact-credits{display:grid;gap:.4rem}.credit-line{display:flex;gap:1rem}.credit-role{color:var(--color-muted);min-width:5rem}.not-found{min-height:100vh;display:grid;place-items:center;font-family:var(--font-display);font-style:italic;font-size:1.4rem;color:var(--color-muted)}.not-found:lang(ko){font-style:normal}.about{min-height:100vh;padding:9rem 1.75rem 7rem;max-width:44rem;margin:0 auto}.about-notes{display:grid;gap:3.25rem;max-width:34rem}.about-note{font-family:var(--font-body);font-size:1.06rem;line-height:1.85;white-space:pre-line;color:color-mix(in srgb,var(--color-text) 88%,transparent)}.about-closing{margin-top:1.75rem}.about-colophon{margin-top:4.5rem}.about-link{color:var(--color-accent);transition:color .4s ease}.about-link:hover{color:var(--color-text)}@media (max-width: 720px){.home-anchor{top:1.1rem;left:1.1rem;font-size:1rem}.lang-toggle{top:1.25rem;right:1.1rem}.card{padding:2.75rem 1.9rem}.card-name{font-size:2.1rem}.work,.project{padding-top:6.5rem}.index-link{grid-template-columns:auto 1fr auto;gap:1rem;align-items:center}.index-link:hover{padding-left:.25rem}.index-title{font-size:1.5rem}.index-cat{display:none}.index-thumb{display:block}.preview{display:none}.fact-row{grid-template-columns:6.5rem 1fr;gap:1rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.media-photo.layout-wide{width:96vw;margin-left:calc(50% - 48vw)}.media-photo.layout-wide img{max-height:88vh}.media-photo.layout-full img{max-height:94vh}.media-photo.layout-left{text-align:left}.media-photo.layout-left img{margin:0 auto 0 0;max-width:72%;max-height:84vh}.media-photo.layout-right{text-align:right}.media-photo.layout-right img{margin:0 0 0 auto;max-width:72%;max-height:84vh}.media-pair{display:flex;gap:1rem;margin:3.5rem 0;align-items:flex-end}.media-pair figure{flex:1;min-width:0;margin:0}.media-pair img{display:block;width:100%;height:auto;max-width:100%;max-height:none;margin:0}@media (max-width: 720px){.media-photo.layout-wide{width:100%;margin-left:0}.media-photo.layout-left img,.media-photo.layout-right img{max-width:100%;margin:0 auto}.media-pair{flex-direction:column;gap:3.5rem}}
